MCP Server

Verbinde AI-Tools mit Flowtly über das Model Context Protocol unter mcp.flowtly.eu.

Verbinden

claude mcp add --transport http flowtly https://mcp.flowtly.eu/mcp

Auf dieser Seite

Bankkonten

Tools

bankAccounts.getRuft ein Bankkonto anhand der id ab — Name, Währung, Bank und das Format, in dem seine Kontoauszüge importiert werden.
bankAccounts.listListet die Bankkonten der Organisation auf. Filtern Sie nach bank, oder setzen Sie hidden, um archivierte Konten einzuschließen. Damit ermitteln Sie die bankAccount-id, nach der transactions.list filtert.
bankAccounts.createErstellt ein Bankkonto (type, name, currency, defaultImportFormat erforderlich). Schreibend.
bankAccounts.updateAktualisiert ein Bankkonto anhand der id. Schreibend.

Kunden

Tools

clients.getRuft einen Kunden anhand der id ab — Name, Land, Währung, Steuernummer und Status.
clients.listListet Kunden (die Kunden der Organisation) auf. Filtern Sie nach status oder nach externalPaymentCustomerId, um den Kunden hinter einer Zahlungsanbieter-id zu finden. Damit ermitteln Sie die client-id, nach der invoices.list, deals.list, projects.list und contracts.list allesamt filtern.
clients.createErstellt einen neuen Kundendatensatz (name, country, currency, status, tinType erforderlich). Schreibend.
clients.updateAktualisiert einen Kundendatensatz anhand der id. Schreibend.

Konfigurationsschlüssel

Tools

configKeys.catalogListet jeden Organisationskonfigurationsschlüssel auf, den das Backend kennt, mit Typ und erlaubten Werten. Dies ist der Katalog dessen, was konfigurierbar ist — lesen Sie ihn vor configs.get oder configs.update, statt einen Schlüsselnamen zu erraten. Berechtigungen werden vom Backend pro Schlüssel durchgesetzt: Dass ein Schlüssel hier erscheint, garantiert nicht, dass der verbundene Benutzer ihn schreiben darf.

Konfigurationen

Tools

configs.getLiest einen Organisationskonfigurationswert anhand der id, wobei die id ein Schlüssel aus configKeys.catalog ist (z. B. organization-logo-url, organization-icon-url).
configs.updateAktualisiert einen Organisationskonfigurationswert anhand der id (type + name erforderlich; Berechtigungen werden vom Backend pro Konfigurationsschlüssel durchgesetzt). Schreibend.

Verträge

Tools

contracts.getRuft einen Vertrag anhand der id ab — Parteien, Richtung, Wert, wiederkehrende Konditionen und Daten.
contracts.listListet Verträge auf. Filtern Sie nach direction (eingehend / ausgehend), counterparty, project, cyclic, name oder tags. Damit ermitteln Sie die contract-id, die contracts.paymentScheduleLines liest und mit der deals.win einen gewonnenen Deal verknüpfen kann.
contracts.paymentScheduleLinesListet den Zahlungsplan eines Vertrags auf — die Raten, in denen er voraussichtlich in Rechnung gestellt oder bezahlt wird. Übergeben Sie die contractId aus contracts.list. Dies ist der Plan, nicht die Ist-Werte: Vergleichen Sie ihn mit transactions.list, um zu sehen, was tatsächlich bezahlt wurde.
contracts.createErstellt einen Vertrag. Schreibend.
contracts.updateAktualisiert einen Vertrag anhand der id. Schreibend.
contracts.deleteLöscht einen Vertrag anhand der id. Schreibend.

Kostengruppen

Tools

costGroups.listListet Kostengruppen / Kostenstellen auf — die Kategorien, unter denen Kosten, Lieferanten und Eingangsrechnungen abgelegt werden. Damit ermitteln Sie die costGroup-id, die suppliers.create benötigt und die die Vorschläge für Eingangsrechnungen liefern.
costGroups.createErstellt eine Kostengruppe / Kostenstelle (name + type erforderlich). Schreibend.
costGroups.updateAktualisiert Name oder Typ einer Kostengruppe / Kostenstelle anhand der id. Schreibend.

Geschäftspartner

Tools

