Enviar un evento
Registra que un contacto hizo algo en tu producto. El evento inicia cada automatización activa cuyo desencadenante lo nombra y hace avanzar a quien lo estuviera esperando.
Ejecuta cualquiera de las 2 llamadas en tu espacio de trabajo.
POST /events
Registra que un contacto hizo algo en tu producto. El evento inicia cada automatización activa cuyo desencadenante lo nombra y hace avanzar a quien lo estuviera esperando.
Ejemplo
Requiere contacts:write. Indica el contacto con email o con contactId.
curl -X POST "$OE/events" -H "$AUTH" -H 'content-type: application/json' -H 'Idempotency-Key: order-A-1042' -d '{ "name": "order.placed", "email": "[email protected]", "properties": { "orderId": "A-1042", "total": 59 }, "createContact": true}'{ "object": "contact_event", "id": "cev_6a1d9f3c8b2e40a75d9c1e38", "contactId": "5b0e7c1a-2f4d-4c8b-9a36-1e7d0c5f8b24", "email": "[email protected]", "name": "order.placed", "properties": { "orderId": "A-1042", "total": 59 }, "occurredAt": "2026-10-11T08:02:03.000Z", "mode": "live", "createdAt": "2026-10-11T08:02:03.412Z", "replayed": false, "enrolled": ["aut_7c2e9a1f4b8d30c65e1a9f27"], "resumed": 0}name tiene hasta 100 letras, dígitos, puntos, dos puntos, guiones y guiones bajos, y empieza por una letra o un dígito. Los nombres distinguen mayúsculas de minúsculas.
properties admite como máximo 50 claves y 4 KB de JSON. Un filtro del desencadenante, un valor de un correo y una bifurcación pueden leerlas.
occurredAt es por defecto ahora. Puede estar hasta 90 días en el pasado y no más de 5 minutos en el futuro.
Una dirección desconocida responde 404 contact_not_found salvo que createContact sea true, lo que añade el contacto, con contactName como nombre.
enrolled lista las automatizaciones en las que entró el contacto y resumed cuenta las esperas que terminó el evento.
Enviar de nuevo el mismo Idempotency-Key responde 200 con el primer evento y replayed: true. La misma clave con otro cuerpo se rechaza con 422 idempotency_key_reuse.
Un evento enviado con una clave de prueba se guarda con mode: "test" y no inicia nada.
Lote
POST /events/batch acepta hasta 100 eventos en events, cada uno con la forma del cuerpo de arriba. Responde 200 aunque algunos se rechacen, y dice cuáles.
curl -X POST "$OE/events/batch" -H "$AUTH" -H 'content-type: application/json' -d '{ "events": [ { "name": "order.placed", "email": "[email protected]" }, { "name": "order.placed", "email": "[email protected]" } ]}'{ "object": "contact_event_batch", "accepted": [{ "index": 0, "object": "contact_event", "id": "cev_6a1d9f3c8b2e40a75d9c1e38", "…": "…" }], "failed": [{ "index": 1, "code": "contact_not_found", "message": "No contact with that address. Pass createContact: true to add one." }]}index es la posición del evento en el array que enviaste.
Una clave o una app puede enviar 600 eventos por minuto. Después, la respuesta es 429 event_rate_limited.