FlowEstate envía webhooks cuando los leads, proyectos o unidades cambian. Los suscriptores registran una URL destino y un tipo de evento; FlowEstate distribuye requestsDocumentation Index
Fetch the complete documentation index at: https://developers.flowestate.app/llms.txt
Use this file to discover all available pages before exploring further.
POST firmados con cuerpo JSON.
Para gestionar suscripciones programáticamente (crear, listar, eliminar), ver la Referencia API de webhooks. Esta página cubre lo que tu receptor necesita hacer una vez creada la suscripción.
Headers
Cada entrega incluye:| Header | Descripción |
|---|---|
Content-Type | Siempre application/json. |
User-Agent | FlowEstate-Webhook/1.0 |
X-FlowEstate-Event | Tipo del evento, p.ej. lead.created. |
X-FlowEstate-Delivery | UUID de este intento de entrega. Úsalo para procesamiento idempotente. |
X-FlowEstate-Signature | sha256=<hex> HMAC-SHA256 del cuerpo crudo exacto usando el secret del endpoint. |
X-FlowEstate-Source | Origen del evento: ui, api o system. Úsalo para evitar bucles — ver más abajo. |
Body
data depende del evento:
- Eventos
lead.*llevandata.lead. - Eventos
project.*llevandata.project. - Eventos
unit.*llevandata.unitydata.project. lead.note_addedllevadata.leadIdydata.note.lead.communication_loggedllevadata.leadIdydata.communication.
Verificar la firma
Verifica siempre la firma antes de confiar en un payload. Cualquiera que conozca tu URL puede pegarle; solo FlowEstate tiene el secret.POST /webhooks/subscriptions y se muestra solo una vez. Si lo pierdes, elimina la suscripción y crea una nueva.
Acuse de recibo
Devuelve cualquier status2xx para acusar recibo. FlowEstate no lee el cuerpo de la respuesta — un 200 vacío está bien.
Si tu handler hace trabajo pesado (llama otros APIs, escribe a una BD lenta), acusa primero, procesa después:
Política de reintentos
Las entregas fallidas (error de red, timeout, o HTTP≥ 400) se reintentan con este backoff:
| Intento | Delay antes del retry |
|---|---|
| 1 | — (inicial) |
| 2 | 1 minuto |
| 3 | 5 minutos |
| 4 | 30 minutos |
| 5 | 2 horas |
| 6 | 12 horas |
failed y no se reintenta más. El header X-FlowEstate-Delivery se mantiene constante a través de los reintentos — úsalo como tu clave de idempotencia al procesar.
Prevención de bucles
Cuando escribes a FlowEstate vía este API REST, el webhook resultante se distribuye conX-FlowEstate-Source: api. Si tu receptor también escribe de vuelta a FlowEstate, descarta los eventos con source api para evitar un bucle infinito.
ui— cambio hecho por un usuario haciendo clic en el panel de FlowEstate.system— cambio hecho por un worker interno (asignaciones, automatizaciones).api— cambio hecho a través de este API REST (tus propias escrituras, plataformas partner).