counterparties.getRuft einen Geschäftspartner anhand der id ab.
counterparties.listListet Geschäftspartner auf — jede Partei, mit der die Organisation Geschäfte macht. Die Flags supplier und client geben an, welche Rolle(n) ein Geschäftspartner einnimmt; ein Datensatz kann beides sein. Dies ist die Partei auf einer Banktransaktion, gegen die Eingangsrechnungen und Transaktionen abgeglichen werden. Filtern Sie nach type, supplier, client, cyclic oder budgetNeutral.

CRM-Notizen

Tools

crmNotes.getRuft eine CRM-Notiz anhand der id ab.
crmNotes.listListet Notizen zu Leads und Deals auf. Filtern Sie nach lead oder deal, um den laufenden Kommentarverlauf zu einem Datensatz zu lesen.
crmNotes.createFügt einem Lead oder Deal eine Notiz hinzu (body + genau eines von lead/deal). Autor ist der verbundene Benutzer. Schreibend.
crmNotes.updateAktualisiert den Text einer CRM-Notiz anhand der id. Schreibend.
crmNotes.deleteLöscht eine CRM-Notiz anhand der id. Schreibend.

Deal-Verlustgründe

Tools

dealLostReasons.getRuft einen Deal-Verlustgrund anhand der id ab.
dealLostReasons.listListet die Gründe auf, aus denen ein Deal als verloren markiert werden kann, in Reihenfolge. deals.lose benötigt eine lostReasonId von hier.

Deals

Tools

deals.getRuft einen Deal anhand der id ab — Titel, Kunde, Phase, Betrag, Eigentümer, Kontakt, voraussichtliches und tatsächliches Abschlussdatum.
deals.listListet Deals/Opportunities auf — die Vertriebspipeline. Filtern Sie nach status (offen / gewonnen / verloren), stage, owner, client, lead oder nach expectedCloseDate-/closedAt-Zeiträumen. Beträge sind in Kleinsteinheiten mit expliziter Währung angegeben; verlassen Sie sich nicht auf die Standardwährung der Organisation.
deals.createErstellt einen Deal/eine Opportunity (title, client, stage erforderlich; amountMinor, currency, expectedCloseDate, owner, contact optional). Schreibend.
deals.updateAktualisiert einen Deal anhand der id (title, stage, amount, Abschlussdatum, owner, contact). Der Phasenwechsel wird automatisch protokolliert. Schreibend.
deals.deleteLöscht einen Deal anhand der id (Soft-Delete). Schreibend.
deals.winMarkiert einen Deal als gewonnen — verschiebt ihn in eine Gewonnen-Phase und markiert ihn als abgeschlossen; optional verknüpft contractId einen bestehenden Vertrag. Schreibend.
deals.loseMarkiert einen Deal als verloren — erfordert lostReasonId (aus dealLostReasons.list); optional lostReasonNote. Schreibend.
deals.reopenÖffnet einen gewonnenen/verlorenen Deal wieder. Schreibend.

Deal-Phasenverläufe

Tools

dealStageHistories.getRuft einen Deal-Phasenwechsel-Datensatz anhand der id ab.
dealStageHistories.listListet die Phasenübergänge eines Deals auf, neueste zuerst. Filtern Sie nach deal. Jedes deals.update, das die Phase ändert, wird hier automatisch protokolliert — so rekonstruieren Sie, wie lange ein Deal in jeder Phase verweilte. Der Deal selbst führt nur seine aktuelle Phase.

Eingangsrechnungen

Tools

