Saltar al contenido principal

Reportar eventos del sitio

POST 

/site-events

Por aquí un sitio conectado cuenta lo que pasó en él — un pedido pagado, un registro, un carrito abandonado —, hasta 100 eventos por llamada. Es lo que llama el plugin de WordPress, y cualquier plataforma propia con la API key de un sitio conectado también puede llamarla.

El sitio no necesita saber qué flujos existen: reporta el evento por su nombre, y todo flujo activo y publicado con el disparador de evento del sitio que escucha ese nombre lo recibe (como máximo 20 flujos por evento, por prioridad), igual que las ejecuciones que lo están esperando. En el flujo, lo que venga en data queda disponible como {{trigger.<ruta>}} — {{trigger.order.total}} —, junto a trigger.$event (id, name, occurred_at) y trigger.$site (id, url, name).

Nombres. <origen>.<objeto>.<suceso>, en minúsculas, de 2 a 4 segmentos y hasta 80 caracteres: wc.order.paid, wp.user.registered. Los orígenes wp, wc, wcs, form y fcrc son los del catálogo del plugin; los eventos de tu propia integración van en custom — custom.suscripcion.renovada.

Contacto. El bloque contact pasa por la misma sincronización que POST /contacts/sync, con los campos en snake_case y con los disparadores activados: un contacto nuevo o una etiqueta añadida inician los flujos de siempre. Sin un contacto válido no empieza ningún flujo — pero un bloque contact inválido no rechaza el evento, que queda registrado con el motivo.

Respuesta. 202 significa registrado y encolado: ningún flujo corre dentro de la solicitud. Cada evento responde por sí mismo — uno inválido vuelve en rejected, con su posición y el motivo, sin tumbar el lote; un id que el sitio ya reportó cuenta en duplicates y no cambia nada. La entrega es "al menos una vez": reenviar es seguro. Cada evento lleva hasta 64 KB entre data y contact.

Esta ruta no responde 402: con la cuenta bloqueada, los eventos se aceptan y se registran sin correr flujos, para que el sitio no acumule reintentos.

Idempotencia. Con la cabecera Idempotency-Key, una repetición de la misma llamada devuelve la primera respuesta, con Idempotent-Replayed: true. La misma clave con otro cuerpo se rechaza con 422 idempotency_key_reused; mientras la primera solicitud sigue en curso, la repetición recibe 409 idempotency_in_progress.

Solo la API key de un sitio conectado reporta eventos — viene con el permiso events:write. Una API key común recibe 404 site_not_found.

Request​

Responses​

Eventos registrados. El destino de cada uno está en accepted, duplicates o rejected.