Saltar al contenido principal

Rastrear Tareas de Envío con Suscripciones

send y los flujos relacionados devuelven un ID de tarea y continúan de forma asincrónica.

Para una experiencia de usuario en tiempo real en producción, se prefieren las suscripciones en lugar del sondeo de task.

Para el esquema general de eventos, consulta Formato de Evento de Suscripción.

Feed y Categoría

Los eventos de tareas se entregan en:

  • subscribeGroupFeed

Utilizan:

  • category: "task"

Nombres de Eventos de Tareas

Los eventos actuales del flujo de trabajo de tareas incluyen:

  • taskDocumentCreated
  • taskCompleted
  • taskStoppedByRecipientStopList
  • taskTrialCreditBlocked
  • taskCreditBlocked

Carga Útil del Evento de Tareas

Las cargas útiles de tareas usan esta forma 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": []
}
}

Operación de Suscripción

subscription SubscribeGroupFeed($groupId: String!) {
subscribeGroupFeed(groupId: $groupId) {
groupId
data
}
}

Ejemplo en 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);
}
};

Sondeo vs Suscripciones

El sondeo de la consulta task está bien para:

  • comenzar
  • scripts simples
  • depuración

Las suscripciones son mejores cuando quieres:

  • actualizaciones inmediatas de la interfaz
  • progreso de envío reflejado en vivo en un panel
  • notificaciones de flujo de trabajo sin sondeos repetidos