incomingInvoices.getRuft eine Eingangsrechnung (Lieferant) oder einen Beleg anhand der id ab, mit den per OCR erfassten Feldern und dem aktuellen Abgleichsstatus.
incomingInvoices.listListet Eingangsrechnungen (Lieferanten) und Belege auf — den Buchhaltungs-Posteingang. Eine Eingangsrechnung IST ein Dokument, das an eine Banktransaktion angehängt ist; mit exists.transaction=false finden Sie also Dokumente, die noch keiner Zahlung zugeordnet sind. Filtern Sie außerdem nach status, relatedMonth, counterparty, project, tags oder hasDetectedProblems. Jedes Dokument erhält als Fingerabdruck die externalId 'upload_sha256:<sha256 der Bytes>' — hashen Sie eine Datei und suchen Sie hier nach dieser externalId, BEVOR Sie incomingInvoices.create aufrufen, sonst legen Sie ein Duplikat an.
incomingInvoices.matchCandidatesListet die Banktransaktionen auf, die die Zahlung für diese Eingangsrechnung sein könnten, bewertet vom backend-eigenen Matcher. Nutzen Sie dies, wenn einem Dokument keine Transaktion zugeordnet ist und Sie eine auswählen müssen; bevorzugen Sie diese Kandidaten, statt selbst anhand von Beträgen zu raten.
incomingInvoices.suggestionsLiest Flowtlys eigene Vorschläge für eine Eingangsrechnung — Lieferanten-Match, Kostengruppe, passende Banktransaktion, Duplikatswarnung. Dies sind genau die Vorschläge, die ein Mensch in der App sieht. Lesen Sie sie zuerst, wenden Sie dann einen per id mit incomingInvoices.applySuggestion an, oder übernehmen Sie alle mit acceptAllSuggestions. Übergeben Sie refresh, um neu zu berechnen, statt den zwischengespeicherten Satz auszuliefern.
incomingInvoices.suggestionsDebugErklärt, WARUM die Vorschläge einer Eingangsrechnung so ausgefallen sind, wie sie sind — die Bewertung des Matchers, zur Diagnose eines fehlenden oder falschen Vorschlags. Nur zur Diagnose; verwenden Sie für die normale Arbeit incomingInvoices.suggestions.
incomingInvoices.createLegt eine Eingangsrechnung (Lieferant) oder einen Beleg in der Buchhaltung ab — übergeben Sie die Bytes als base64 mit fileName und receivedAt. Flowtly erfasst sie per OCR und schlägt einen Lieferanten sowie eine passende Banktransaktion vor. Die Datei erhält als Fingerabdruck die externalId 'upload_sha256:<sha256 der Bytes>': Um ein Duplikat zu vermeiden, hashen Sie die Bytes und prüfen Sie incomingInvoices.list auf diese externalId, BEVOR Sie hochladen. Schreibend.
incomingInvoices.applySuggestionÜbernimmt einen von Flowtlys eigenen Vorschlägen zu einer Eingangsrechnung — dieselben Vorschläge, die ein Mensch in der App sieht (Lieferanten-Match, Kostengruppe, passende Banktransaktion, Duplikatswarnung). Lesen Sie sie zuerst mit incomingInvoices.suggestions, wenden Sie dann einen anhand seiner id an. Bevorzugen Sie dies gegenüber Raten: Flowtlys Matcher entscheidet, was plausibel ist, nicht der Agent. Schreibend.
incomingInvoices.acceptAllSuggestionsÜbernimmt in einem Aufruf jeden ausstehenden Vorschlag zu einer Eingangsrechnung — das, was ein Mensch mit dem "Alle übernehmen"-Button der App tut. Der Server wendet an, baut neu auf und wendet erneut an, bis nichts Neues mehr erscheint: Der Transaktionsabgleich existiert erst, wenn Lieferant und Betrag angewendet sind, ein einziger Durchlauf würde das Dokument also unverknüpft lassen. Liefert einen Bericht zurück (was angewendet wurde, was abgelehnt wurde und warum, sowie die Transaktion, gegen die am Ende verbucht wurde). Übergeben Sie dryRun, um ohne Schreibvorgang eine Vorschau zu erhalten. Übernimmt niemals supplier_create oder eine Duplikatswarnung. Schreibend.
incomingInvoices.checkEInvoicesHolt neue KSeF-E-Rechnungen in die Organisation — das, was der "Sprawdź e-faktury"-Button der App tut. Rufen Sie dies auf, bevor Sie schlussfolgern, dass die Rechnung eines Lieferanten fehlt: Ohne diesen Aufruf können Sie nicht unterscheiden, ob "der Lieferant sie nie gesendet hat" oder "unser Sync ist noch nicht gelaufen". Kehrt zurück, sobald der Abruf eingereiht ist; lesen Sie danach incomingInvoices.list erneut, um zu sehen, was eingetroffen ist. Schreibend.

Rechnungen

Tools

