Skip to main content
Los webhooks permiten recibir notificaciones HTTP en tiempo real cuando ocurren eventos en tu workspace. Solo se entregan eventos para agentes y suscripciones activas.
Requiere permisos webhooks:read para consultas y webhooks:write para crear, actualizar o eliminar. Todos los endpoints requieren el header X-Workspace-Id.

Eventos disponibles

Los webhooks pueden suscribirse a los siguientes eventos:

Eventos de Tools

  • tool.invoked: Se ejecuta cuando un agente termina de invocar una herramienta y recibe una respuesta.

Eventos de llamadas (Calls)

  • call.callStarted: Una llamada de voz comenzó para uno de los agentes del workspace.
  • call.callEnded: Una llamada de voz finalizó (incluye URLs de grabación y transcripción).
  • call.callMissed: Una llamada no fue contestada antes del timeout.
  • call.voicemailReceived: Un interlocutor dejó un mensaje de buzón de voz.

Eventos de WhatsApp

  • whatsapp.messageReceived: Un usuario de WhatsApp envió un mensaje entrante al workspace.
  • whatsapp.messageDelivered: Un mensaje saliente de WhatsApp llegó al dispositivo del destinatario.
  • whatsapp.messageFailed: Un mensaje saliente de WhatsApp falló al entregarse.
  • whatsapp.conversationStarted: La plataforma abrió una nueva sesión de conversación de WhatsApp.
  • whatsapp.conversationEnded: Una sesión de conversación de WhatsApp existente se cerró.

Seguridad

Todas las entregas de webhook incluyen:
  • HTTPS requerido: Solo se aceptan URLs HTTPS.
  • Firma HMAC-SHA256: Cada request incluye el header x-signature con la firma del payload.
  • Timestamp: Header x-timestamp con marca temporal ISO-8601.
  • Secreto: El secreto se genera automáticamente (mínimo 16 caracteres) o puedes proveer el tuyo.

Verificación de firmas

Para validar que el webhook proviene de Agents Studio, verifica la firma HMAC-SHA256:

Gestión de webhooks

Crear webhook

Listar webhooks

Obtener webhook

Deliveries (historial de entregas)

Los deliveries representan cada intento de entrega de un evento a tu endpoint (incluye status, intentos, error y response status).

Listar deliveries de un webhook

Obtener un delivery por ID

Actualizar webhook

Eliminar webhook

Gestión de suscripciones

Crear suscripción a evento

Listar suscripciones

Obtener suscripción

Actualizar suscripción

Eliminar suscripción

Estructura de payloads

Evento: call.callEnded

Se dispara cuando una llamada de voz finaliza. Incluye información del objetivo alcanzado, URLs de grabación y transcripción.

Evento: call.callStarted

Se dispara cuando una llamada de voz comienza.

Evento: tool.invoked

Se dispara cuando un agente termina de ejecutar una herramienta.

Evento: whatsapp.messageReceived

Se dispara cuando se recibe un mensaje entrante de WhatsApp.

Mejores prácticas

1. Procesar eventos de forma idempotente

Los webhooks pueden ser reenviados en caso de fallos. Asegúrate de que tu endpoint pueda procesar el mismo evento múltiples veces sin efectos secundarios:

2. Responder rápidamente

Responde con 2xx lo antes posible y procesa el evento de forma asíncrona:

3. Reintentos automáticos

El sistema reintenta entregas fallidas hasta 5 veces con backoff exponencial:
  • Intento 1: inmediato
  • Intento 2: ~1 segundo después
  • Intento 3: ~2 segundos después
  • Intento 4: ~4 segundos después
  • Intento 5: ~8 segundos después
Solo respuestas con código 2xx se consideran exitosas.

4. Monitorear entregas

Usa los campos successCount, failureCount y lastDeliveryAt del webhook para monitorear la salud:

5. Filtrar por agente

Si solo necesitas eventos de un agente específico, configura agentId al crear el webhook: