Polska firma — tworzymy w Polsce 🇵🇱

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.

Stopka wiadomości e-mail organizacji

Narzędzia

organizationMailFooter.get Odczytaj tekst stopki wychodzących wiadomości e-mail organizacji (blok dołączany do maili wysyłanych przez Flowtly w imieniu organizacji).
organizationMailFooter.update Zaktualizuj tekst stopki wychodzących wiadomości e-mail organizacji. Zapis.

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.

Tagi

Narzędzia

tags.create Dołącz definicję tagu do rekordu (tagDefinition + relationName + relationId; np. relationName „counterparty”, aby otagować dostawcę). 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.

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.