invoices.getRuft eine Ausgangsrechnung (Verkauf) anhand der id ab — Kunde, Positionen, Summen, Verkaufs- und Ausstellungsdatum, Status.
invoices.listListet Ausgangsrechnungen (Verkauf) auf. Filtern Sie nach client, tags, search oder einem saleDate-Zeitraum. Beachten Sie: saleDate — nicht Ausstellungs- oder Erstellungsdatum — ist das Feld, nach dem invoices.export filtert; verwenden Sie beim Abgleich eines Exports dasselbe Feld hier.
invoices.exportStartet einen ZIP-Export AUSGESTELLTER Rechnungen für einen Zeitraum (from/to, beide YYYY-MM-DD, inklusive), gefiltert nach VERKAUFSDATUM — nicht nach Ausstellungs- oder Erstellungsdatum. Nur AUSGESTELLTE Rechnungen sind enthalten; Entwürfe und nicht versendete Rechnungen sind ausgeschlossen, Korrekturen SIND jedoch enthalten. Optional schränkt client auf einen Kunden ein (id oder IRI aus clients.list). Max. 200 Rechnungen pro Export — hat der Zeitraum mehr, grenzen Sie ihn ein (z. B. jeweils einen Monat exportieren); ein Zeitraum mit 0 ausgestellten Rechnungen wird ebenfalls abgelehnt. Dieser Aufruf reiht den Job nur ein (das Rendern eines Monats kann Minuten dauern) — er liefert KEINEN Download-Link zurück. Fragen Sie invoices.exportStatus mit der zurückgegebenen exportId ab, bis "ready" gemeldet wird. Schreibend.
invoices.exportStatusFragt den Status eines von invoices.export gestarteten ZIP-Exports anhand der exportId ab. Sobald status "ready" ist, enthält die Antwort downloadUrl (ein kurzlebiger signierter Link — läuft nach 1 Stunde ab, siehe expiresAt), filename und byteSize; die Bytes der Datei werden über dieses Tool nie zurückgegeben. Ist status "failed", erklärt failureReason den Grund.

Lead-Kontakte

Tools

leadContacts.getRuft einen Lead-Kontakt anhand der id ab.
leadContacts.listListet die Kontaktpersonen auf, die Leads zugeordnet sind. Filtern Sie nach lead, um die Kontakte eines Interessenten zu lesen, oder nach email, um herauszufinden, von welchem Lead eine Nachricht stammt.
leadContacts.createFügt einem Lead eine Kontaktperson hinzu (lead + name erforderlich; email, phone, role, isPrimary optional). Schreibend.
leadContacts.updateAktualisiert einen Lead-Kontakt anhand der id. Schreibend.
leadContacts.deleteLöscht einen Lead-Kontakt anhand der id. Schreibend.

Lead-Listenmitgliedschaften

Tools

leadListMemberships.getRuft eine Lead-Listen-Mitgliedschaft anhand der id ab.
leadListMemberships.listListet auf, welche Leads auf welchen Outbound-Prospecting-Listen stehen, samt jeweiligem Kontaktstatus (contacted / replied / bounced). Filtern Sie nach list, lead oder status — so lesen Sie den Stand einer Kampagne ab.
leadListMemberships.createFügt einer Outbound-Liste einen Lead hinzu (list + lead erforderlich; status optional). Schreibend.
leadListMemberships.updateAktualisiert die Mitgliedschaft eines Leads in einer Liste — z. B. den Kontaktstatus setzen (contacted/replied/bounced). Schreibend.
leadListMemberships.deleteEntfernt einen Lead aus einer Outbound-Liste. Schreibend.

Lead-Listen

Tools

leadLists.getRuft eine Outbound-Prospecting-Liste anhand der id ab.
leadLists.listListet Outbound-Prospecting-Listen auf. Damit ermitteln Sie die list-id, die leadListMemberships.create erwartet.
leadLists.createErstellt eine Outbound-Prospecting-Liste (name erforderlich). Schreibend.
leadLists.updateAktualisiert eine Outbound-Liste anhand der id. Schreibend.
leadLists.deleteLöscht eine Outbound-Liste anhand der id. Schreibend.

Lead-Verlustgründe

Tools

leadLostReasons.getRuft einen Lead-Verlustgrund anhand der id ab.
leadLostReasons.listListet die Gründe auf, aus denen ein Lead als verloren markiert werden kann, in Reihenfolge.

Leads

Tools

