Webhooks
- Qué son los webhooks y cómo funcionan en AutoTalk
- Qué contiene cada entrega y cómo se comportan las entregas
- Cómo crear y gestionar endpoints de webhook
Webhooks envían notificaciones en tiempo real a servicios externos cuando ocurren eventos en AutoTalk. En lugar de verificar repetidamente la API de AutoTalk en busca de nuevos datos, tu sistema externo recibe una notificación automática en el momento en que algo sucede, como la llegada de un nuevo mensaje o la actualización de un contacto.
Gestionas los webhooks desde la página Webhooks en Integraciones en la barra lateral.
Cómo funcionan los webhooks
- Proporcionas una URL del webhook (un endpoint en tu servidor o un servicio de terceros que pueda recibir solicitudes HTTP).
- Eliges un Modelo de datos y una Operación (por ejemplo,
contacts+afterCreate) que deben activar el webhook y, opcionalmente, un Filtro CEL para acotar qué cambios lo disparan. Tus propios Tipos Personalizados también funcionan — elige la entradact:<slug>en el dropdown de Modelo (para Tipos Personalizados se disparan las operacionesafterCreate,afterUpdateyafterDelete). - Cuando ocurre un cambio coincidente en AutoTalk, la plataforma envía una solicitud HTTP POST a tu URL del webhook con los datos del evento en formato JSON.
Tu sistema externo recibe los datos y puede actuar sobre ellos según sea necesario, ya sea actualizando una base de datos, enviando una notificación o disparando un workflow.
El dropdown ofrece un conjunto fijo de modelos integrados más tus propios Tipos Personalizados como entradas ct:<slug>. Los modelos integrados que puedes elegir son contacts, conversations, messages, agents, workflows y webhooks — no se puede seleccionar ningún otro modelo ahí. Para reaccionar a cualquier otra cosa, construye un workflow con un trigger de tipo hook y un paso de Solicitud HTTP en lugar de un webhook.
El filtro
El filtro es una expresión CEL sobre doc (el registro), prev (su versión anterior, o null), companyId, type, op y now. Los ve como un filtro de hook de workflow: cada id es su cadena hexadecimal de 24 caracteres y cada fecha una cadena ISO 8601, así que compara los ids directamente, por ejemplo doc.contactId == "65f0c1d2e3a4b5c6d7e8f901".
Un filtro que falla — un error, como leer un campo que el registro no tiene, o pasar de 1000 ms — nunca entrega el webhook, sea cual sea su configuración En caso de error. Protege un campo que puede no existir o ser nulo: has(doc.channel) && doc.channel != null && doc.channel.kind == 'whatsapp'.
Carga útil de la entrega
Cada entrega es una solicitud HTTP POST con un cuerpo JSON en una estructura estable:
{
"id": "contacts:afterCreate:66a1b2c3d4e5f6a7b8c9d0e1:2026-07-02T14:03:07.512Z",
"model": "contacts",
"op": "afterCreate",
"at": "2026-07-02T14:03:07.512Z",
"companyId": "664a0f9eb1c2d3e4f5a6b7c8",
"tenantId": "664a0f9eb1c2d3e4f5a6b7c8",
"doc": {
"_id": "66a1b2c3d4e5f6a7b8c9d0e1",
"name": "Jane Doe",
"createdAt": "2026-07-02T14:03:07.498Z",
"updatedAt": "2026-07-02T14:03:07.498Z"
},
"prev": null
}
| Campo | Significado |
|---|---|
id | Un identificador por evento que combina el modelo, la operación, el ID del registro y la marca de tiempo |
model | El modelo de datos que cambió — un modelo integrado como contacts, o ct:<slug> para un Tipo Personalizado |
op | La operación del ciclo de vida que disparó el webhook (por ejemplo afterCreate, afterUpdate, afterDelete) |
at | Cuándo se disparó el evento, como una marca de tiempo ISO 8601 |
companyId / tenantId | El ID de tu empresa (ambos campos llevan el mismo valor) |
doc | El registro involucrado en el evento (el ejemplo anterior está truncado — recibes el registro completo) |
prev | La versión anterior del registro, cuando existe (actualizaciones); null en caso contrario (por ejemplo, en las creaciones) |
Para las entregas de afterDelete de Tipo Personalizado (ct:), doc no es el registro eliminado — es un objeto de resumen {filter, hardDelete, deletedCount} que describe la eliminación, y prev es siempre null.
Semántica de la entrega
- Cada evento recibe un único intento de entrega por webhook — las entregas fallidas no se reintentan.
- La solicitud expira después de 5 segundos y las redirecciones no se siguen — apunta el webhook directamente a un endpoint que responda rápido.
- Responde con cualquier estado 2xx para confirmar la recepción; el cuerpo de la respuesta no se procesa, pero debe mantenerse por debajo de 64 KiB — una respuesta más grande aborta la entrega y cuenta como una entrega fallida.
- AutoTalk registra las entregas fallidas en los logs de la plataforma y en las métricas de entrega, pero no existe un registro de entregas por webhook que puedas abrir en la aplicación — si necesitas un registro de lo que recibió tu receptor, registra cada solicitud de tu lado.
- Las entregas no están firmadas. Si tu receptor necesita verificar que una solicitud realmente vino de AutoTalk, incluye un token difícil de adivinar en tu URL del webhook (por ejemplo, un parámetro de consulta secreto) y verifícalo en tu lado.
Gestionar webhooks
Ver webhooks existentes
Navega a Integraciones > Webhooks. La página muestra una lista titulada Webhooks con todos tus endpoints configurados. La lista sigue el formato CRUD estándar de AutoTalk con opciones para filtrar, ver, editar y eliminar entradas.
Crear un nuevo webhook
- En la página de Webhooks, haz clic en el botón + (información sobre herramientas "Agregar nuevos webhooks").
- Completa los campos:
- URL del webhook — El endpoint donde AutoTalk debe enviar los datos del evento (debe ser una URL HTTP/HTTPS pública)
- Activado — Si el webhook se dispara (activado por defecto)
- Disparador — Un Modelo, una Operación y un Filtro CEL opcional que deciden qué cambios disparan el webhook. La lista de Modelo es el conjunto fijo descrito en Cómo funcionan los webhooks, más arriba.
- Guarda el webhook.
AutoTalk ahora enviará una solicitud HTTP POST a tu URL del webhook cada vez que ocurra un cambio coincidente.
Editar o eliminar un webhook
- Haz clic en cualquier webhook de la lista para ver sus detalles y modificar su configuración.
- Para detener las notificaciones a un endpoint específico, elimina el webhook de la lista.
Próximos pasos
- Tokens de API — Crea tokens para autenticar solicitudes de API
- Workflows — Construye flujos de automatización internos dentro de AutoTalk
- Agregar una integración — Guía general de configuración de canal