{
"id": "01a0d4a5-9f0a-7b1c-8d2e-3f4a5b6c7d8e",
"event": "campaign.completed",
"createdAt": "2026-10-15T13:18:40.221Z",
"data": {
"id": "01a0d480-2a3b-7c4d-8e5f-6a7b8c9d0e1f",
"name": "Día de la Madre — 20% off",
"recipients": 1250,
"sent": 1238,
"delivered": 1190,
"read": 702,
"failed": 12,
"completedAt": "2026-10-15T13:18:40.000Z"
}
}Eventos de webhook
campaign.completed
Una campaña terminó de enviarse. Los contadores son los del momento en que terminó: las lecturas pueden seguir subiendo después.
WEBHOOK
campaign.completed
{
"id": "01a0d4a5-9f0a-7b1c-8d2e-3f4a5b6c7d8e",
"event": "campaign.completed",
"createdAt": "2026-10-15T13:18:40.221Z",
"data": {
"id": "01a0d480-2a3b-7c4d-8e5f-6a7b8c9d0e1f",
"name": "Día de la Madre — 20% off",
"recipients": 1250,
"sent": 1238,
"delivered": 1190,
"read": 702,
"failed": 12,
"completedAt": "2026-10-15T13:18:40.000Z"
}
}Encabezados
Nombre del evento, igual que event en el cuerpo.
Id de la entrega, igual que id en el cuerpo. Se repite en los reintentos: úsalo para no procesar dos veces lo mismo.
Firma: t=<unix>,v1=<hex>, donde v1 es el HMAC-SHA256 de "<t>.<cuerpo>" con tu secreto de firma.
Cuerpo
application/json
Id de la entrega. Se repite en los reintentos.
Opciones disponibles:
message.received, message.status, contact.created, contact.opted_out, campaign.completed Allowed value:
"campaign.completed"Cuándo ocurrió el evento.
Show child attributes
Show child attributes
Solo en el evento de prueba del botón Probar.
Respuesta
200
Responde con cualquier 2xx para confirmar que lo recibiste.