leads.dedupeCheckPrüft, ob ein Interessent bereits im CRM vorhanden ist, mit denselben Filtern wie leads.list (companyName, source, owner, …). Rufen Sie dies BEVOR leads.create auf: Ein doppelter Lead teilt die Kontakthistorie auf zwei Datensätze auf, und nichts nachgelagert führt sie für Sie wieder zusammen.
leads.getRuft einen Lead anhand der id ab — Unternehmen, Website, Quelle, Status, Eigentümer und, falls vorhanden, den Kunden, zu dem er konvertiert wurde.
leads.listListet Leads auf — Interessenten vor der Qualifizierung. Filtern Sie nach status, source, owner, client, companyName oder createdAt-/closedAt-Zeiträumen. Ein qualifizierter Lead wird über leads.convert zu einem Client plus einem offenen Deal; bis dahin existiert er nur hier, nicht in clients.list.
leads.createErstellt einen Lead (Outbound-/Inbound-Interessent; companyName, source, status, owner, linked client optional). Schreibend.
leads.updateAktualisiert einen Lead anhand der id (company, website, source, status, owner, linked client). Schreibend.
leads.deleteLöscht einen Lead anhand der id (Soft-Delete). Schreibend.
leads.convertKonvertiert einen qualifizierten Lead in einen Client + einen Kontakt pro Lead-Kontakt + einen offenen Deal. Erfordert einen bestehenden Client (den client des Leads oder eine clientId im Body). Schreibend.

Lead-Phasen

Tools

leadStages.getRuft eine Lead-Phase anhand der id ab.
leadStages.listListet die Phasen auf, die ein Lead durchläuft, in Reihenfolge. Leads haben ihr eigenes Phasenset — Deals verwenden stages.list, was etwas anderes ist.

Organisations-Mail-Fußzeile

Tools

organizationMailFooter.getLiest den Fußzeilentext für ausgehende E-Mails der Organisation (der Block, der an E-Mails angehängt wird, die Flowtly im Namen der Organisation versendet).
organizationMailFooter.updateAktualisiert den Fußzeilentext für ausgehende E-Mails der Organisation. Schreibend.

Organisationen

Tools

organizations.getRuft eine Organisation anhand der id ab. WARNUNG — dies sagt NICHT, mit welcher Organisation Sie verbunden sind. Eine OAuth-Verbindung ist an genau eine Organisation gebunden (token-gebunden), aber dieser Endpunkt liefert jede Organisation zurück, in der der verbundene BENUTZER Mitglied ist. Ein erfolgreicher Aufruf hier wirkt daher wie eine Bestätigung, dass Sie in dieser Organisation arbeiten, obwohl das nicht der Fall sein muss. Um den Mandanten zu verifizieren, auf dem Sie tatsächlich operieren, lesen Sie stattdessen mandantengebundene Daten — people.list oder clients.list — und starten Sie niemals einen Massenschreibvorgang allein auf Grundlage dieses Aufrufs.

Personen

Tools

people.getRuft einen Personen-/Mitarbeiterdatensatz anhand der id ab — Namen, E-Mails, Telefon, Vorgesetzter und ob die Person aktiv ist.
people.listListet Personen/Mitarbeiter auf. Filtern Sie nach isActive, reportsTo (die id eines Vorgesetzten), projectMembers.project oder search; paginieren Sie mit cursor. Personen und Mitarbeiter teilen sich dieselbe id — so ermitteln Sie die employee-id, die Arbeitszeit, Zuständigkeiten, Projektmitgliedschaft und Berechtigungstools erwarten.
people.createErstellt einen Personen-/Mitarbeiterdatensatz (firstname + lastname erforderlich; optional companyEmail, contactEmail, contactPhone). Schreibend.
people.updateAktualisiert einen Personen-/Mitarbeiterdatensatz anhand der id (name, companyEmail, contactEmail, contactPhone usw.). Schreibend.
people.deleteLöscht einen Mitarbeiter-/Personendatensatz anhand der id (z. B. um einen Platzhalter-/Dummy-Mitarbeiter zu entfernen). Erfordert ROLE_EMPLOYEES_MANAGER; das Backend führt einen Löschprozessor aus, der auch verknüpfte Datensätze löst. Hohe Auswirkung, unumkehrbar. Schreibend.
people.setPermissionGroupsSetzt (ersetzt) die Berechtigungsgruppen einer Person anhand numerischer Gruppen-ids (siehe permissionGroups.list — z. B. gewährt die Gruppe "Business Owner" ROLE_ADMIN). Gewährt Zugriff; erstellt KEINEN Login und sendet der Person KEINE E-Mail. Schreibend.

