Saltar al contenido principal

Webhooks

Los webhooks te permiten recibir notificaciones HTTP en tiempo real cuando ocurren eventos en tu tenant de VOCALS. Configura una URL y suscribete a tipos de eventos especificos; VOCALS enviara un payload JSON mediante POST a tu endpoint cada vez que se dispare un evento coincidente.

Tipos de Evento

EventoDescripcion
call.startedUna llamada ha comenzado (entrante o saliente)
call.endedUna llamada ha terminado
call.failedUna llamada fallo debido a un error
transcript.readyLa transcripcion completa de una llamada esta disponible

Listar Webhooks

GET /webhooks

Devuelve todas las configuraciones de webhooks del tenant actual, ordenadas por fecha de creacion.

Respuesta

[
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"url": "https://example.com/vocals-webhook",
"events": ["call.started", "call.ended"],
"is_active": true,
"created_at": "2026-01-15T10:30:00Z",
"updated_at": "2026-02-20T14:00:00Z"
}
]

Campos de Respuesta

CampoTipoDescripcion
iduuidID de configuracion del webhook
urlstringURL de destino para los payloads de eventos
eventsarrayLista de tipos de eventos suscritos
is_activebooleanSi el webhook esta activo
created_atdatetimeMarca de tiempo de creacion
updated_atdatetimeMarca de tiempo de ultima actualizacion

Crear Webhook

POST /webhooks

Cuerpo de la Solicitud

{
"url": "https://example.com/vocals-webhook",
"events": ["call.started", "call.ended", "transcript.ready"],
"is_active": true
}

Campos de la Solicitud

CampoTipoRequeridoPor defectoDescripcion
urlstringSi--URL HTTPS para recibir payloads de webhook
eventsarraySi--Tipos de eventos a los que suscribirse
is_activebooleanNotrueSi el webhook esta activo

Respuesta

201 Created -- Devuelve el objeto WebhookResponse.

Actualizar Webhook

PUT /webhooks/{webhook_id}

Se soportan actualizaciones parciales. Solo incluye los campos que deseas cambiar.

Cuerpo de la Solicitud

{
"url": "https://new-url.example.com/webhook",
"events": ["call.ended"],
"is_active": false
}

Campos de la Solicitud

CampoTipoRequeridoDescripcion
urlstringNoURL de destino actualizada
eventsarrayNoSuscripciones de eventos actualizadas
is_activebooleanNoActivar o desactivar el webhook

Respuesta

200 OK -- Devuelve el WebhookResponse actualizado.

Eliminar Webhook

DELETE /webhooks/{webhook_id}

Elimina permanentemente una configuracion de webhook y su historial de entregas.

Respuesta

204 No Content

Registros de Entrega

GET /webhooks/{webhook_id}/deliveries

Devuelve una lista paginada de intentos de entrega para un webhook especifico, ordenados por mas recientes primero. Usalo para solucionar problemas de entregas fallidas.

Parametros de Consulta

ParametroTipoPor defectoDescripcion
pageinteger1Numero de pagina
page_sizeinteger20Elementos por pagina (maximo 100)

Respuesta

{
"items": [
{
"id": "660e8400-...",
"event_type": "call.ended",
"status_code": 200,
"attempts": 1,
"last_attempt_at": "2026-03-01T14:32:50Z",
"created_at": "2026-03-01T14:32:45Z"
},
{
"id": "770e8400-...",
"event_type": "call.started",
"status_code": 500,
"attempts": 3,
"last_attempt_at": "2026-03-01T14:31:15Z",
"created_at": "2026-03-01T14:30:05Z"
}
],
"total": 85,
"page": 1,
"page_size": 20
}

Campos del Registro de Entrega

CampoTipoDescripcion
iduuidID del registro de entrega
event_typestringEl evento que disparo esta entrega
status_codeinteger | nullCodigo de estado HTTP del endpoint del webhook (null si no hubo respuesta)
attemptsintegerNumero de intentos de entrega
last_attempt_atdatetime | nullMarca de tiempo del intento mas reciente
created_atdatetimeCuando se disparo la entrega por primera vez