Format de l'événement d'abonnement
Pour la référence canonique du schéma compatible avec l'IA, voir Subscription Event Schema.
Les abonnements GraphQL renvoient un enveloppe de livraison légère et un enveloppe d'événement encodée en JSON.
Enveloppe de livraison
Les réponses des flux utilisateur ressemblent à :
{
"data": "{\"version\":\"1.0\",\"eventId\":\"evt...\",\"timestamp\":\"2026-04-24T10:38:36.822Z\",\"level\":\"INFO\",\"event\":\"recipientVisiting\",\"category\":\"recipientLifecycle\",\"groupId\":\"grp...\",\"userId\":\"usr...\",\"requestId\":null,\"batchId\":null,\"error\":null,\"data\":{\"id\":\"rec...\",\"documentId\":\"doc...\",\"documentName\":\"Example document\",\"firstName\":\"Ada\",\"lastName\":\"Lovelace\"}}",
"userId": "..."
}
Les réponses des flux de groupe utilisent groupId au lieu de userId dans l'enveloppe extérieure.
L'enveloppe identifie le canal d'abonnement. La chaîne data intérieure est la charge utile canonique de l'événement.
Enveloppe d'événement
Après avoir analysé data, vous recevez :
{
"version": "1.0",
"eventId": "evt...",
"timestamp": "2026-04-24T10:38:36.822Z",
"level": "INFO",
"event": "recipientVisiting",
"category": "recipientLifecycle",
"groupId": "grp...",
"userId": "usr...",
"requestId": null,
"batchId": null,
"error": null,
"data": {
"id": "rec...",
"documentId": "doc...",
"documentName": "Example document",
"firstName": "Ada",
"lastName": "Lovelace"
}
}
Champs de l'enveloppe
| Champ | Description |
|---|---|
version | Version de l'enveloppe d'événement. Actuellement 1.0. |
eventId | ID logique stable de l'événement. Les copies fanout du même événement partagent la même valeur. |
timestamp | Horodatage ISO-8601 de l'événement. |
level | Gravité de l'événement. Actuellement généralement INFO. |
event | Nom canonique de l'événement tel que documentArchived ou uploadCompleted. |
category | Famille de l'événement. Cela décrit comment interpréter data. |
groupId | Contexte de groupe lorsque applicable. |
userId | Contexte utilisateur lorsque applicable. |
requestId | ID de corrélation de la requête lorsque disponible. |
batchId | Contexte de lot lorsque disponible. |
error | Charge d'erreur lorsqu'applicable, sinon null. |
data | Charge utile spécifique à la catégorie. |
Catégories
Catégories actuelles :
documentrecipientdocumentLifecyclerecipientLifecycletemplatetaskuploadcredit
category vous indique quel objet ou flux de travail concerne l'événement. event vous indique ce qui s'est passé.
Formes de données
data est spécifique à la catégorie et extensible vers l'avant :
- Les producteurs peuvent ajouter des champs au fil du temps.
- Les producteurs ne doivent pas supprimer de façon incompatible des champs existants.
- Les consommateurs doivent ignorer les champs qu'ils ne reconnaissent pas.
Formes de base actuelles :
// document
{ "id": "doc..." }
// recipient
{ "id": "rec...", "documentId": "doc..." }
// documentLifecycle
{ "id": "doc...", "documentName": "Example document" }
// recipientLifecycle
{
"id": "rec...",
"documentId": "doc...",
"documentName": "Example document",
"firstName": "Ada",
"lastName": "Lovelace"
}
// template
{ "id": "tpl..." }
// task
{ "id": "tsk...", "code": "TSKPROCESSOK", "documents": [] }
// upload
{ "id": "tmp...", "key": "upload/usr.../tmp....pdf", "code": "UPLOADOK" }
// credit
{ "credit": 172 }
Les données de cycle de vie plus riches sont actuellement peuplées de façon la plus cohérente pour les événements documentLifecycle et recipientLifecycle.