Berechtigungsgruppen

Tools

permissionGroups.getRuft eine Berechtigungsgruppe anhand der id ab, einschließlich der ROLE_*-Strings, die sie gewährt.
permissionGroups.listListet die Berechtigungsgruppen der Organisation und die Rollen auf, die jede gewährt — z. B. gewährt die Gruppe "Business Owner" ROLE_ADMIN. Lesen Sie dies vor people.setPermissionGroups: Die Rollen in der Antwort sind die maßgebliche Quelle dafür, was eine Gruppe tatsächlich erlaubt, sodass Sie nie anhand des Namens raten müssen.
permissionGroups.createErstellt eine Berechtigungsgruppe (name erforderlich; roles = Liste der gewährten ROLE_*-Strings). Schreibend.
permissionGroups.updateAktualisiert Name, Beschreibung oder gewährte Rollen einer Berechtigungsgruppe anhand der id. Schreibend.

Pipelines

Tools

pipelines.getRuft eine Vertriebspipeline anhand der id ab.
pipelines.listListet Vertriebspipelines auf. Eine Pipeline besitzt eine geordnete Menge von Phasen — lesen Sie diese mit stages.list, gefiltert nach pipeline.

Projekte

Tools

projects.getRuft ein Projekt anhand der id ab — Name, Typ, Kunde, Daten, Beschreibung und Preis.
projects.listListet Projekte auf. Filtern Sie nach type (fixed-price | time-and-material | non-billable | internal), client.name, employee, name oder dateFrom-/dateTo-Zeiträumen. Damit ermitteln Sie die project-id, die Aufgaben, Arbeitszeiterfassung, Budgets und Verträge allesamt benötigen.
projects.createErstellt ein Projekt (name + type erforderlich; type = fixed-price|time-and-material|non-billable|internal; optional dateFrom/dateTo, client, publicDescription, notes, priceNet). Schreibend.
projects.updateAktualisiert ein Projekt anhand der id (name, type, Daten, Beschreibung usw.). Schreibend.

Zuständigkeiten

Tools

responsibilities.getRuft eine Zuständigkeit anhand der id ab.
responsibilities.listListet Zuständigkeiten innerhalb einer RACI-Gruppe auf. Filtern Sie nach responsibilityGroup. Zuständigkeiten können über parent verschachtelt werden; Personen werden ihnen über responsibilityEmployees zugewiesen, nicht direkt.
responsibilities.createErstellt eine Zuständigkeit innerhalb einer Gruppe (responsibilityGroup = group-id oder IRI, + name, erforderlich; optional description; optional parent = eine weitere responsibility-IRI zur Verschachtelung). Weisen Sie ihr Personen über responsibilityEmployees.create zu. Schreibend.
responsibilities.updateAktualisiert eine Zuständigkeit anhand der id (name, description, parent, responsibilityGroup = group-id oder IRI). Schreibend.

Zuständigkeits-Mitarbeiter

Tools

responsibilityEmployees.getRuft eine Zuständigkeitszuweisung anhand der id ab.
responsibilityEmployees.listListet auf, wer welcher Zuständigkeit zugewiesen ist und zu welchem Prozentsatz. Filtern Sie nach employee, um die gesamte RACI-Auslastung einer Person über alle Gruppen hinweg zu lesen.
responsibilityEmployees.createWeist einer Zuständigkeit einen Mitarbeiter zu (responsibility = responsibility-id oder IRI, employee = employee-id oder IRI, percentage 0-100, alle erforderlich; optional targets und description). Schreibend.
responsibilityEmployees.updateAktualisiert eine Zuständigkeitszuweisung anhand der id (percentage, targets, description). Schreibend.
responsibilityEmployees.deleteEntfernt die Zuweisung eines Mitarbeiters zu einer Zuständigkeit anhand der id. Schreibend.

Zuständigkeitsgruppen

Tools

