Référence d'aide de l'API Flowenti Robots
Ce guide regroupe les 15 endpoints officiels nécessaires pour intégrer un robot logiciel dans la plateforme Flowenti.
https://<host>/flowentisysman/v1
Authorization: Bearer eyJhbGciOiJIUzUxMiIs...
key Gestion des clés API
Le robot s'authentifie avec un JWT Authorization: Bearer JWT portant les claims IsAPIKey='1' et RobotID, généré depuis le panneau de l'organisation. Conservez le token comme un secret et effectuez une rotation régulière.
speed Limites de débit et backoff
Un polling trop fréquent renvoie une 429 Rate Limit Exceeded. Intervalle de polling conseillé : 3 à 5 secondes. Sur les erreurs 5xx, appliquez un backoff exponentiel avec nouvelles tentatives.
Taxonomie des endpoints (15 appels)
Sélectionnez une catégorie pour filtrer la documentation.
1. Contexte et authentification
/organizations/user
Renvoie le contexte de l'organisation associée à la clé API délivrée au robot. À appeler avant toute autre requête.
{
"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 des organisations liées à la clé API du robot : avec un token robot elle n'en contient qu'une seule.idID numérique de l'organisation : la valeur à utiliser comme {idorganization} dans les autres endpoints.nameNom affiché de l'organisation.administratortrue si le robot opère avec des permissions d'administrateur de l'organisation.subscriptionnameNom de l'abonnement de l'organisation (peut être vide).hasmultipleusertrue si l'organisation a plusieurs utilisateurs associés.creationDate/heure de création de l'organisation (ISO 8601).deletedtrue si l'organisation a été supprimée (soft delete).iconIcône/logo de l'organisation (null si non défini).
2. Démarrage des processus
/startevents/organizations/{idorganization}
Découvrez les processus que le robot est autorisé à démarrer dans l'organisation spécifiée.
idorganizationID de l'organisation dans laquelle l'opération est exécutée : celle associée à la clé API (JWT) du robot.
{
"possiblestart": [
{
"id": 21,
"name": "",
"idtype": 0,
"idprocessmodel": 88,
"processmodelname": "Gestione Ordini",
"idswimlane": 1,
"swimlanename": "Lane 1",
"idorganization": 14207,
"assignmentmode": 0,
"userschema": "[]"
}
]
}
possiblestartListe des événements de démarrage disponibles : chaque entrée est un processus que le robot peut instancier.idID de l'événement de démarrage : la valeur à utiliser comme {idevent} au démarrage du processus.nameNom de l'événement de démarrage (peut être vide).idtypeType d'événement de démarrage défini dans le modèle BPMN.idprocessmodelID du modèle de processus (BPMN) auquel l'opération se réfère.processmodelnameNom du modèle de processus (BPMN) auquel l'événement de démarrage appartient.idswimlaneID de la lane (swimlane) assignée aux activités du processus démarré.swimlanenameNom de la lane associée.idorganizationID de l'organisation dans laquelle l'opération est exécutée : celle associée à la clé API (JWT) du robot.assignmentmodeMode d'assignation des tâches défini sur le modèle (0 = assignation automatique depuis la file).userschemaSchéma des utilisateurs admis (JSON sérialisé) associé à l'événement de démarrage.
/processes/
Instancie un nouveau processus BPMN en générant le token d'avancement initial.
{
"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 du modèle de processus (BPMN) auquel l'opération se réfère.idorganizationID de l'organisation dans laquelle l'opération est exécutée : celle associée à la clé API (JWT) du robot.ideventID de l'événement de démarrage du modèle qui instancie le processus : à choisir dans /startevents/organizations/{idorganization}.startdateDate/heure de démarrage du processus au format ISO 8601 (ex. 2026-08-26T08:00:00Z).enddateDate/heure de fin du processus ; null tant que le processus n'est pas clôturé.descriptionDescription courte du processus, visible dans l'interface (ex. Facture #2026-0451).descriptiondetailDescription étendue optionnelle avec les détails opérationnels de l'instance de processus.userdataObjet avec des données libres liées à l'instance (ex. client) : persistantes pendant toute la vie du processus.
{
"process": {
"id": 773019
},
"processtoken": {
"id": 901,
"state": 0
},
"previousprocesstoken": {
"id": 901
}
}
processProcessus instancié : le champ id est la référence globale pour la lecture des pièces jointes et les requêtes sur le processus.processtokenToken d'avancement créé ou déplacé par l'opération : c'est l'unité de travail que le robot guide nœud par nœud.idID du token d'avancement : identifiant unique de l'unité de travail.stateÉtat du token : 0 = en attente (todo), 1 = en cours (doing), 2 = terminée (done).previousprocesstokenÉtat du token avant l'opération : utile pour l'audit et la reconstruction de l'historique du processus.
3. Découverte des tâches
/tasks/organizations/{idorganization}/canget
Interroge le système pour vérifier la présence de tâches disponibles que le robot peut prendre en charge.
idorganizationID de l'organisation dans laquelle l'opération est exécutée : celle associée à la clé API (JWT) du robot.
{
"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": []
}
waitingflownodesTâches en attente (état todo) que le robot peut prendre en charge avec nextstate/doing.doingflownodesTâches actuellement en cours (état doing) par le robot.idprocesstokenID du token d'avancement sur lequel opérer dans les appels suivants (nextstate, pièces jointes, exit).idflownodeID du nœud d'activité : la valeur à utiliser comme {idflownode} dans le body de nextstate.designeridID alphanumérique du nœud dans le diagramme BPMN (id XML du designer) : nécessaire pour /exit/{designerid} aux gateways.flownodenameNom lisible de l'activité tel que dessiné dans le modèle BPMN.idprocessID du processus auquel la tâche appartient : nécessaire pour lire les pièces jointes (/processes/{idprocess}/attachments/light).idprocessmodelID du modèle de processus (BPMN) auquel l'opération se réfère.idorganizationID de l'organisation dans laquelle l'opération est exécutée : celle associée à la clé API (JWT) du robot.processmodelnameNom du modèle de processus (BPMN) auquel l'événement de démarrage appartient.stateÉtat du token : 0 = en attente (todo), 1 = en cours (doing), 2 = terminée (done).priority_namePriorité de la tâche définie sur le modèle (ex. HIGH) : guide l'ordre de traitement.countcommentsNombre de commentaires présents sur la tâche (lecture seule).countattachmentsNombre de pièces jointes déjà présentes sur la tâche (lecture seule).
4. Avancement des tâches
/processes/{idtoken}/nextstate/doing
Notifie à Flowenti la prise en charge de la tâche par le robot, en passant le token à l'état
{
"idflownode": 555,
"iduserrobot": 17
}
idflownodeID du nœud d'activité (flownode) concerné par l'action : il provient de la liste waitingflownodes renvoyée par le polling.iduserrobotID de l'utilisateur/robot qui effectue l'opération : celui associé au token JWT du robot.
{
"idtoken": 888111,
"state": 1,
"claimedAt": "2026-08-27T14:33:02Z",
"iduserrobot": 17
}
idtokenID du token dont l'état a changé à la suite de l'opération.stateÉtat du token : 0 = en attente (todo), 1 = en cours (doing), 2 = terminée (done).claimedAtDate/heure de la prise en charge (ISO 8601).iduserrobotID de l'utilisateur/robot qui effectue l'opération : celui associé au token JWT du robot.
/processes/{idtoken}/nextstate/done
Marque la tâche comme terminée avec succès et fait avancer le flux au nœud suivant.
{
"idflownode": 555,
"result": {
"validated": true,
"extractedFields": {
"total": 1234.56,
"vat": 258.86
}
}
}
idflownodeID du nœud d'activité (flownode) concerné par l'action : il provient de la liste waitingflownodes renvoyée par le polling.resultCharge utile de résultat en format libre avec les données produites par la tâche (ex. champs extraits) : enregistrée sur le processus et disponible pour les nœuds suivants.
{
"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": []
}
processProcessus instancié : le champ id est la référence globale pour la lecture des pièces jointes et les requêtes sur le processus.processtokenToken d'avancement créé ou déplacé par l'opération : c'est l'unité de travail que le robot guide nœud par nœud.idID du token d'avancement : identifiant unique de l'unité de travail.idprocessID du processus auquel le token appartient.idflownodeID du nœud (activité ou événement) sur lequel le token se trouve.flownodetypeType de nœud (0 = événement, 1 = activité, ...).iduserID de l'utilisateur/robot qui a en charge le token (0 si en file).stateÉtat du token : 0 = en attente (todo), 1 = en cours (doing), 2 = terminée (done).previousID du token précédent dans l'historique du processus.createdDate/heure de création du token (ISO 8601).startdoingDate/heure de prise en charge ; null tant que le token n'est pas passé à doing.doneDate/heure de fin ; null tant que le token n'est pas passé à done.previousprocesstokenÉtat du token avant l'opération : utile pour l'audit et la reconstruction de l'historique du processus.previousflownodeNœud d'où provient le token avant l'opération.flownodeNœud (activité ou événement) sur lequel se trouve maintenant le token.sequenceflowsFlux de séquence accessibles depuis le nœud courant : non vide lorsque des décisions ultérieures sont nécessaires.
/processes/{idtoken}/undo
Annule la dernière action du robot sur la tâche (undo) : ramène le token de En cours (Doing, 1) à En attente (ToDo, 0) et remet la tâche dans la file des tâches disponibles. C'est le seul mécanisme de récupération supporté aujourd'hui — il n'y a pas de nextstate/error, failed ou abort — à utiliser quand le runtime du robot échoue avant de terminer une activité.
{
"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
}
}
processProcessus instancié : le champ id est la référence globale pour la lecture des pièces jointes et les requêtes sur le processus.processtokenToken d'avancement créé ou déplacé par l'opération : c'est l'unité de travail que le robot guide nœud par nœud.idID du token d'avancement : identifiant unique de l'unité de travail.idprocessID du processus auquel le token appartient.idflownodeID du nœud (activité ou événement) sur lequel le token se trouve.flownodetypeType de nœud (0 = événement, 1 = activité, ...).iduserID de l'utilisateur/robot qui a en charge le token (0 si en file).stateÉtat du token : 0 = en attente (todo), 1 = en cours (doing), 2 = terminée (done).previousID du token précédent dans l'historique du processus.createdDate/heure de création du token (ISO 8601).startdoingDate/heure de prise en charge ; null tant que le token n'est pas passé à doing.doneDate/heure de fin ; null tant que le token n'est pas passé à done.flownodeNœud (activité ou événement) sur lequel se trouve maintenant le token.previousflownodeNœud d'où provient le token avant l'opération.previousprocesstokenÉtat du token avant l'opération : utile pour l'audit et la reconstruction de l'historique du processus.
Chaque tâche est représentée par un token de processus avec un état numérique :
- 0 — En attente (todo)
- 1 — En cours (doing)
- 2 — Terminée (done)
Transitions principales : nextstate/doing pour la prise en charge, nextstate/done pour la fin, undo pour revenir en attente.
5. Choix du chemin (routage gateway)
/processes/tokens/{idtoken}/exit/{designerid}
Sélectionne la sortie spécifique du gateway lorsque le flux BPMN rencontre une décision conditionnelle ou une branche guidée par le robot.
{
"reason": "validated_by_robot",
"metadata": {
"validationScore": 0.97
}
}
reasonÉtiquette libre documentant le motif du choix du chemin du gateway (ex. validated_by_robot).metadataObjet optionnel avec des données supplémentaires sur la décision (ex. score de validation).
{
"idtoken": 888111,
"selectedExit": "approve",
"designerid": "Gateway_approve_01",
"advancedAt": "2026-08-27T14:34:01Z"
}
idtokenID du token dont l'état a changé à la suite de l'opération.selectedExitNom de la sortie du gateway sélectionnée par le robot.designeridID alphanumérique du nœud dans le diagramme BPMN (id XML du designer) : nécessaire pour /exit/{designerid} aux gateways.advancedAtDate/heure de l'avancement (ISO 8601).
6. Pièces jointes
Attention pendant le développement : les pièces jointes sont
écrites
en référençant le token du nœud (
/flownodes/{idprocesstoken}/attachments
), tandis que la
lecture
nécessite la référence au processus global (
/processes/{idprocess}/attachments/light
). Utilisez le bon paramètre pour éviter les erreurs
404 Not Found.
/flownodes/{idprocesstoken}/attachments
Téléverse un fichier/document joint lié au nœud courant du processus (utilise
{
"idorganization": 14207,
"filename": "fattura_2026.pdf",
"cloudlink": "",
"idtype": 1,
"description": "Fattura 2026",
"blob": "<base64 del file>",
"size": 24576
}
idorganizationID de l'organisation dans laquelle l'opération est exécutée : celle associée à la clé API (JWT) du robot.filenameNom du fichier avec extension, tel qu'il doit apparaître dans la pièce jointe.cloudlinkURL cloud alternative à l'upload binaire : si renseigné, la pièce jointe pointe vers une ressource distante au lieu du blob.idtypeType de pièce jointe (idtype) : identifiant de la catégorie de fichier gérée par la plateforme.descriptionDescription courte du processus, visible dans l'interface (ex. Facture #2026-0451).blobContenu du fichier encodé en base64 ; size est sa taille en octets.sizeTaille du fichier en octets, cohérente avec le contenu du blob.
{
"idattachment": 7890,
"idprocesstoken": 888111,
"filename": "fattura_2026.pdf",
"size": 24576,
"uploadedAt": "2026-08-27T14:34:10Z"
}
idattachmentID de la pièce jointe créée : à référencer dans les opérations suivantes éventuelles.idprocesstokenID du token d'avancement sur lequel opérer dans les appels suivants (nextstate, pièces jointes, exit).filenameNom du fichier avec extension, tel qu'il doit apparaître dans la pièce jointe.sizeTaille du fichier en octets, cohérente avec le contenu du blob.uploadedAtDate/heure du téléversement (ISO 8601).
/processes/{idprocess}/attachments/light
Lit la liste légère de toutes les pièces jointes du processus (utilise
idprocessID du processus concerné par l'opération : il provient de la réponse du démarrage (/processes/) ou du polling.
{
"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 des pièces jointes du processus : une entrée par fichier téléversé.idID de la pièce jointe.idorganizationID de l'organisation dans laquelle l'opération est exécutée : celle associée à la clé API (JWT) du robot.filenameNom du fichier avec extension, tel qu'il doit apparaître dans la pièce jointe.descriptionDescription de la pièce jointe (vide si non fournie au téléversement).idtypeType de pièce jointe (idtype) : identifiant de la catégorie de fichier gérée par la plateforme.cloudlinkURL cloud alternative à l'upload binaire : si renseigné, la pièce jointe pointe vers une ressource distante au lieu du blob.creationDate/heure de création de la pièce jointe (ISO 8601).iduserID de l'utilisateur qui a téléversé la pièce jointe (0 pour les robots).usernameNom d'utilisateur de celui qui a téléversé la pièce jointe (vide pour les robots).activitynameNom de l'activité (nœud BPMN) à laquelle la pièce jointe est rattachée.
7. Pull étendu des tâches
/tasks/organizations/{idorganization}/doing
Variante de /tasks/doing filtrée par organisation. Renvoie les tâches Doing du robot courant pour une seule organisation.
idorganizationID de l'organisation dans laquelle l'opération est exécutée : celle associée à la clé API (JWT) du robot.
{
"doingflownodes": [
{
"idprocesstoken": 1,
"idprocess": 1,
"idflownode": 7,
"flownodename": "Attività 1",
"priority_name": "Alta"
}
]
}
doingflownodesTâches actuellement en cours (état doing) par le robot.idprocesstokenID du token d'avancement sur lequel opérer dans les appels suivants (nextstate, pièces jointes, exit).idprocessID du processus auquel la tâche appartient : nécessaire pour lire les pièces jointes (/processes/{idprocess}/attachments/light).idflownodeID du nœud d'activité : la valeur à utiliser comme {idflownode} dans le body de nextstate.flownodenameNom lisible de l'activité tel que dessiné dans le modèle BPMN.priority_namePriorité de la tâche définie sur le modèle (ex. HIGH) : guide l'ordre de traitement.
8. Découverte et configuration du robot
/startevents
Découverte globale de tous les événements de démarrage disponibles pour le robot sur toutes les organisations. Alternative cross-org à /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 des événements de démarrage disponibles : chaque entrée est un processus que le robot peut instancier.idID de l'événement de démarrage : la valeur à utiliser comme {idevent} au démarrage du processus.nameNom de l'événement de démarrage (peut être vide).idtypeType d'événement de démarrage défini dans le modèle BPMN.idprocessmodelID du modèle de processus (BPMN) auquel l'opération se réfère.processmodelnameNom du modèle de processus (BPMN) auquel l'événement de démarrage appartient.idswimlaneID de la lane (swimlane) assignée aux activités du processus démarré.swimlanenameNom de la lane associée.idorganizationID de l'organisation dans laquelle l'opération est exécutée : celle associée à la clé API (JWT) du robot.assignmentmodeMode d'assignation des tâches défini sur le modèle (0 = assignation automatique depuis la file).userschemaSchéma des utilisateurs admis (JSON sérialisé) associé à l'événement de démarrage.
/robots/configurations/data/{idorganization}/{idprocessmodel}
Récupère la configuration JSON du robot pour l'organisation et le modèle de processus indiqués. Utilisée en bootstrap pour lire les paramètres driver, endpoints distants, credentials d'intégration.
idorganizationID de l'organisation dans laquelle l'opération est exécutée : celle associée à la clé API (JWT) du robot.idprocessmodelID du modèle de processus (BPMN) auquel l'opération se réfère.
{
"id": 1,
"idorganization": 1,
"idrobot": 1,
"idprocessmodel": 1,
"linkedto": "",
"datajson": {
"chiave": "valore"
}
}
idID de la ligne de configuration.idorganizationID de l'organisation dans laquelle l'opération est exécutée : celle associée à la clé API (JWT) du robot.idrobotID du robot auquel les données se réfèrent.idprocessmodelID du modèle de processus (BPMN) auquel l'opération se réfère.linkedtoRéférence interne de liaison (généralement vide).datajsonConfiguration et paramètres runtime du robot au format JSON libre : lue au bootstrap et interprétée par le robot.
/robots/organizations
Liste les organisations associées au robot courant avec leurs tags (urgent, routine, batch, etc.). Utile pour router la tâche vers la bonne organisation avant la prise en charge.
{
"idrobot": 1,
"organizations": [
{
"id": 1,
"name": "Org1",
"tags": [
{
"id": 1,
"name": "urgente",
"idorganization": 1,
"color": "#ff0000"
}
]
}
]
}
idrobotID du robot auquel les données se réfèrent.organizationsListe des organisations liées à la clé API du robot : avec un token robot elle n'en contient qu'une seule.idID numérique de l'organisation : la valeur à utiliser comme {idorganization} dans les autres endpoints.nameNom affiché de l'organisation.tagsTags associés à l'organisation (ex. urgent, routine, batch).tags.idID du tag.tags.nameNom du tag (ex. urgent).tags.idorganizationID de l'organisation dans laquelle l'opération est exécutée : celle associée à la clé API (JWT) du robot.tags.colorCouleur du tag au format hex (ex. #ff0000).
/organizations/{idorganization}/robots/{id}/settings?idprocessmodel={idprocessmodel}
Paramètres par-robot pour une organisation et un modèle de processus spécifiques. Le paramètre de requête `idprocessmodel` est requis : sans lui, le serveur cherche la ligne au niveau organisation (idprocessmodel is null), qui n'existe normalement pas. Inclut le payload datajson avec les paramètres runtime du robot.
idorganizationID de l'organisation dans laquelle l'opération est exécutée : celle associée à la clé API (JWT) du robot.idID du robot dans l'organisation : à retrouver dans la liste renvoyée par /robots/organizations (champ idrobot).idprocessmodel (query)ID du modèle de processus (BPMN) auquel l'opération se réfère.
{
"id": 1,
"idorganization": 1,
"idrobot": 1,
"idprocessmodel": null,
"linkedto": "",
"datajson": {
"properties": {
"campo1 ssss": {
"type": "...",
"value": "Test"
}
}
}
}
idID de la ligne de configuration.idorganizationID de l'organisation dans laquelle l'opération est exécutée : celle associée à la clé API (JWT) du robot.idrobotID du robot auquel les données se réfèrent.idprocessmodelID du modèle de processus (BPMN) auquel l'opération se réfère.linkedtoRéférence interne de liaison (généralement vide).datajsonConfiguration et paramètres runtime du robot au format JSON libre : lue au bootstrap et interprétée par le robot.propertiesMap nom → {type, value} avec les paramètres runtime du robot.
Gestion des erreurs et états de réponse
Toutes les réponses d'erreur de Flowenti Robots API renvoient une structure JSON uniforme contenant le code d'erreur unique et un message de diagnostic.
{
"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"
}
}
| Code HTTP | État d'erreur | Cause et stratégie de résolution pour le robot |
|---|---|---|
| 400 Bad Request | Paramètres incorrects | La charge utile est mal formée ou des champs obligatoires manquent. Vérifiez les types de paramètres. |
| 401 Unauthorized | Token JWT invalide | En-tête Authorization: Bearer <JWT> manquant, expiré ou révoqué. Régénérez le token depuis le panneau de l'organisation. |
| 403 Forbidden | Permissions insuffisantes | Le robot n'a pas la permission de démarrer ou de modifier le processus dans l'organisation spécifiée. |
| 404 Not Found | Ressource inexistante | La ressource demandée n'existe pas ou n'est plus disponible. Vérifiez que les identifiants et les références envoyés sont corrects. |
| 409 Conflict | Token déjà utilisé | Un autre robot a déjà pris la tâche via la transition /doing. |
| 429 Rate Limit Exceeded | Trop de requêtes de polling | Le robot effectue un polling trop fréquent sur /tasks/organizations/{id}/canget. Appliquez un délai (backoff de 3 à 5 s). |
| 500 Internal Error | Erreur serveur Flowenti | Problème temporaire du serveur Flowenti. Réessayez avec un backoff exponentiel. |
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"])