Suivre les Tâches d'Envoi avec les Abonnements
send et les flux associés renvoient un ID de tâche et continuent de manière asynchrone.
Pour une expérience utilisateur en temps réel en production, privilégiez les abonnements au lieu de l'interrogation répétée (polling) de task.
Pour le schéma général des événements, voir Format de l'Événement d'Abonnement.
Flux et Catégorie
Les événements de tâche sont transmis sur :
subscribeGroupFeed
Ils utilisent :
category: "task"
Noms des Événements de Tâche
Les événements actuels du flux de travail de tâche incluent :
taskDocumentCreatedtaskCompletedtaskStoppedByRecipientStopListtaskTrialCreditBlockedtaskCreditBlocked
Contenu de l'Événement de Tâche
Les charges utiles des tâches utilisent cette forme de base :
{
"version": "1.0",
"eventId": "evt...",
"timestamp": "2026-04-24T10:38:36.822Z",
"level": "INFO",
"event": "taskCompleted",
"category": "task",
"groupId": "grp...",
"userId": "usr...",
"requestId": null,
"batchId": "bch...",
"error": null,
"data": {
"id": "tsk...",
"code": "TSKPROCESSOK",
"documents": []
}
}
Opération d'Abonnement
subscription SubscribeGroupFeed($groupId: String!) {
subscribeGroupFeed(groupId: $groupId) {
groupId
data
}
}
Exemple JavaScript
const parseEnvelope = (payload) => {
const raw = payload?.data;
if (!raw) return null;
return typeof raw === 'string' ? JSON.parse(raw) : raw;
};
const handleGroupFeed = ({ data }) => {
const wrapper = data?.subscribeGroupFeed;
const event = parseEnvelope(wrapper);
if (event?.category !== 'task') return;
switch (event.event) {
case 'taskCompleted':
console.log('send task completed', event.data.id);
break;
case 'taskDocumentCreated':
console.log('document created inside task', event.data.documents);
break;
case 'taskCreditBlocked':
case 'taskTrialCreditBlocked':
case 'taskStoppedByRecipientStopList':
console.warn('task blocked', event.event, event.data.code);
break;
default:
console.log('task update', event.event, event.data);
}
};
Interrogation Répétée vs Abonnements
L'interrogation répétée de la requête task convient pour :
- débuter
- scripts simples
- débogage
Les abonnements sont préférables lorsque vous souhaitez :
- mises à jour immédiates de l'interface utilisateur
- progression de l'envoi reflétée en direct dans un tableau de bord
- notifications de flux de travail sans interrogation répétée