Hilfe-Referenz der Flowenti-Robots-API
Dieser Leitfaden umfasst die 15 offiziellen Endpunkte , die erforderlich sind, um einen Software-Roboter in die Flowenti-Plattform zu integrieren.
https://<host>/flowentisysman/v1
Authorization: Bearer eyJhbGciOiJIUzUxMiIs...
key API-Key-Verwaltung
Der Roboter authentifiziert sich mit einem JWT Authorization: Bearer JWT mit den Claims IsAPIKey='1' und RobotID, generiert im Organisationspanel. Behandeln Sie das Token als Geheimnis und rotieren Sie es regelmäßig.
speed Rate Limits und Backoff
Zu häufiges Polling führt zu 429 Rate Limit Exceeded. Empfohlenes Polling-Intervall: 3–5 Sekunden. Bei 5xx exponentiellen Backoff mit Retries anwenden.
Endpunkt-Taxonomie (15 Aufrufe)
Wählen Sie eine Kategorie, um die Dokumentation zu filtern.
1. Kontext und Authentifizierung
/organizations/user
Gibt den Organisationskontext zurück, der mit dem dem Roboter ausgestellten API-Key verbunden ist. Vor jedem anderen Aufruf abrufen.
{
"organizations": [
{
"id": 14299,
"name": "robots snippet",
"administrator": false,
"subscriptionname": "",
"hasmultipleuser": false,
"creation": "2026-09-07T14:00:12.282+02:00",
"deleted": false,
"icon": null
}
]
}
organizationsListe der Organisationen, die mit dem API-Key des Roboters verknüpft sind: mit einem Roboter-Token enthält sie nur einen Eintrag.idNumerische ID der Organisation: der Wert, der in den anderen Endpunkten als {idorganization} verwendet wird.nameAnzeigename der Organisation.administratortrue, wenn der Roboter mit Administratorrechten der Organisation arbeitet.subscriptionnameName des Plans/Abonnements der Organisation (kann leer sein).hasmultipleusertrue, wenn der Organisation mehrere Benutzer zugeordnet sind.creationErstellungsdatum/-uhrzeit der Organisation (ISO 8601).deletedtrue, wenn die Organisation gelöscht wurde (Soft Delete).iconSymbol/Logo der Organisation (null, wenn nicht gesetzt).
2. Prozesse starten
/startevents/organizations/{idorganization}
Ermitteln Sie, welche Prozesse der Roboter in der angegebenen Organisation starten darf.
idorganizationID der Organisation, in der der Vorgang ausgeführt wird: dieselbe, die dem API-Key (JWT) des Roboters zugeordnet ist.
{
"possiblestart": [
{
"id": 21,
"name": "",
"idtype": 0,
"idprocessmodel": 88,
"processmodelname": "Gestione Ordini",
"idswimlane": 1,
"swimlanename": "Lane 1",
"idorganization": 14207,
"assignmentmode": 0,
"userschema": "[]"
}
]
}
possiblestartListe der verfügbaren Start-Events: jeder Eintrag ist ein Prozess, den der Roboter instanziieren kann.idID des Start-Events: der Wert, der beim Prozessstart als {idevent} verwendet wird.nameName des Start-Events (kann leer sein).idtypeTyp des im BPMN-Modell definierten Start-Events.idprocessmodelID des Prozessmodells (BPMN), auf das sich der Vorgang bezieht.processmodelnameName des Prozessmodells (BPMN), zu dem das Start-Event gehört.idswimlaneID der Lane (Swimlane), die den Aktivitäten des gestarteten Prozesses zugewiesen ist.swimlanenameName der zugeordneten Lane.idorganizationID der Organisation, in der der Vorgang ausgeführt wird: dieselbe, die dem API-Key (JWT) des Roboters zugeordnet ist.assignmentmodeAufgaben-Zuweisungsmodus, definiert im Modell (0 = automatische Zuweisung aus der Warteschlange).userschemaSchema der zulässigen Benutzer (serialisiertes JSON) des Start-Events.
/processes/
Startet einen neuen BPMN-Prozess und erzeugt den initialen Fortschritts-Token.
{
"idprocessmodel": 88,
"idorganization": 14207,
"idevent": 21,
"startdate": "2026-08-26T08:00:00Z",
"enddate": null,
"description": "Fattura #2026-0451",
"descriptiondetail": "Emissione automatica da robot",
"userdata": { "cliente": "Acme Spa" }
}
idprocessmodelID des Prozessmodells (BPMN), auf das sich der Vorgang bezieht.idorganizationID der Organisation, in der der Vorgang ausgeführt wird: dieselbe, die dem API-Key (JWT) des Roboters zugeordnet ist.ideventID des Start-Events des Modells, das den Prozess instanziiert: aus /startevents/organizations/{idorganization} wählen.startdateStartdatum/-uhrzeit des Prozesses im ISO-8601-Format (z. B. 2026-08-26T08:00:00Z).enddateEnddatum/-uhrzeit des Prozesses; null, solange der Prozess nicht abgeschlossen ist.descriptionKurze Beschreibung des Prozesses, sichtbar in der Oberfläche (z. B. Rechnung #2026-0451).descriptiondetailOptionale erweiterte Beschreibung mit den operativen Details der Prozessinstanz.userdataObjekt mit freien, an die Instanz gebundenen Daten (z. B. Kunde): bleiben für die gesamte Lebensdauer des Prozesses erhalten.
{
"process": {
"id": 773019
},
"processtoken": {
"id": 901,
"state": 0
},
"previousprocesstoken": {
"id": 901
}
}
processInstanziierter Prozess: das Feld id ist der globale Bezug für das Lesen von Anhängen und Abfragen zum Prozess.processtokenFortschritts-Token, das die Operation erzeugt oder verschiebt: die Arbeitseinheit, die der Roboter Knoten für Knoten steuert.idID des Fortschritts-Tokens: eindeutiger Bezeichner der Arbeitseinheit.stateToken-Status: 0 = wartend (todo), 1 = in Bearbeitung (doing), 2 = abgeschlossen (done).previousprocesstokenStatus des Tokens vor der Operation: nützlich für Audit und Rekonstruktion der Prozesshistorie.
3. Aufgabenermittlung
/tasks/organizations/{idorganization}/canget
Fragt das System nach verfügbaren Aufgaben ab, die der Roboter übernehmen kann.
idorganizationID der Organisation, in der der Vorgang ausgeführt wird: dieselbe, die dem API-Key (JWT) des Roboters zugeordnet ist.
{
"waitingflownodes": [
{
"idprocesstoken": 901,
"idflownode": 41,
"designerid": "Task_EstrarreFatturePDF",
"flownodename": "EstrarreFatturePDF",
"idprocess": 773019,
"idprocessmodel": 88,
"idorganization": 14207,
"processmodelname": "Gestione Ordini",
"state": 0,
"priority_name": "HIGH",
"countcomments": 0,
"countattachments": 2
}
],
"doingflownodes": []
}
waitingflownodesWartende Aufgaben (Status todo), die der Roboter mit nextstate/doing übernehmen kann.doingflownodesAufgaben, die sich derzeit (Status doing) in Bearbeitung durch den Roboter befinden.idprocesstokenID des Fortschritts-Tokens, auf dem in nachfolgenden Aufrufen gearbeitet wird (nextstate, Anhänge, exit).idflownodeID des Aktivitätsknotens: der Wert, der als {idflownode} im nextstate-Body verwendet wird.designeridAlphanumerische ID des Knotens im BPMN-Diagramm (XML-Id des Designers): nötig für /exit/{designerid} an Gateways.flownodenameLesbarer Name der Aktivität, wie er im BPMN-Modell gezeichnet wurde.idprocessID des Prozesses, zu dem die Aufgabe gehört: nötig zum Lesen der Anhänge (/processes/{idprocess}/attachments/light).idprocessmodelID des Prozessmodells (BPMN), auf das sich der Vorgang bezieht.idorganizationID der Organisation, in der der Vorgang ausgeführt wird: dieselbe, die dem API-Key (JWT) des Roboters zugeordnet ist.processmodelnameName des Prozessmodells (BPMN), zu dem das Start-Event gehört.stateToken-Status: 0 = wartend (todo), 1 = in Bearbeitung (doing), 2 = abgeschlossen (done).priority_namePriorität der Aufgabe, definiert im Modell (z. B. HIGH): bestimmt die Verarbeitungsreihenfolge.countcommentsAnzahl der Kommentare zur Aufgabe (nur Lesen).countattachmentsAnzahl der bereits vorhandenen Anhänge zur Aufgabe (nur Lesen).
4. Aufgabenfortschritt
/processes/{idtoken}/nextstate/doing
Meldet Flowenti, dass der Roboter die Aufgabe übernommen hat, und setzt den Token-Status auf
{
"idflownode": 555,
"iduserrobot": 17
}
idflownodeID des Aktivitätsknotens (Flownode), auf den sich die Aktion bezieht: stammt aus der Liste waitingflownodes des Pollings.iduserrobotID des Benutzers/Roboters, der den Vorgang ausführt: derjenige, der dem JWT-Token des Roboters zugeordnet ist.
{
"idtoken": 888111,
"state": 1,
"claimedAt": "2026-08-27T14:33:02Z",
"iduserrobot": 17
}
idtokenID des Tokens, dessen Status durch die Operation geändert wurde.stateToken-Status: 0 = wartend (todo), 1 = in Bearbeitung (doing), 2 = abgeschlossen (done).claimedAtDatum/Uhrzeit der Übernahme (ISO 8601).iduserrobotID des Benutzers/Roboters, der den Vorgang ausführt: derjenige, der dem JWT-Token des Roboters zugeordnet ist.
/processes/{idtoken}/nextstate/done
Meldet den erfolgreichen Abschluss der Aufgabe und bewegt den Fluss zum nächsten Knoten.
{
"idflownode": 555,
"result": {
"validated": true,
"extractedFields": {
"total": 1234.56,
"vat": 258.86
}
}
}
idflownodeID des Aktivitätsknotens (Flownode), auf den sich die Aktion bezieht: stammt aus der Liste waitingflownodes des Pollings.resultFreies Ergebnis-Payload mit den von der Aufgabe erzeugten Daten (z. B. extrahierte Felder): wird am Prozess gespeichert und den nächsten Knoten zur Verfügung gestellt.
{
"process": {
"id": 1661721,
"idprocessmodel": 27613,
"idorganization": 14299,
"state": 0
},
"processtoken": {
"id": 35093744,
"idprocess": 1661721,
"idflownode": 38882,
"flownodetype": 0,
"iduser": 21976,
"state": 2,
"previous": 35093743,
"created": "...",
"startdoing": "...",
"done": "..."
},
"previousprocesstoken": {
"id": 35093743,
"state": 2,
"idflownode": 40414
},
"previousflownode": {
"id": 40414,
"designerid": "Activity_1",
"name": "prima task"
},
"flownode": {
"id": 38882,
"designerid": "Event_1blr1wv",
"idtype": 1
},
"sequenceflows": []
}
processInstanziierter Prozess: das Feld id ist der globale Bezug für das Lesen von Anhängen und Abfragen zum Prozess.processtokenFortschritts-Token, das die Operation erzeugt oder verschiebt: die Arbeitseinheit, die der Roboter Knoten für Knoten steuert.idID des Fortschritts-Tokens: eindeutiger Bezeichner der Arbeitseinheit.idprocessID des Prozesses, zu dem der Token gehört.idflownodeID des Knotens (Aktivität oder Ereignis), auf dem sich der Token befindet.flownodetypeKnotentyp (0 = Ereignis, 1 = Aktivität, ...).iduserID des Benutzers/Roboters, der den Token bearbeitet (0, wenn in der Warteschlange).stateToken-Status: 0 = wartend (todo), 1 = in Bearbeitung (doing), 2 = abgeschlossen (done).previousID des vorherigen Tokens in der Prozesshistorie.createdErstellungsdatum/-uhrzeit des Tokens (ISO 8601).startdoingDatum/Uhrzeit der Übernahme; null, bis der Token zu doing wechselt.doneDatum/Uhrzeit des Abschlusses; null, bis der Token zu done wechselt.previousprocesstokenStatus des Tokens vor der Operation: nützlich für Audit und Rekonstruktion der Prozesshistorie.previousflownodeKnoten, von dem der Token vor der Operation kam.flownodeKnoten (Aktivität oder Ereignis), auf dem sich der Token jetzt befindet.sequenceflowsSequenzflüsse, die vom aktuellen Knoten erreichbar sind: nicht leer, wenn weitere Entscheidungen nötig sind.
/processes/{idtoken}/undo
Macht die letzte Aktion des Roboters an der Aufgabe rückgängig (Undo): setzt den Token-Status von In Bearbeitung (1) auf Wartend (0) zurück und stellt die Aufgabe wieder in die Warteschlange der verfügbaren Aufgaben. Dies ist der einzige heute unterstützte Wiederherstellungsmechanismus — es gibt kein nextstate/error, failed oder abort — zu verwenden, wenn die Roboter-Laufzeit eine Aktivität nicht abschließen kann.
{
"process": {
"id": 1,
"idorganization": 1,
"idprocessmodel": 1,
"startdate": "...",
"enddate": null,
"userdata": "{}"
},
"processtoken": {
"id": 2,
"idprocess": 1,
"idflownode": 7,
"flownodetype": 1,
"iduser": 2,
"state": 0,
"previous": 0,
"created": "...",
"startdoing": null,
"done": null
},
"flownode": {
"id": 7,
"name": "Attività 1",
"designerid": "Activity_1"
},
"previousflownode": {
"id": 6,
"name": "Evento",
"designerid": "StartEvent_1"
},
"previousprocesstoken": {
"id": 1,
"state": 2,
"idflownode": 6,
"flownodetype": 0,
"iduser": 2,
"previous": 0
}
}
processInstanziierter Prozess: das Feld id ist der globale Bezug für das Lesen von Anhängen und Abfragen zum Prozess.processtokenFortschritts-Token, das die Operation erzeugt oder verschiebt: die Arbeitseinheit, die der Roboter Knoten für Knoten steuert.idID des Fortschritts-Tokens: eindeutiger Bezeichner der Arbeitseinheit.idprocessID des Prozesses, zu dem der Token gehört.idflownodeID des Knotens (Aktivität oder Ereignis), auf dem sich der Token befindet.flownodetypeKnotentyp (0 = Ereignis, 1 = Aktivität, ...).iduserID des Benutzers/Roboters, der den Token bearbeitet (0, wenn in der Warteschlange).stateToken-Status: 0 = wartend (todo), 1 = in Bearbeitung (doing), 2 = abgeschlossen (done).previousID des vorherigen Tokens in der Prozesshistorie.createdErstellungsdatum/-uhrzeit des Tokens (ISO 8601).startdoingDatum/Uhrzeit der Übernahme; null, bis der Token zu doing wechselt.doneDatum/Uhrzeit des Abschlusses; null, bis der Token zu done wechselt.flownodeKnoten (Aktivität oder Ereignis), auf dem sich der Token jetzt befindet.previousflownodeKnoten, von dem der Token vor der Operation kam.previousprocesstokenStatus des Tokens vor der Operation: nützlich für Audit und Rekonstruktion der Prozesshistorie.
Jede Aufgabe wird durch einen Prozess-Token mit numerischem Status dargestellt:
- 0 — Wartend (todo)
- 1 — In Bearbeitung (doing)
- 2 — Abgeschlossen (done)
Hauptübergänge: nextstate/doing zum Übernehmen, nextstate/done zum Abschließen, undo zum Zurückstellen.
5. Pfadauswahl (Gateway-Routing)
/processes/tokens/{idtoken}/exit/{designerid}
Wählt den konkreten Gateway-Ausgang, wenn der BPMN-Fluss auf eine bedingte Entscheidung oder einen robotergesteuerten Zweig trifft.
{
"reason": "validated_by_robot",
"metadata": {
"validationScore": 0.97
}
}
reasonFreies Label, das den Grund für die Wahl des Gateway-Zweigs dokumentiert (z. B. validated_by_robot).metadataOptionales Objekt mit zusätzlichen Daten zur Entscheidung (z. B. Validierungspunktzahl).
{
"idtoken": 888111,
"selectedExit": "approve",
"designerid": "Gateway_approve_01",
"advancedAt": "2026-08-27T14:34:01Z"
}
idtokenID des Tokens, dessen Status durch die Operation geändert wurde.selectedExitName des vom Roboter gewählten Gateway-Ausgangs.designeridAlphanumerische ID des Knotens im BPMN-Diagramm (XML-Id des Designers): nötig für /exit/{designerid} an Gateways.advancedAtDatum/Uhrzeit des Fortschritts (ISO 8601).
6. Anhänge
Vorsicht bei der Entwicklung: Anhänge werden
geschrieben
unter Bezug auf den Knoten-Token (
/flownodes/{idprocesstoken}/attachments
), während das
Lesen
den globalen Prozessbezug erfordert (
/processes/{idprocess}/attachments/light
). Verwenden Sie den richtigen Parameter, um
404 Not Found.
/flownodes/{idprocesstoken}/attachments
Lädt eine angehängte Datei hoch und verknüpft sie mit dem aktuellen Prozessknoten (verwendet
{
"idorganization": 14207,
"filename": "fattura_2026.pdf",
"cloudlink": "",
"idtype": 1,
"description": "Fattura 2026",
"blob": "<base64 del file>",
"size": 24576
}
idorganizationID der Organisation, in der der Vorgang ausgeführt wird: dieselbe, die dem API-Key (JWT) des Roboters zugeordnet ist.filenameDateiname mit Endung, so wie er im Anhang erscheinen soll.cloudlinkCloud-URL als Alternative zum Binär-Upload: ist sie gesetzt, zeigt der Anhang auf eine entfernte Ressource statt auf den Blob.idtypeAnhangstyp (idtype): Kennung der von der Plattform verwalteten Dateikategorie.descriptionKurze Beschreibung des Prozesses, sichtbar in der Oberfläche (z. B. Rechnung #2026-0451).blobDateiinhalt, base64-kodiert; size ist die Größe in Byte.sizeDateigröße in Byte, konsistent mit dem Blob-Inhalt.
{
"idattachment": 7890,
"idprocesstoken": 888111,
"filename": "fattura_2026.pdf",
"size": 24576,
"uploadedAt": "2026-08-27T14:34:10Z"
}
idattachmentID des erstellten Anhangs: für spätere Operationen zu verwenden.idprocesstokenID des Fortschritts-Tokens, auf dem in nachfolgenden Aufrufen gearbeitet wird (nextstate, Anhänge, exit).filenameDateiname mit Endung, so wie er im Anhang erscheinen soll.sizeDateigröße in Byte, konsistent mit dem Blob-Inhalt.uploadedAtDatum/Uhrzeit des Uploads (ISO 8601).
/processes/{idprocess}/attachments/light
Liest die schlanke Liste aller Anhänge des Prozesses (verwendet
idprocessID des Prozesses, auf den sich der Vorgang bezieht: stammt aus der Antwort des Prozessstarts (/processes/) oder des Pollings.
{
"attachments": [
{
"id": 7890,
"idorganization": 1,
"filename": "invoice-98765.pdf",
"description": "",
"idtype": 1,
"cloudlink": "",
"creation": "2026-09-09T14:34:10Z",
"iduser": 0,
"username": "",
"activityname": "acct1"
}
]
}
attachmentsListe der Anhänge des Prozesses: ein Eintrag pro hochgeladener Datei.idID des Anhangs.idorganizationID der Organisation, in der der Vorgang ausgeführt wird: dieselbe, die dem API-Key (JWT) des Roboters zugeordnet ist.filenameDateiname mit Endung, so wie er im Anhang erscheinen soll.descriptionBeschreibung des Anhangs (leer, wenn beim Upload nicht angegeben).idtypeAnhangstyp (idtype): Kennung der von der Plattform verwalteten Dateikategorie.cloudlinkCloud-URL als Alternative zum Binär-Upload: ist sie gesetzt, zeigt der Anhang auf eine entfernte Ressource statt auf den Blob.creationErstellungsdatum/-uhrzeit des Anhangs (ISO 8601).iduserID des Benutzers, der den Anhang hochgeladen hat (0 für Roboter).usernameBenutzername des Uploaders (leer bei Robotern).activitynameName der Aktivität (BPMN-Knoten), mit der der Anhang verknüpft ist.
7. Erweitertes Aufgaben-Pull
/tasks/organizations/{idorganization}/doing
Variante von /tasks/doing gefiltert nach Organisation. Gibt die Doing-Aufgaben des aktuellen Roboters für eine einzelne Organisation zurück.
idorganizationID der Organisation, in der der Vorgang ausgeführt wird: dieselbe, die dem API-Key (JWT) des Roboters zugeordnet ist.
{
"doingflownodes": [
{
"idprocesstoken": 1,
"idprocess": 1,
"idflownode": 7,
"flownodename": "Attività 1",
"priority_name": "Alta"
}
]
}
doingflownodesAufgaben, die sich derzeit (Status doing) in Bearbeitung durch den Roboter befinden.idprocesstokenID des Fortschritts-Tokens, auf dem in nachfolgenden Aufrufen gearbeitet wird (nextstate, Anhänge, exit).idprocessID des Prozesses, zu dem die Aufgabe gehört: nötig zum Lesen der Anhänge (/processes/{idprocess}/attachments/light).idflownodeID des Aktivitätsknotens: der Wert, der als {idflownode} im nextstate-Body verwendet wird.flownodenameLesbarer Name der Aktivität, wie er im BPMN-Modell gezeichnet wurde.priority_namePriorität der Aufgabe, definiert im Modell (z. B. HIGH): bestimmt die Verarbeitungsreihenfolge.
8. Roboter-Discovery & Konfiguration
/startevents
Globale Discovery aller für den Roboter verfügbaren Start-Ereignisse über alle Organisationen. Cross-Org-Alternative zu /startevents/organizations/{id}.
{
"possiblestart": [
{
"id": 1,
"name": "StartEvent_1",
"idtype": 0,
"idprocessmodel": 1,
"processmodelname": "Modello A",
"idswimlane": 1,
"swimlanename": "Lane 1",
"idorganization": 1,
"assignmentmode": 1,
"userschema": "..."
}
]
}
possiblestartListe der verfügbaren Start-Events: jeder Eintrag ist ein Prozess, den der Roboter instanziieren kann.idID des Start-Events: der Wert, der beim Prozessstart als {idevent} verwendet wird.nameName des Start-Events (kann leer sein).idtypeTyp des im BPMN-Modell definierten Start-Events.idprocessmodelID des Prozessmodells (BPMN), auf das sich der Vorgang bezieht.processmodelnameName des Prozessmodells (BPMN), zu dem das Start-Event gehört.idswimlaneID der Lane (Swimlane), die den Aktivitäten des gestarteten Prozesses zugewiesen ist.swimlanenameName der zugeordneten Lane.idorganizationID der Organisation, in der der Vorgang ausgeführt wird: dieselbe, die dem API-Key (JWT) des Roboters zugeordnet ist.assignmentmodeAufgaben-Zuweisungsmodus, definiert im Modell (0 = automatische Zuweisung aus der Warteschlange).userschemaSchema der zulässigen Benutzer (serialisiertes JSON) des Start-Events.
/robots/configurations/data/{idorganization}/{idprocessmodel}
Liest die JSON-Konfiguration des Roboters für die angegebene Organisation und das Prozessmodell. Wird beim Bootstrap verwendet, um Treiberparameter, Remote-Endpoints und Integrations-Credentials zu lesen.
idorganizationID der Organisation, in der der Vorgang ausgeführt wird: dieselbe, die dem API-Key (JWT) des Roboters zugeordnet ist.idprocessmodelID des Prozessmodells (BPMN), auf das sich der Vorgang bezieht.
{
"id": 1,
"idorganization": 1,
"idrobot": 1,
"idprocessmodel": 1,
"linkedto": "",
"datajson": {
"chiave": "valore"
}
}
idID der Konfigurationszeile.idorganizationID der Organisation, in der der Vorgang ausgeführt wird: dieselbe, die dem API-Key (JWT) des Roboters zugeordnet ist.idrobotID des Roboters, auf den sich die Daten beziehen.idprocessmodelID des Prozessmodells (BPMN), auf das sich der Vorgang bezieht.linkedtoInterne Verknüpfungsreferenz (meist leer).datajsonKonfiguration und Laufzeitparameter des Roboters als freies JSON: wird beim Bootstrap gelesen und vom Roboter interpretiert.
/robots/organizations
Listet die dem aktuellen Roboter zugeordneten Organisationen mit ihren Tags auf (dringend, Routine, Batch usw.). Nützlich, um Aufgaben vor der Übernahme an die richtige Organisation zu leiten.
{
"idrobot": 1,
"organizations": [
{
"id": 1,
"name": "Org1",
"tags": [
{
"id": 1,
"name": "urgente",
"idorganization": 1,
"color": "#ff0000"
}
]
}
]
}
idrobotID des Roboters, auf den sich die Daten beziehen.organizationsListe der Organisationen, die mit dem API-Key des Roboters verknüpft sind: mit einem Roboter-Token enthält sie nur einen Eintrag.idNumerische ID der Organisation: der Wert, der in den anderen Endpunkten als {idorganization} verwendet wird.nameAnzeigename der Organisation.tagsTags der Organisation (z. B. dringend, Routine, Batch).tags.idID des Tags.tags.nameName des Tags (z. B. dringend).tags.idorganizationID der Organisation, in der der Vorgang ausgeführt wird: dieselbe, die dem API-Key (JWT) des Roboters zugeordnet ist.tags.colorFarbe des Tags im Hex-Format (z. B. #ff0000).
/organizations/{idorganization}/robots/{id}/settings?idprocessmodel={idprocessmodel}
Per-Roboter-Einstellungen für eine bestimmte Organisation und ein Prozessmodell. Der Query-Parameter `idprocessmodel` ist erforderlich: ohne ihn sucht der Server die Zeile auf Organisationsebene (idprocessmodel is null), die normalerweise nicht existiert. Enthält die datajson-Nutzlast mit den Roboter-Laufzeitparametern.
idorganizationID der Organisation, in der der Vorgang ausgeführt wird: dieselbe, die dem API-Key (JWT) des Roboters zugeordnet ist.idID des Roboters in der Organisation: aus der Liste von /robots/organizations übernehmen (Feld idrobot).idprocessmodel (query)ID des Prozessmodells (BPMN), auf das sich der Vorgang bezieht.
{
"id": 1,
"idorganization": 1,
"idrobot": 1,
"idprocessmodel": null,
"linkedto": "",
"datajson": {
"properties": {
"campo1 ssss": {
"type": "...",
"value": "Test"
}
}
}
}
idID der Konfigurationszeile.idorganizationID der Organisation, in der der Vorgang ausgeführt wird: dieselbe, die dem API-Key (JWT) des Roboters zugeordnet ist.idrobotID des Roboters, auf den sich die Daten beziehen.idprocessmodelID des Prozessmodells (BPMN), auf das sich der Vorgang bezieht.linkedtoInterne Verknüpfungsreferenz (meist leer).datajsonKonfiguration und Laufzeitparameter des Roboters als freies JSON: wird beim Bootstrap gelesen und vom Roboter interpretiert.propertiesMap Name → {type, value} mit den Laufzeitparametern des Roboters.
Fehlerbehandlung und Antwortstatus
Alle Fehlerantworten der Flowenti Robots API verwenden eine einheitliche JSON-Struktur mit eindeutigem Fehlercode und Diagnosemeldung.
{
"error": {
"code": "RESOURCE_TOKEN_NOT_FOUND",
"message": "Il token 'tok_inv_123' specificato non corrisponde ad alcuna risorsa attiva.",
"status": 404,
"timestamp": "2026-08-24T12:00:00Z"
}
}
| HTTP-Code | Fehlerstatus | Ursache und Lösungsstrategie für den Roboter |
|---|---|---|
| 400 Bad Request | Falsche Parameter | Die gesendeten Daten sind fehlerhaft oder Pflichtfelder fehlen. Prüfen Sie die Parametertypen. |
| 401 Unauthorized | Ungültiges JWT-Token | Header Authorization: Bearer <JWT> fehlt, ist abgelaufen oder wurde widerrufen. Token im Organisationspanel neu generieren. |
| 403 Forbidden | Unzureichende Berechtigungen | Der Roboter hat keine Berechtigung, Prozesse in der angegebenen Organisation zu starten oder zu ändern. |
| 404 Not Found | Ressource nicht vorhanden | Die angeforderte Ressource existiert nicht oder ist nicht mehr verfügbar. Prüfen Sie, ob die gesendeten Kennungen und Referenzen korrekt sind. |
| 409 Conflict | Token bereits in Verwendung | Ein anderer Roboter hat die Aufgabe bereits über die Transaktion /doing. |
| 429 Rate Limit Exceeded | Zu viele Polling-Anfragen | Der Roboter pollt zu häufig auf /tasks/organizations/{id}/canget. Wenden Sie eine Verzögerung an (3–5 s Backoff). |
| 500 Internal Error | Flowenti-Serverfehler | Temporäres Problem auf dem Flowenti-Server. Mit exponentiellem Backoff erneut versuchen. |
Examples Code Hub
# 1. Contesto organizzazione associata all'API Key
# Auth: Authorization: Bearer <JWT> (claims IsAPIKey='1', RobotID=<id>)
import requests
API_TOKEN = "eyJhbGciOiJIUzUxMiIs.RobotID.claim.IsAPIKey.1..."
headers = {"Authorization": f"Bearer {API_TOKEN}"}
res = requests.get("https://<host>/flowentisysman/v1/organizations/user", headers=headers)
res.raise_for_status()
print(res.json()["organizations"][0]["name"])