responsibilityGroups.getRuft eine Zuständigkeitsgruppe anhand der id ab.
responsibilityGroups.listListet Zuständigkeitsgruppen / RACI-Bereiche auf — die übergeordneten "Odpowiedzialności"-Einträge, jeweils mit einer verantwortlichen Person. Einzelne Zuständigkeiten hängen darunter.
responsibilityGroups.createErstellt eine Zuständigkeitsgruppe / RACI-Bereich (name erforderlich; optional description und responsibleEmployee = die verantwortliche Person, angegeben als einfache employee-id wie 6 (aus people.list) oder als /people/6-IRI). Dies ist der übergeordnete 'Odpowiedzialności'-Eintrag. Fügen Sie einzelne Zuständigkeiten darunter über responsibilities.create hinzu. Schreibend.
responsibilityGroups.updateAktualisiert eine Zuständigkeitsgruppe anhand der id (name, description, responsibleEmployee = employee-id oder IRI). Schreibend.

Phasen

Tools

stages.getRuft eine Deal-Phase anhand der id ab.
stages.listListet Deal-Phasen auf, in Reihenfolge. Filtern Sie nach pipeline. deals.create benötigt eine stage-id von hier, und das Verschieben eines Deals zwischen Phasen wird von dealStageHistories protokolliert.

Lieferanten

Tools

suppliers.listListet Lieferanten/Auftragnehmer auf — ausgeliefert von /contractors, "supplier" und "contractor" sind also derselbe Datensatz. Filtern Sie nach cyclic für wiederkehrende Lieferanten. Damit ermitteln Sie den Lieferanten, gegen den eine Kosten-, Vertrags- oder Eingangsrechnungsposition verbucht ist.
suppliers.createErstellt einen neuen Lieferanten-/Auftragnehmerdatensatz (name, tinType, costGroup erforderlich). Schreibend.
suppliers.updateAktualisiert die Angaben eines Lieferanten/Auftragnehmers (name, Steuernummer, Zahlungsbedingungen usw.) anhand der id. Schreibend.

Tag-Definitionen

Tools

tagDefinitions.listListet Tag-Definitionen auf — die Tags, die Datensätzen zugeordnet werden können, jeweils innerhalb einer Tag-Gruppe. tags.create benötigt eine tagDefinition-id von hier sowie den Datensatz, dem sie zugeordnet wird.
tagDefinitions.createErstellt eine Tag-Definition (name, level, tagGroup erforderlich) innerhalb einer Tag-Gruppe. Schreibend.

Tag-Gruppen

Tools

tagGroups.listListet Tag-Gruppen auf — die Container, die Tag-Definitionen organisieren.
tagGroups.createErstellt eine Tag-Gruppe (name erforderlich), um zusammengehörige Tag-Definitionen zu organisieren. Schreibend.

Aufgabenkommentare

Tools

taskComments.listListet Kommentare zu Projektaufgaben auf, älteste zuerst. Filtern Sie nach task, um die Diskussion zu einer Aufgabe zu lesen.
taskComments.createFügt einer Projektaufgabe einen Kommentar hinzu (task-id + content). Schreibend.

Aufgabenlisten

Tools

taskLists.listListet Aufgabenlisten auf — die Board-Spalten/Bereiche, in die Aufgaben einsortiert werden. Filtern Sie nach project. tasks.create benötigt eine list-id von hier.

Aufgaben

Tools

tasks.getRuft eine Projektaufgabe anhand der id ab — Titel, Projekt, Status, Liste, Zugewiesene, Daten und Wiederholung.
tasks.listListet Projektaufgaben auf. Filtern Sie nach project, list, status, assignees, isTemplate oder startAt-/dueAt-Zeiträumen. Wiederkehrende Aufgaben stellen recurrenceParent und recurrenceRule bereit, sodass ein generiertes Vorkommen bis zur erzeugenden Regel zurückverfolgt werden kann. Um zu entscheiden, ob eine Aufgabe ERLEDIGT ist, vergleichen Sie ihren status mit taskStatuses.list (isClosed), statt den Statusnamen abzugleichen.
tasks.createErstellt eine Projektaufgabe (title + project erforderlich; optional status, list, assignees, dueAt, priority). Schreibend.
tasks.updateAktualisiert eine Projektaufgabe anhand der id — ändert status (inkl. als erledigt markieren), assignees, dueAt, title usw. Schreibend.

