Serwer MCP
Połącz narzędzia AI z Flowtly poprzez Model Context Protocol na mcp.flowtly.eu.
Połącz
claude mcp add --transport http flowtly https://mcp.flowtly.eu/mcp
Na tej stronie
Konta bankowe
Narzędzia
| bankAccounts.get | Pobierz jedno konto bankowe po id — nazwa, waluta, bank oraz format, w jakim importowane są jego wyciągi. |
| bankAccounts.list | Wylistuj konta bankowe organizacji. Filtruj po banku lub ustaw hidden, aby uwzględnić zarchiwizowane. Użyj tego, aby ustalić id bankAccount, po którym filtruje transactions.list. |
| bankAccounts.create | Utwórz konto bankowe (wymagane type, name, currency, defaultImportFormat). Zapis. |
| bankAccounts.update | Zaktualizuj konto bankowe po id. Zapis. |
Klienci
Narzędzia
| clients.get | Pobierz jednego klienta po id — nazwa, kraj, waluta, identyfikator podatkowy i status. |
| clients.list | Wylistuj klientów (klientów organizacji). Filtruj po status lub po externalPaymentCustomerId, aby znaleźć klienta stojącego za id dostawcy płatności. Użyj tego, aby ustalić id klienta, po którym filtrują invoices.list, deals.list, projects.list i contracts.list. |
| clients.create | Utwórz nowy rekord klienta (wymagane name, country, currency, status, tinType). Zapis. |
| clients.update | Zaktualizuj rekord klienta po id. Zapis. |
Klucze konfiguracji
Narzędzia
| configKeys.catalog | Wylistuj każdy klucz konfiguracji organizacji rozpoznawany przez backend, wraz z jego typem i dozwolonymi wartościami. To katalog tego, co można konfigurować — przeczytaj go przed configs.get lub configs.update, zamiast zgadywać nazwę klucza. Uprawnienia są egzekwowane przez backend dla każdego klucza osobno, więc obecność klucza tutaj nie gwarantuje, że połączony użytkownik może go zapisać. |
Konfiguracje
Narzędzia
| configs.get | Odczytaj jedną wartość konfiguracji organizacji po id, gdzie id to klucz z configKeys.catalog (np. organization-logo-url, organization-icon-url). |
| configs.update | Zaktualizuj wartość konfiguracji organizacji po id (wymagane type + name; uprawnienia są egzekwowane przez backend dla każdego klucza konfiguracji osobno). Zapis. |
Umowy
Narzędzia
| contracts.get | Pobierz jedną umowę po id — strony, kierunek, wartość, warunki cykliczności i daty. |
| contracts.list | Wylistuj umowy. Filtruj po direction (incoming / outgoing), kontrahencie, projekcie, cyclic, nazwie lub tagach. Użyj tego, aby ustalić id umowy, które odczytuje contracts.paymentScheduleLines i z którym deals.win może połączyć wygraną szansę sprzedaży. |
| contracts.paymentScheduleLines | Wylistuj harmonogram płatności umowy — raty, w których ma być zafakturowana lub opłacona. Przekaż contractId z contracts.list. To plan, nie stan faktyczny: porównaj go z transactions.list, aby zobaczyć, co naprawdę zostało zapłacone. |
| contracts.create | Utwórz umowę. Zapis. |
| contracts.update | Zaktualizuj umowę po id. Zapis. |
| contracts.delete | Usuń umowę po id. Zapis. |
Grupy kosztowe
Narzędzia
| costGroups.list | Wylistuj grupy kosztowe / centra kosztów — kategorie, pod którymi rejestrowane są koszty, dostawcy i faktury przychodzące. Użyj tego, aby ustalić id costGroup wymagane przez suppliers.create i proponowane przez sugestie faktur przychodzących. |
| costGroups.create | Utwórz grupę kosztową / centrum kosztów (wymagane name + type). Zapis. |
| costGroups.update | Zaktualizuj nazwę lub typ grupy kosztowej / centrum kosztów po id. Zapis. |
Kontrahenci
Narzędzia
| counterparties.get | Pobierz jednego kontrahenta po id. |
| counterparties.list | Wylistuj kontrahentów — każdą stronę, z którą organizacja zawiera transakcje. Flagi supplier i client określają, jaką rolę(-e) pełni kontrahent, a jeden rekord może pełnić obie naraz. To strona widoczna na transakcji bankowej, więc to właśnie z nią dopasowywane są faktury przychodzące i transakcje. Filtruj po type, supplier, client, cyclic lub budgetNeutral. |
Notatki CRM
Narzędzia
| crmNotes.get | Pobierz jedną notatkę CRM po id. |
| crmNotes.list | Wylistuj notatki zapisane na leadach i szansach sprzedaży. Filtruj po lead lub deal, aby odczytać bieżący komentarz do jednego rekordu. |
| crmNotes.create | Dodaj notatkę do leada lub szansy sprzedaży (body + dokładnie jedno z lead/deal). Autorem jest połączony użytkownik. Zapis. |
| crmNotes.update | Zaktualizuj treść notatki CRM po id. Zapis. |
| crmNotes.delete | Usuń notatkę CRM po id. Zapis. |
Powody utraty szans sprzedaży
Narzędzia
| dealLostReasons.get | Pobierz jeden powód utraty szansy sprzedaży po id. |
| dealLostReasons.list | Wylistuj powody, dla których szansa sprzedaży może zostać oznaczona jako utracona, w kolejności. deals.lose wymaga lostReasonId stąd. |
Szanse sprzedaży
Narzędzia
| deals.get | Pobierz jedną szansę sprzedaży po id — tytuł, klient, etap, kwota, właściciel, kontakt, spodziewana i faktyczna data zamknięcia. |
| deals.list | Wylistuj szanse sprzedaży/okazje — pipeline sprzedaży. Filtruj po status (open / won / lost), etapie, właścicielu, kliencie, leadzie lub po zakresach expectedCloseDate / closedAt. Kwoty podane są w jednostkach pomocniczych z jawną walutą; nie zakładaj domyślnej waluty organizacji. |
| deals.create | Utwórz szansę sprzedaży/okazję (wymagane title, client, stage; opcjonalnie amountMinor, currency, expectedCloseDate, owner, contact). Zapis. |
| deals.update | Zaktualizuj szansę sprzedaży po id (title, stage, kwota, data zamknięcia, owner, contact). Zmiana etapu jest rejestrowana automatycznie. Zapis. |
| deals.delete | Usuń szansę sprzedaży po id (miękkie usunięcie). Zapis. |
| deals.win | Oznacz szansę sprzedaży jako wygraną — przenosi ją na etap wygranej i oznacza jako zamkniętą; opcjonalne contractId łączy z istniejącą umową. Zapis. |
| deals.lose | Oznacz szansę sprzedaży jako utraconą — wymaga lostReasonId (z dealLostReasons.list); opcjonalnie lostReasonNote. Zapis. |
| deals.reopen | Otwórz ponownie wygraną/utraconą szansę sprzedaży. Zapis. |
Historie etapów szans sprzedaży
Narzędzia
| dealStageHistories.get | Pobierz jeden rekord zmiany etapu szansy sprzedaży po id. |
| dealStageHistories.list | Wylistuj przejścia między etapami szansy sprzedaży, od najnowszych. Filtruj po deal. Każde deals.update, które zmienia etap, jest tu automatycznie zapisywane, więc w ten sposób odtworzysz, ile czasu szansa sprzedaży spędziła na każdym etapie — sama szansa przechowuje tylko swój aktualny etap. |
Faktury przychodzące
Narzędzia
| incomingInvoices.get | Pobierz jedną fakturę przychodzącą (od dostawcy) lub dokument uzupełniający po id, wraz z polami odczytanymi przez OCR i aktualnym stanem dopasowania. |
| incomingInvoices.list | Wylistuj faktury przychodzące (od dostawców) i dokumenty uzupełniające — skrzynkę odbiorczą księgowości. Faktura przychodząca JEST dokumentem dołączonym do transakcji bankowej, więc exists.transaction=false to sposób na znalezienie dokumentów jeszcze niedopasowanych do płatności. Filtruj też po status, relatedMonth, counterparty, project, tags lub hasDetectedProblems. Każdy dokument ma odcisk w postaci externalId 'upload_sha256:<sha256 bajtów>' — zahaszuj plik i sprawdź tu ten externalId PRZED incomingInvoices.create, inaczej zarejestrujesz duplikat. |
| incomingInvoices.matchCandidates | Wylistuj transakcje bankowe, które mogą być płatnością za tę fakturę przychodzącą, uszeregowane przez wbudowany matcher backendu. Sięgnij po to, gdy dokument nie ma dołączonej transakcji i musisz ją wybrać; wybieraj spośród tych kandydatów zamiast zgadywać samodzielnie na podstawie kwot. |
| incomingInvoices.suggestions | Odczytaj własne propozycje Flowtly dla faktury przychodzącej — dopasowanie dostawcy, grupa kosztowa, pasująca transakcja bankowa, ostrzeżenie o duplikacie. To dokładnie te same propozycje, które człowiek widzi w aplikacji. Odczytaj je najpierw, a potem zastosuj jedną po id za pomocą incomingInvoices.applySuggestion, albo przyjmij wszystkie za pomocą acceptAllSuggestions. Przekaż refresh, aby przeliczyć na nowo zamiast zwracać zestaw z pamięci podręcznej. |
| incomingInvoices.suggestionsDebug | Wyjaśnij, DLACZEGO sugestie dla faktury przychodzącej wyszły takie, jakie są — punktację mechanizmu dopasowującego, do diagnozowania brakującej lub błędnej sugestii. Wyłącznie diagnostyczne; do normalnej pracy używaj incomingInvoices.suggestions. |
| incomingInvoices.create | Zarejestruj fakturę przychodzącą (od dostawcy) lub dokument uzupełniający w księgowości — przekaż bajty jako base64 wraz z fileName i receivedAt. Flowtly odczytuje ją przez OCR i sugeruje dostawcę oraz pasującą transakcję bankową. Plik ma odcisk w postaci externalId 'upload_sha256:<sha256 bajtów>': aby uniknąć duplikatu, zahaszuj bajty i sprawdź w incomingInvoices.list ten externalId PRZED przesłaniem. Zapis. |
| incomingInvoices.applySuggestion | Zaakceptuj jedną z własnych sugestii Flowtly dla faktury przychodzącej — te same propozycje, które człowiek widzi w aplikacji (dopasowanie dostawcy, grupa kosztowa, pasująca transakcja bankowa, ostrzeżenie o duplikacie). Odczytaj je najpierw za pomocą incomingInvoices.suggestions, a potem zastosuj jedną po jej id. Preferuj to zamiast zgadywania: to matcher Flowtly, a nie agent, decyduje, co jest wiarygodne. Zapis. |
| incomingInvoices.acceptAllSuggestions | Zaakceptuj wszystkie oczekujące sugestie dla faktury przychodzącej jednym wywołaniem — to, co robi człowiek przyciskiem „accept all” w aplikacji. Serwer stosuje, przebudowuje i ponownie stosuje sugestie, aż nic nowego się nie pojawi: dopasowanie transakcji NIE istnieje, dopóki nie zostaną zastosowane dostawca i kwota, więc pojedynczy przebieg zostawiłby dokument bez powiązania. Zwraca raport (co zostało zastosowane, co zostało odrzucone i dlaczego oraz transakcję, do której dokument ostatecznie trafił). Przekaż dryRun, aby zobaczyć podgląd bez zapisu. Nigdy nie akceptuje supplier_create ani ostrzeżenia o duplikacie. Zapis. |
| incomingInvoices.checkEInvoices | Pobierz do organizacji wszystkie nowe e-faktury KSeF — to, co robi przycisk „Sprawdź e-faktury” w aplikacji. Wywołaj to, zanim uznasz, że faktura dostawcy jest brakująca: bez tego nie odróżnisz „dostawca nigdy jej nie wysłał” od „nasza synchronizacja jeszcze się nie uruchomiła”. Zwraca odpowiedź, gdy pobieranie zostanie zakolejkowane; odczytaj ponownie incomingInvoices.list później, aby zobaczyć, co przyszło. Zapis. |
Faktury
Narzędzia
| invoices.get | Pobierz jedną fakturę wychodzącą (sprzedażową) po id — klient, pozycje, sumy, daty sprzedaży i wystawienia, status. |
| invoices.list | Wylistuj faktury wychodzące (sprzedażowe). Filtruj po client, tags, search lub zakresie saleDate. Zwróć uwagę, że to saleDate — nie data wystawienia ani data utworzenia — jest polem, po którym filtruje invoices.export, więc używaj tego samego pola tutaj przy uzgadnianiu eksportu. |
| invoices.export | Rozpocznij eksport ZIP faktur WYSTAWIONYCH za dany okres (from/to, oba w formacie YYYY-MM-DD, włącznie) filtrowany po DACIE SPRZEDAŻY — nie dacie wystawienia ani utworzenia. Uwzględniane są tylko faktury WYSTAWIONE; szkice i niewysłane faktury są wykluczone, ale korekty SĄ uwzględniane. Opcjonalne client ogranicza eksport do jednego klienta (id lub IRI z clients.list). Maksymalnie 200 faktur na eksport — jeśli okres zawiera ich więcej, zawęź go (np. eksportuj po jednym miesiącu naraz); okres z 0 wystawionych faktur również jest odrzucany. To wywołanie tylko dodaje zadanie do kolejki (renderowanie miesiąca może potrwać kilka minut) — NIE zwraca linku do pobrania. Odpytuj invoices.exportStatus zwróconym exportId, aż zgłosi status „ready”. Zapis. |
| invoices.exportStatus | Odpytaj status eksportu ZIP uruchomionego przez invoices.export, po exportId. Gdy status to „ready”, odpowiedź zawiera downloadUrl (krótkotrwały podpisany link — wygasa po 1 godzinie, zobacz expiresAt), filename oraz byteSize; bajty pliku nigdy nie są zwracane przez to narzędzie. Jeśli status to „failed”, failureReason wyjaśnia dlaczego. |
Kontakty leadów
Narzędzia
| leadContacts.get | Pobierz jeden kontakt leada po id. |
| leadContacts.list | Wylistuj osoby kontaktowe przypisane do leadów. Filtruj po lead, aby odczytać kontakty jednego potencjalnego klienta, lub po email, aby znaleźć, z którego leada pochodzi wiadomość. |
| leadContacts.create | Dodaj osobę kontaktową do leada (wymagane lead + name; opcjonalnie email, phone, role, isPrimary). Zapis. |
| leadContacts.update | Zaktualizuj kontakt leada po id. Zapis. |
| leadContacts.delete | Usuń kontakt leada po id. Zapis. |
Przynależności leadów do list
Narzędzia
| leadListMemberships.get | Pobierz jedną przynależność leada do listy po id. |
| leadListMemberships.list | Wylistuj, które leady znajdują się na których listach prospectingu wychodzącego, wraz ze statusem kontaktu każdego z nich (contacted / replied / bounced). Filtruj po list, lead lub status — w ten sposób odczytasz stan kampanii. |
| leadListMemberships.create | Dodaj leada do listy wychodzącej (wymagane list + lead; opcjonalnie status). Zapis. |
| leadListMemberships.update | Zaktualizuj przynależność leada do listy — np. ustaw status kontaktu (contacted/replied/bounced). Zapis. |
| leadListMemberships.delete | Usuń leada z listy wychodzącej. Zapis. |
Listy leadów
Narzędzia
| leadLists.get | Pobierz jedną listę prospectingu wychodzącego po id. |
| leadLists.list | Wylistuj listy prospectingu wychodzącego. Użyj tego, aby ustalić id listy przyjmowane przez leadListMemberships.create. |
| leadLists.create | Utwórz listę prospectingu wychodzącego (wymagane name). Zapis. |
| leadLists.update | Zaktualizuj listę wychodzącą po id. Zapis. |
| leadLists.delete | Usuń listę wychodzącą po id. Zapis. |
Powody utraty leadów
Narzędzia
| leadLostReasons.get | Pobierz jeden powód utraty leada po id. |
| leadLostReasons.list | Wylistuj powody, dla których lead może zostać oznaczony jako utracony, w kolejności. |
Leady
Narzędzia
| leads.dedupeCheck | Sprawdź, czy potencjalny klient jest już w CRM, używając tych samych filtrów co leads.list (companyName, source, owner, …). Wywołaj to PRZED leads.create: zduplikowany lead rozdziela historię kontaktów między dwa rekordy, a nic dalej ich za ciebie nie scali. |
| leads.get | Pobierz jednego leada po id — firma, strona internetowa, źródło, status, właściciel i klient, w którego się przekształcił, jeśli dotyczy. |
| leads.list | Wylistuj leady — potencjalnych klientów przed kwalifikacją. Filtruj po status, source, owner, client, companyName lub zakresach createdAt/closedAt. Zakwalifikowany lead staje się klientem oraz otwartą szansą sprzedaży za pomocą leads.convert; do tego czasu istnieje tylko tutaj, nie w clients.list. |
| leads.create | Utwórz leada (cel prospectingu wychodzącego/przychodzącego; opcjonalnie companyName, source, status, owner, powiązany client). Zapis. |
| leads.update | Zaktualizuj leada po id (company, website, source, status, owner, powiązany client). Zapis. |
| leads.delete | Usuń leada po id (miękkie usunięcie). Zapis. |
| leads.convert | Przekształć zakwalifikowanego leada w klienta + jeden kontakt na każdy kontakt leada + otwartą szansę sprzedaży. Wymaga istniejącego klienta (klienta leada lub clientId w treści żądania). Zapis. |
Etapy leadów
Narzędzia
| leadStages.get | Pobierz jeden etap leada po id. |
| leadStages.list | Wylistuj etapy, przez które przechodzi lead, w kolejności. Leady mają własny zestaw etapów — szanse sprzedaży używają stages.list, co jest czymś innym. |
Organizacje
Narzędzia
| organizations.get | Pobierz organizację po id. UWAGA — to NIE mówi, z którą organizacją jesteś połączony. Połączenie OAuth jest przypięte do dokładnie jednej organizacji (powiązanej z tokenem), ale ten endpoint zwraca dowolną organizację, do której należy połączony UŻYTKOWNIK, więc udany odczyt tutaj wygląda jak potwierdzenie, że pracujesz w tej organizacji, choć wcale tak być nie musi. Aby zweryfikować, na jakim tenancie faktycznie operujesz, odczytaj zamiast tego dane ograniczone do tenanta — people.list lub clients.list — i nigdy nie rozpoczynaj masowego zapisu wyłącznie na podstawie tego wywołania. |
Osoby
Narzędzia
| people.get | Pobierz jeden rekord osoby/pracownika po id — imiona i nazwiska, e-maile, telefon, przełożony oraz informacja, czy jest aktywny. |
| people.list | Wylistuj osoby/pracowników. Filtruj po isActive, reportsTo (id przełożonego), projectMembers.project lub search; stronicuj za pomocą cursor. Osoby i pracownicy współdzielą to samo id, więc w ten sposób ustalisz id pracownika, którego oczekują narzędzia do czasu pracy, odpowiedzialności, członkostwa w projekcie i uprawnień. |
| people.create | Utwórz rekord osoby/pracownika (wymagane firstname + lastname; opcjonalnie companyEmail, contactEmail, contactPhone). Zapis. |
| people.update | Zaktualizuj rekord osoby/pracownika po id (name, companyEmail, contactEmail, contactPhone itd.). Zapis. |
| people.delete | Usuń rekord pracownika/osoby po id (np. aby usunąć zastępczego/testowego pracownika). Wymaga ROLE_EMPLOYEES_MANAGER; backend uruchamia procesor usuwania, który odłącza też powiązane rekordy. Wysoki wpływ, nieodwracalne. Zapis. |
| people.setPermissionGroups | Ustaw (zastąp) grupy uprawnień osoby za pomocą numerycznych id grup (zobacz permissionGroups.list — np. grupa „Business Owner” nadaje ROLE_ADMIN). Nadaje dostęp; NIE tworzy loginu ani nie wysyła e-maila do osoby. Zapis. |
Grupy uprawnień
Narzędzia
| permissionGroups.get | Pobierz jedną grupę uprawnień po id, wraz z ciągami ROLE_*, które nadaje. |
| permissionGroups.list | Wylistuj grupy uprawnień organizacji oraz role, jakie każda z nich nadaje — np. grupa „Business Owner” nadaje ROLE_ADMIN. Przeczytaj to przed people.setPermissionGroups: role w odpowiedzi są wiążącym źródłem informacji o tym, co grupa naprawdę umożliwia, więc nigdy nie musisz zgadywać na podstawie jej nazwy. |
| permissionGroups.create | Utwórz grupę uprawnień (wymagane name; roles = lista ciągów ROLE_*, które nadaje). Zapis. |
| permissionGroups.update | Zaktualizuj nazwę, opis lub nadawane role grupy uprawnień po id. Zapis. |
Pipeline'y
Narzędzia
| pipelines.get | Pobierz jeden pipeline sprzedaży po id. |
| pipelines.list | Wylistuj pipeline'y sprzedaży. Pipeline posiada uporządkowany zestaw etapów — odczytaj je za pomocą stages.list filtrowanego po pipeline. |
Projekty
Narzędzia
| projects.get | Pobierz jeden projekt po id — nazwa, typ, klient, daty, opis i cena. |
| projects.list | Wylistuj projekty. Filtruj po type (fixed-price | time-and-material | non-billable | internal), client.name, employee, name lub zakresach dateFrom/dateTo. Użyj tego, aby ustalić id projektu, którego wymagają zadania, rejestrowanie czasu pracy, budżety i umowy. |
| projects.create | Utwórz projekt (wymagane name + type; type = fixed-price|time-and-material|non-billable|internal; opcjonalnie dateFrom/dateTo, client, publicDescription, notes, priceNet). Zapis. |
| projects.update | Zaktualizuj projekt po id (name, type, daty, opis itd.). Zapis. |
Odpowiedzialności
Narzędzia
| responsibilities.get | Pobierz jedną odpowiedzialność po id. |
| responsibilities.list | Wylistuj odpowiedzialności w ramach grupy RACI. Filtruj po responsibilityGroup. Odpowiedzialności mogą się zagnieżdżać poprzez parent; osoby są do nich przypisywane przez responsibilityEmployees, a nie bezpośrednio. |
| responsibilities.create | Utwórz odpowiedzialność wewnątrz grupy (wymagane responsibilityGroup = id grupy lub IRI, + name; opcjonalnie description; opcjonalnie parent = IRI innej odpowiedzialności do zagnieżdżenia). Przypisuj do niej osoby za pomocą responsibilityEmployees.create. Zapis. |
| responsibilities.update | Zaktualizuj odpowiedzialność po id (name, description, parent, responsibilityGroup = id grupy lub IRI). Zapis. |
Pracownicy odpowiedzialności
Narzędzia
| responsibilityEmployees.get | Pobierz jedno przypisanie odpowiedzialności po id. |
| responsibilityEmployees.list | Wylistuj, kto jest przypisany do jakiej odpowiedzialności i w jakim procencie. Filtruj po employee, aby odczytać całe obciążenie RACI jednej osoby we wszystkich grupach. |
| responsibilityEmployees.create | Przypisz pracownika do odpowiedzialności (wymagane responsibility = id odpowiedzialności lub IRI, employee = id pracownika lub IRI, percentage 0-100; opcjonalnie targets i description). Zapis. |
| responsibilityEmployees.update | Zaktualizuj przypisanie odpowiedzialności po id (percentage, targets, description). Zapis. |
| responsibilityEmployees.delete | Usuń przypisanie pracownika do odpowiedzialności po id. Zapis. |
Grupy odpowiedzialności
Narzędzia
| responsibilityGroups.get | Pobierz jedną grupę odpowiedzialności po id. |
| responsibilityGroups.list | Wylistuj grupy odpowiedzialności / obszary RACI — pozycje najwyższego poziomu „Odpowiedzialności”, każda z osobą odpowiedzialną (accountable). Pojedyncze odpowiedzialności znajdują się pod nimi. |
| responsibilityGroups.create | Utwórz grupę odpowiedzialności / obszar RACI (wymagane name; opcjonalnie description oraz responsibleEmployee = osoba odpowiedzialna (accountable), podana jako zwykłe id pracownika, np. 6 (z people.list) lub IRI /people/6). To pozycja najwyższego poziomu „Odpowiedzialności”. Dodawaj pod nią pojedyncze odpowiedzialności za pomocą responsibilities.create. Zapis. |
| responsibilityGroups.update | Zaktualizuj grupę odpowiedzialności po id (name, description, responsibleEmployee = id pracownika lub IRI). Zapis. |
Etapy
Narzędzia
| stages.get | Pobierz jeden etap szansy sprzedaży po id. |
| stages.list | Wylistuj etapy szans sprzedaży, w kolejności. Filtruj po pipeline. deals.create wymaga id etapu stąd, a przenoszenie szansy sprzedaży między etapami jest tym, co rejestruje dealStageHistories. |
Dostawcy
Narzędzia
| suppliers.list | Wylistuj dostawców/kontrahentów — obsługiwane z /contractors, więc „supplier” i „contractor” to ten sam rekord. Filtruj po cyclic dla dostawców cyklicznych. Użyj tego, aby ustalić dostawcę, wobec którego zarejestrowany jest koszt, umowa lub faktura przychodząca. |
| suppliers.create | Utwórz nowy rekord dostawcy/kontrahenta (wymagane name, tinType, costGroup). Zapis. |
| suppliers.update | Zaktualizuj dane dostawcy/kontrahenta (name, identyfikator podatkowy, warunki płatności itd.) po id. Zapis. |
Definicje tagów
Narzędzia
| tagDefinitions.list | Wylistuj definicje tagów — tagi, które można dołączać do rekordów, każdy wewnątrz grupy tagów. tags.create przyjmuje id tagDefinition stąd oraz rekord, do którego ma zostać dołączony. |
| tagDefinitions.create | Utwórz definicję tagu (wymagane name, level, tagGroup) w ramach grupy tagów. Zapis. |
Grupy tagów
Narzędzia
| tagGroups.list | Wylistuj grupy tagów — kontenery porządkujące definicje tagów. |
| tagGroups.create | Utwórz grupę tagów (wymagane name), aby porządkować powiązane definicje tagów. Zapis. |
Komentarze do zadań
Narzędzia
| taskComments.list | Wylistuj komentarze do zadań projektowych, od najstarszych. Filtruj po task, aby odczytać dyskusję jednego zadania. |
| taskComments.create | Dodaj komentarz do zadania projektowego (id zadania + content). Zapis. |
Listy zadań
Narzędzia
| taskLists.list | Wylistuj listy zadań — kolumny/sekcje tablicy, do których przypisywane są zadania. Filtruj po project. tasks.create przyjmuje id listy stąd. |
Zadania
Narzędzia
| tasks.get | Pobierz jedno zadanie projektowe po id — tytuł, projekt, status, lista, przypisane osoby, daty i powtarzalność. |
| tasks.list | Wylistuj zadania projektowe. Filtruj po project, list, status, assignees, isTemplate lub zakresach startAt/dueAt. Zadania cykliczne udostępniają recurrenceParent i recurrenceRule, więc wygenerowane wystąpienie można prześledzić do reguły, która je utworzyła. Aby ustalić, czy zadanie jest ZAKOŃCZONE, porównaj jego status z taskStatuses.list (isClosed), zamiast dopasowywać po nazwie statusu. |
| tasks.create | Utwórz zadanie projektowe (wymagane title + project; opcjonalnie status, list, assignees, dueAt, priority). Zapis. |
| tasks.update | Zaktualizuj zadanie projektowe po id — zmień status (w tym oznaczenie jako zakończone), assignees, dueAt, title itd. Zapis. |
Statusy zadań
Narzędzia
| taskStatuses.list | Wylistuj statusy zadań projektowych, w kolejności na tablicy. isClosed oznacza stany zakończone, a isDefault status nadawany nowemu zadaniu. Przeczytaj to przed interpretacją statusu zadania — nazwy są konfigurowalne przez organizację, więc „Done” nie jest ciągiem, na którym można polegać przy dopasowywaniu. |
Grupy podatkowe
Narzędzia
| taxGroups.list | Wylistuj grupy podatkowe. Użyj tego, aby ustalić id taxGroup, po którym filtruje taxRules.list i który niosą pozycje faktur. |
| taxGroups.create | Utwórz grupę podatkową (wymagane name + type). Zapis. |
| taxGroups.update | Zaktualizuj nazwę lub typ grupy podatkowej po id. Zapis. |
Reguły podatkowe
Narzędzia
| taxRules.list | Wylistuj reguły podatkowe — stawki i okresy, których dotyczą. Filtruj po taxGroup. |
| taxRules.create | Utwórz regułę podatkową. Zapis. |
| taxRules.update | Zaktualizuj regułę podatkową po id. Zapis. |
Transakcje
Narzędzia
| transactions.list | Wylistuj transakcje bankowe — strumień bankowy, z którym dopasowywane są faktury przychodzące. Filtruj po bankAccount, counterpartyRole, cost, ignored, hasDetectedProblems, zakresie orderDate/execDate lub amount.between. Zwróć uwagę, że orderDate i execDate to różne pola: płatność może zostać zlecona w jednym miesiącu, a zrealizowana w kolejnym. |
| transactions.suggestions | Odczytaj propozycje Flowtly dla jednej transakcji bankowej — wobec jakiego kontrahenta, grupy kosztowej lub dokumentu powinna zostać zarejestrowana. Lustrzane odbicie incomingInvoices.suggestions, od strony pieniędzy. |
Czasy pracy
Narzędzia
| workTimes.get | Pobierz jeden wpis czasu pracy po id — data, minuty, projekt, notatki oraz pracownik, do którego należy. |
| workTimes.list | Wylistuj wpisy czasu pracy (zarejestrowanych godzin). Filtruj po zakresie dat (date.after / date.before, YYYY-MM-DD) oraz opcjonalnie po employee lub project; stronicuj za pomocą cursor. Każdy wiersz niesie employeeId/employeeName oraz projectId/projectName, więc w ten sposób eksportujesz wszystkie zarejestrowane godziny za dany okres. WAŻNE: wyniki obejmujące całą organizację wymagają ROLE_WORKING_HOURS_VIEWER. Bez tej roli backend NIE zwraca błędu — po cichu zwraca tylko wpisy połączonego użytkownika, więc eksport „godzin wszystkich” może wrócić z zawartością jednej osoby i wyglądać zupełnie poprawnie. Jeśli każdy wiersz należy do jednego pracownika, a nie filtrowałeś po employee, odpowiedź niesie scopeWarning informujący o tym — pokaż to użytkownikowi, zamiast prezentować wynik jako obejmujący całą organizację. |
| workTimes.log | Zarejestruj wpis czasu pracy dla połączonego użytkownika Flowtly (date, durationMinutes, project, notes). Zapis. |
Kontakty klientów
Narzędzia
| clientContacts.create | Utwórz osobę kontaktową dla klienta (wymagane client, type, name, email). Zapis. |
Konta bankowe kontrahentów
Narzędzia
| counterpartyBankAccounts.create | Dołącz konto bankowe do kontrahenta (counterparty + accountNumber). Zapis. |
Logo organizacji
Narzędzia
| organizationLogo.upload | Prześlij/zastąp logo organizacji (obraz base64 + contentType + filename). Odczytaj bieżące za pomocą configs.get organization-logo-url. Zapis. |
Ikona organizacji
Narzędzia
| organizationIcon.upload | Prześlij/zastąp ikonę/favicon organizacji (obraz base64 + contentType + filename). Odczytaj bieżącą za pomocą configs.get organization-icon-url. Zapis. |