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.get | Ruft ein Bankkonto anhand der id ab — Name, Währung, Bank und das Format, in dem seine Kontoauszüge importiert werden. |
| bankAccounts.list | Listet 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.create | Erstellt ein Bankkonto (type, name, currency, defaultImportFormat erforderlich). Schreibend. |
| bankAccounts.update | Aktualisiert ein Bankkonto anhand der id. Schreibend. |
Kunden
Tools
| clients.get | Ruft einen Kunden anhand der id ab — Name, Land, Währung, Steuernummer und Status. |
| clients.list | Listet 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.create | Erstellt einen neuen Kundendatensatz (name, country, currency, status, tinType erforderlich). Schreibend. |
| clients.update | Aktualisiert einen Kundendatensatz anhand der id. Schreibend. |
Konfigurationsschlüssel
Tools
| configKeys.catalog | Listet 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.get | Liest einen Organisationskonfigurationswert anhand der id, wobei die id ein Schlüssel aus configKeys.catalog ist (z. B. organization-logo-url, organization-icon-url). |
| configs.update | Aktualisiert einen Organisationskonfigurationswert anhand der id (type + name erforderlich; Berechtigungen werden vom Backend pro Konfigurationsschlüssel durchgesetzt). Schreibend. |
Verträge
Tools
| contracts.get | Ruft einen Vertrag anhand der id ab — Parteien, Richtung, Wert, wiederkehrende Konditionen und Daten. |
| contracts.list | Listet 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.paymentScheduleLines | Listet 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.create | Erstellt einen Vertrag. Schreibend. |
| contracts.update | Aktualisiert einen Vertrag anhand der id. Schreibend. |
| contracts.delete | Löscht einen Vertrag anhand der id. Schreibend. |
Kostengruppen
Tools
| costGroups.list | Listet 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.create | Erstellt eine Kostengruppe / Kostenstelle (name + type erforderlich). Schreibend. |
| costGroups.update | Aktualisiert Name oder Typ einer Kostengruppe / Kostenstelle anhand der id. Schreibend. |
Geschäftspartner
Tools
| counterparties.get | Ruft einen Geschäftspartner anhand der id ab. |
| counterparties.list | Listet 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.get | Ruft eine CRM-Notiz anhand der id ab. |
| crmNotes.list | Listet Notizen zu Leads und Deals auf. Filtern Sie nach lead oder deal, um den laufenden Kommentarverlauf zu einem Datensatz zu lesen. |
| crmNotes.create | Fügt einem Lead oder Deal eine Notiz hinzu (body + genau eines von lead/deal). Autor ist der verbundene Benutzer. Schreibend. |
| crmNotes.update | Aktualisiert den Text einer CRM-Notiz anhand der id. Schreibend. |
| crmNotes.delete | Löscht eine CRM-Notiz anhand der id. Schreibend. |
Deal-Verlustgründe
Tools
| dealLostReasons.get | Ruft einen Deal-Verlustgrund anhand der id ab. |
| dealLostReasons.list | Listet 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.get | Ruft einen Deal anhand der id ab — Titel, Kunde, Phase, Betrag, Eigentümer, Kontakt, voraussichtliches und tatsächliches Abschlussdatum. |
| deals.list | Listet 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.create | Erstellt einen Deal/eine Opportunity (title, client, stage erforderlich; amountMinor, currency, expectedCloseDate, owner, contact optional). Schreibend. |
| deals.update | Aktualisiert einen Deal anhand der id (title, stage, amount, Abschlussdatum, owner, contact). Der Phasenwechsel wird automatisch protokolliert. Schreibend. |
| deals.delete | Löscht einen Deal anhand der id (Soft-Delete). Schreibend. |
| deals.win | Markiert einen Deal als gewonnen — verschiebt ihn in eine Gewonnen-Phase und markiert ihn als abgeschlossen; optional verknüpft contractId einen bestehenden Vertrag. Schreibend. |
| deals.lose | Markiert 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.get | Ruft einen Deal-Phasenwechsel-Datensatz anhand der id ab. |
| dealStageHistories.list | Listet 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.get | Ruft eine Eingangsrechnung (Lieferant) oder einen Beleg anhand der id ab, mit den per OCR erfassten Feldern und dem aktuellen Abgleichsstatus. |
| incomingInvoices.list | Listet 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.matchCandidates | Listet 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.suggestions | Liest 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.suggestionsDebug | Erklä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.create | Legt 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.checkEInvoices | Holt 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.get | Ruft eine Ausgangsrechnung (Verkauf) anhand der id ab — Kunde, Positionen, Summen, Verkaufs- und Ausstellungsdatum, Status. |
| invoices.list | Listet 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.export | Startet 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.exportStatus | Fragt 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.get | Ruft einen Lead-Kontakt anhand der id ab. |
| leadContacts.list | Listet 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.create | Fügt einem Lead eine Kontaktperson hinzu (lead + name erforderlich; email, phone, role, isPrimary optional). Schreibend. |
| leadContacts.update | Aktualisiert einen Lead-Kontakt anhand der id. Schreibend. |
| leadContacts.delete | Löscht einen Lead-Kontakt anhand der id. Schreibend. |
Lead-Listenmitgliedschaften
Tools
| leadListMemberships.get | Ruft eine Lead-Listen-Mitgliedschaft anhand der id ab. |
| leadListMemberships.list | Listet 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.create | Fügt einer Outbound-Liste einen Lead hinzu (list + lead erforderlich; status optional). Schreibend. |
| leadListMemberships.update | Aktualisiert die Mitgliedschaft eines Leads in einer Liste — z. B. den Kontaktstatus setzen (contacted/replied/bounced). Schreibend. |
| leadListMemberships.delete | Entfernt einen Lead aus einer Outbound-Liste. Schreibend. |
Lead-Listen
Tools
| leadLists.get | Ruft eine Outbound-Prospecting-Liste anhand der id ab. |
| leadLists.list | Listet Outbound-Prospecting-Listen auf. Damit ermitteln Sie die list-id, die leadListMemberships.create erwartet. |
| leadLists.create | Erstellt eine Outbound-Prospecting-Liste (name erforderlich). Schreibend. |
| leadLists.update | Aktualisiert eine Outbound-Liste anhand der id. Schreibend. |
| leadLists.delete | Löscht eine Outbound-Liste anhand der id. Schreibend. |
Lead-Verlustgründe
Tools
| leadLostReasons.get | Ruft einen Lead-Verlustgrund anhand der id ab. |
| leadLostReasons.list | Listet die Gründe auf, aus denen ein Lead als verloren markiert werden kann, in Reihenfolge. |
Leads
Tools
| leads.dedupeCheck | Prü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.get | Ruft einen Lead anhand der id ab — Unternehmen, Website, Quelle, Status, Eigentümer und, falls vorhanden, den Kunden, zu dem er konvertiert wurde. |
| leads.list | Listet 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.create | Erstellt einen Lead (Outbound-/Inbound-Interessent; companyName, source, status, owner, linked client optional). Schreibend. |
| leads.update | Aktualisiert einen Lead anhand der id (company, website, source, status, owner, linked client). Schreibend. |
| leads.delete | Löscht einen Lead anhand der id (Soft-Delete). Schreibend. |
| leads.convert | Konvertiert 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.get | Ruft eine Lead-Phase anhand der id ab. |
| leadStages.list | Listet die Phasen auf, die ein Lead durchläuft, in Reihenfolge. Leads haben ihr eigenes Phasenset — Deals verwenden stages.list, was etwas anderes ist. |
Organisationen
Tools
| organizations.get | Ruft 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.get | Ruft einen Personen-/Mitarbeiterdatensatz anhand der id ab — Namen, E-Mails, Telefon, Vorgesetzter und ob die Person aktiv ist. |
| people.list | Listet 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.create | Erstellt einen Personen-/Mitarbeiterdatensatz (firstname + lastname erforderlich; optional companyEmail, contactEmail, contactPhone). Schreibend. |
| people.update | Aktualisiert einen Personen-/Mitarbeiterdatensatz anhand der id (name, companyEmail, contactEmail, contactPhone usw.). Schreibend. |
| people.delete | Lö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.setPermissionGroups | Setzt (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.get | Ruft eine Berechtigungsgruppe anhand der id ab, einschließlich der ROLE_*-Strings, die sie gewährt. |
| permissionGroups.list | Listet 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.create | Erstellt eine Berechtigungsgruppe (name erforderlich; roles = Liste der gewährten ROLE_*-Strings). Schreibend. |
| permissionGroups.update | Aktualisiert Name, Beschreibung oder gewährte Rollen einer Berechtigungsgruppe anhand der id. Schreibend. |
Pipelines
Tools
| pipelines.get | Ruft eine Vertriebspipeline anhand der id ab. |
| pipelines.list | Listet Vertriebspipelines auf. Eine Pipeline besitzt eine geordnete Menge von Phasen — lesen Sie diese mit stages.list, gefiltert nach pipeline. |
Projekte
Tools
| projects.get | Ruft ein Projekt anhand der id ab — Name, Typ, Kunde, Daten, Beschreibung und Preis. |
| projects.list | Listet 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.create | Erstellt ein Projekt (name + type erforderlich; type = fixed-price|time-and-material|non-billable|internal; optional dateFrom/dateTo, client, publicDescription, notes, priceNet). Schreibend. |
| projects.update | Aktualisiert ein Projekt anhand der id (name, type, Daten, Beschreibung usw.). Schreibend. |
Zuständigkeiten
Tools
| responsibilities.get | Ruft eine Zuständigkeit anhand der id ab. |
| responsibilities.list | Listet 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.create | Erstellt 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.update | Aktualisiert eine Zuständigkeit anhand der id (name, description, parent, responsibilityGroup = group-id oder IRI). Schreibend. |
Zuständigkeits-Mitarbeiter
Tools
| responsibilityEmployees.get | Ruft eine Zuständigkeitszuweisung anhand der id ab. |
| responsibilityEmployees.list | Listet 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.create | Weist 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.update | Aktualisiert eine Zuständigkeitszuweisung anhand der id (percentage, targets, description). Schreibend. |
| responsibilityEmployees.delete | Entfernt die Zuweisung eines Mitarbeiters zu einer Zuständigkeit anhand der id. Schreibend. |
Zuständigkeitsgruppen
Tools
| responsibilityGroups.get | Ruft eine Zuständigkeitsgruppe anhand der id ab. |
| responsibilityGroups.list | Listet Zuständigkeitsgruppen / RACI-Bereiche auf — die übergeordneten "Odpowiedzialności"-Einträge, jeweils mit einer verantwortlichen Person. Einzelne Zuständigkeiten hängen darunter. |
| responsibilityGroups.create | Erstellt 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.update | Aktualisiert eine Zuständigkeitsgruppe anhand der id (name, description, responsibleEmployee = employee-id oder IRI). Schreibend. |
Phasen
Tools
| stages.get | Ruft eine Deal-Phase anhand der id ab. |
| stages.list | Listet 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.list | Listet 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.create | Erstellt einen neuen Lieferanten-/Auftragnehmerdatensatz (name, tinType, costGroup erforderlich). Schreibend. |
| suppliers.update | Aktualisiert die Angaben eines Lieferanten/Auftragnehmers (name, Steuernummer, Zahlungsbedingungen usw.) anhand der id. Schreibend. |
Tag-Definitionen
Tools
| tagDefinitions.list | Listet 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.create | Erstellt eine Tag-Definition (name, level, tagGroup erforderlich) innerhalb einer Tag-Gruppe. Schreibend. |
Tag-Gruppen
Tools
| tagGroups.list | Listet Tag-Gruppen auf — die Container, die Tag-Definitionen organisieren. |
| tagGroups.create | Erstellt eine Tag-Gruppe (name erforderlich), um zusammengehörige Tag-Definitionen zu organisieren. Schreibend. |
Aufgabenkommentare
Tools
| taskComments.list | Listet Kommentare zu Projektaufgaben auf, älteste zuerst. Filtern Sie nach task, um die Diskussion zu einer Aufgabe zu lesen. |
| taskComments.create | Fügt einer Projektaufgabe einen Kommentar hinzu (task-id + content). Schreibend. |
Aufgabenlisten
Tools
| taskLists.list | Listet 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.get | Ruft eine Projektaufgabe anhand der id ab — Titel, Projekt, Status, Liste, Zugewiesene, Daten und Wiederholung. |
| tasks.list | Listet 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.create | Erstellt eine Projektaufgabe (title + project erforderlich; optional status, list, assignees, dueAt, priority). Schreibend. |
| tasks.update | Aktualisiert eine Projektaufgabe anhand der id — ändert status (inkl. als erledigt markieren), assignees, dueAt, title usw. Schreibend. |
Aufgabenstatus
Tools
| taskStatuses.list | Listet 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.list | Listet Steuergruppen auf. Damit ermitteln Sie die taxGroup-id, nach der taxRules.list filtert und die Rechnungspositionen führen. |
| taxGroups.create | Erstellt eine Steuergruppe (name + type erforderlich). Schreibend. |
| taxGroups.update | Aktualisiert Name oder Typ einer Steuergruppe anhand der id. Schreibend. |
Steuerregeln
Tools
| taxRules.list | Listet Steuerregeln auf — die Sätze und die Zeiträume, für die sie gelten. Filtern Sie nach taxGroup. |
| taxRules.create | Erstellt eine Steuerregel. Schreibend. |
| taxRules.update | Aktualisiert eine Steuerregel anhand der id. Schreibend. |
Transaktionen
Tools
| transactions.list | Listet 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.suggestions | Liest 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.get | Ruft einen einzelnen Arbeitszeiteintrag anhand der id ab — Datum, Minuten, Projekt, Notizen und der zugehörige Mitarbeiter. |
| workTimes.list | Listet 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.log | Erfasst einen Arbeitszeiteintrag für den verbundenen Flowtly-Benutzer (date, durationMinutes, project, notes). Schreibend. |
Kundenkontakte
Tools
| clientContacts.create | Erstellt eine Kontaktperson für einen Kunden (client, type, name, email erforderlich). Schreibend. |
Bankkonten der Geschäftspartner
Tools
| counterpartyBankAccounts.create | Ordnet einem Geschäftspartner ein Bankkonto zu (counterparty + accountNumber). Schreibend. |
Organisationslogo
Tools
| organizationLogo.upload | Lädt das Logo der Organisation hoch/ersetzt es (base64-Bild + contentType + filename). Das aktuelle Logo lesen Sie über configs.get organization-logo-url. Schreibend. |
Organisations-Icon
Tools
| organizationIcon.upload | Lä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. |