Aufgabenstatus

Tools

taskStatuses.listListet die Projektaufgabenstatus auf, in Board-Reihenfolge. isClosed kennzeichnet die abgeschlossenen Zustände und isDefault den Status, den eine neue Aufgabe erhält. Lesen Sie dies, bevor Sie den Status einer Aufgabe interpretieren — die Namen sind organisationsseitig konfigurierbar, sodass "Done" kein verlässlicher String zum Abgleich ist.

Steuergruppen

Tools

taxGroups.listListet Steuergruppen auf. Damit ermitteln Sie die taxGroup-id, nach der taxRules.list filtert und die Rechnungspositionen führen.
taxGroups.createErstellt eine Steuergruppe (name + type erforderlich). Schreibend.
taxGroups.updateAktualisiert Name oder Typ einer Steuergruppe anhand der id. Schreibend.

Steuerregeln

Tools

taxRules.listListet Steuerregeln auf — die Sätze und die Zeiträume, für die sie gelten. Filtern Sie nach taxGroup.
taxRules.createErstellt eine Steuerregel. Schreibend.
taxRules.updateAktualisiert eine Steuerregel anhand der id. Schreibend.

Transaktionen

Tools

transactions.listListet Banktransaktionen auf — den Kontoauszugs-Feed, gegen den Eingangsrechnungen abgeglichen werden. Filtern Sie nach bankAccount, counterpartyRole, cost, ignored, hasDetectedProblems, einem orderDate-/execDate-Zeitraum oder amount.between. Beachten Sie: orderDate und execDate sind unterschiedlich — eine Zahlung kann in einem Monat beauftragt werden und im nächsten ausgeführt werden.
transactions.suggestionsLiest Flowtlys Vorschläge für eine Banktransaktion — gegen welchen Geschäftspartner, welche Kostengruppe oder welches Dokument sie verbucht werden sollte. Das Spiegelbild von incomingInvoices.suggestions, von der Geldseite aus.

Arbeitszeiten

Tools

workTimes.getRuft einen einzelnen Arbeitszeiteintrag anhand der id ab — Datum, Minuten, Projekt, Notizen und der zugehörige Mitarbeiter.
workTimes.listListet Arbeitszeiteinträge (erfasste Stunden) auf. Filtern Sie nach Zeitraum (date.after / date.before, YYYY-MM-DD) und optional nach employee oder project; paginieren Sie mit cursor. Jede Zeile führt employeeId/employeeName und projectId/projectName, damit exportieren Sie alle erfassten Stunden für einen Zeitraum. WICHTIG: Organisationsweite Ergebnisse erfordern ROLE_WORKING_HOURS_VIEWER. Ohne diese Rolle meldet das Backend KEINEN Fehler — es liefert stillschweigend nur die eigenen Einträge des verbundenen Benutzers, sodass ein Export "aller Stunden" nur eine Person enthalten kann und dabei völlig unauffällig aussieht. Wenn jede Zeile zu einem einzigen Mitarbeiter gehört und Sie nicht nach employee gefiltert haben, führt die Antwort ein scopeWarning, das dies anzeigt — weisen Sie den Benutzer darauf hin, statt das Ergebnis als organisationsweit darzustellen.
workTimes.logErfasst einen Arbeitszeiteintrag für den verbundenen Flowtly-Benutzer (date, durationMinutes, project, notes). Schreibend.

Tags

Tools

tags.createOrdnet eine Tag-Definition einem Datensatz zu (tagDefinition + relationName + relationId; z. B. relationName "counterparty", um einen Lieferanten zu taggen). Schreibend.

Kundenkontakte

Tools

clientContacts.createErstellt eine Kontaktperson für einen Kunden (client, type, name, email erforderlich). Schreibend.

Bankkonten der Geschäftspartner

Tools

counterpartyBankAccounts.createOrdnet einem Geschäftspartner ein Bankkonto zu (counterparty + accountNumber). Schreibend.

Organisations-Icon

Tools

organizationIcon.uploadLädt das Icon/Favicon der Organisation hoch/ersetzt es (base64-Bild + contentType + filename). Das aktuelle Icon lesen Sie über configs.get organization-icon-url. Schreibend.