Format des Abonnement-Ereignisses
Für die kanonische, KI-freundliche Schema-Referenz siehe Subscription Event Schema.
GraphQL-Abonnements liefern eine schlanke Zustellhülle und einen JSON-kodierten Ereignisumschlag.
Zustellhülle
Antworten im Benutzer-Feed sehen so aus:
{
"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": "..."
}
Antworten im Gruppen-Feed verwenden groupId anstelle von userId in der äußeren Hülle.
Die Hülle identifiziert den Abonnement-Kanal. Der innere data-String ist die kanonische Ereignisnutzlast.
Ereignisumschlag
Nach dem Parsen von data erhalten Sie:
{
"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"
}
}
Felder des Umschlags
| Feld | Beschreibung |
|---|---|
version | Version des Ereignisumschlags. Aktuell 1.0. |
eventId | Stabile logische Ereignis-ID. Fanout-Kopien desselben Ereignisses teilen denselben Wert. |
timestamp | ISO-8601 Zeitstempel des Ereignisses. |
level | Schweregrad des Ereignisses. Aktuell meist INFO. |
event | Kanonischer Ereignisname wie documentArchived oder uploadCompleted. |
category | Ereignisfamilie. Beschreibt, wie data interpretiert wird. |
groupId | Gruppen-Kontext, falls zutreffend. |
userId | Benutzer-Kontext, falls zutreffend. |
requestId | Anforderungs-Korrelations-ID, falls verfügbar. |
batchId | Batch-Kontext, falls verfügbar. |
error | Fehler-Nutzlast, falls zutreffend, sonst null. |
data | Kategoriespezifische Nutzlast. |
Kategorien
Aktuelle Kategorien:
documentrecipientdocumentLifecyclerecipientLifecycletemplatetaskuploadcredit
category gibt an, auf welches Objekt oder welchen Workflow sich das Ereignis bezieht. event sagt, was passiert ist.
Datenformate
data ist kategoriespezifisch und zukunftserweiterbar:
- Produzenten können im Laufe der Zeit Felder hinzufügen.
- Produzenten sollten vorhandene Felder nicht inkompatibel entfernen.
- Konsumenten sollten Felder ignorieren, die sie nicht erkennen.
Aktuelle Basisformate:
// 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 }
Ausführlichere Lifecycle-Daten werden derzeit am konsistentesten für documentLifecycle- und recipientLifecycle-Ereignisse bereitgestellt.