Configuración de un webhook
Necesitas el rol Owner o Admin.Añadir un webhook
Haz clic en Añadir webhook, pega la URL HTTPS pública de tu endpoint y elige los tipos de eventos que quieres recibir.
Guardar el secreto de firma
Flowella genera un secreto de firma único para el webhook. Cópialo: lo utilizarás para verificar las solicitudes entrantes.
Tipos de eventos
Puede suscribirse a cualquiera de estos eventos de producto:Evento ## Cuando se dispara
| --- | --- | |message.received | Ha llegado un mensaje entrante WhatsApp de un contacto | | message.sent | Flowella ha aceptado su mensaje saliente.
| message.sent | Flowella ha aceptado su mensaje saliente y lo ha enviado a Meta | Meta
| message.delivered | Meta ha confirmado la entrega del mensaje al dispositivo del destinatario | message.read
| message.read El destinatario abrió el mensaje | message.failed
| message.failed | Meta devolvió un fallo para el mensaje | conversation.opened
| conversation.opened | Una conversación ha pasado al estado abierto | conversation.closed
| conversation.closed | Se ha cerrado una conversación | optout.created
| optout.created | Un contacto se ha dado de baja en un canal específico | template.status_updated
| template.status_updated | Meta ha cambiado el estado de una plantilla (aprobada, rechazada, en pausa, desactivada) | optout.created
webhook.test sólo se envía cuando haces clic en Enviar prueba - no te suscribes a él explícitamente.
Formato de solicitud
Flowella envía un cuerpo JSON a tu URL con estas cabeceras:Verificación de firmas
Cada petición incluye una cabeceraX-Flowella-Signature. El valor es el HMAC-SHA256 hex digest del raw UTF-8 request body cifrado con el secreto de firma de tu webhook.
Verificar antes de procesar:
Respuestas, reintentos y tiempos de espera
- Tiempo de espera**: Flowella espera hasta 10 segundos a que su endpoint responda.
- Success: cualquier respuesta de
2xxse considera una entrega correcta. - Reintentos**: las entregas fallidas se reintentan hasta 3 intentos con backoff.
- Desactivación automática**: si un webhook acumula 10 fallos consecutivos, Flowella lo desactiva. Tendrás que volver a activarlo desde Configuración → Webhooks después de arreglar tu endpoint.
Idempotencia
Los webhooks pueden ser reintentados, por lo que el mismo evento lógico puede llegar más de una vez. Para procesar con seguridad:- Utilice el
data.iddel evento (o una clave derivada comoevent + data.messageId) como clave de idempotencia. - Mantén una caché de corta duración de las claves procesadas (unas horas son suficientes para reintentos).
- Tratar los duplicados como no-ops.
Listado y gestión de entregas
Configuración → Webhooks muestra los intentos de entrega recientes por webhook, incluyendo:- Marca de tiempo
- Tipo de evento
- Estado de la respuesta
- Un cuerpo de respuesta truncado (hasta ~1 KB) para depuración
Desarrollo local
La forma más sencilla de desarrollar con webhooks localmente es enviar un túnel público (por ejemplo, ngrok o Cloudflare Tunnel) a tu servidor de desarrollo y apuntar la URL del webhook al host del túnel. Utiliza Send test para disparar payloads bajo demanda sin esperar a la actividad real de WhatsApp.Relacionados
Configuración → Webhooks
Configurar puntos finales, secretos de firma y reintentos en la aplicación.
Introducción a la API
Autenticación, errores, paginación y límites de velocidad para la API REST.
Claves API
Crea y rota los tokens portadores que tu endpoint pueda necesitar.
Eventos de notificación
Los mismos eventos entregados en el feed in-app y el correo electrónico.

