¿Qué son los webhooks?
Un webhook es una petición HTTP que Safina envía automáticamente a una URL de tu elección cada vez que ocurre un evento específico. En lugar de consultar repetidamente Safina en busca de nuevos datos (polling), recibes los datos en el momento en que se crean.
En la práctica: entra una llamada. Safina responde, conduce la conversación, crea un resumen. En segundos, tu sistema recibe una petición HTTP con todos los datos relevantes: nombre del llamante, motivo de la llamada, urgencia, datos de contacto, acciones pendientes.
Tú decides qué pasa con los datos. ¿Un nuevo contacto en HubSpot? ¿Un mensaje en Slack para tu equipo? ¿Una fila en Google Sheets? ¿Un ticket en tu sistema de soporte? Todo es posible, sin esfuerzo manual.
¿Qué datos envía Safina?
Cada carga de webhook contiene datos estructurados de la llamada. El contenido exacto depende del evento, pero los campos típicos incluyen:
- Información del llamante: Nombre, número de teléfono, email (si se capturó), empresa
- Detalles de la llamada: Marca temporal, duración, estado (respondida, perdida, rechazada)
- Resumen: Motivo de la llamada en 2-3 frases, estructurado
- Urgencia: Alta, media, baja
- Acciones pendientes: Próximos pasos concretos de la conversación
- Campos específicos del sector: Número de propiedad, área legal, ID de cliente según tu plantilla
Ejemplo de carga
{
"event": "call.ended",
"timestamp": "2026-01-28T14:32:00Z",
"call": {
"id": "call_abc123",
"status": "completed",
"duration_seconds": 142,
"caller": {
"phone": "+14155551234",
"name": "James Mitchell",
"company": "Mitchell & Associates"
},
"summary": "Inquiry about network installation for new office. 18 workstations, fiber connection available. Quote requested by end of week.",
"urgency": "medium",
"action_items": [
"Prepare quote for network installation",
"Call back by Friday"
],
"callback_requested": true,
"callback_time": "mornings"
}
}
Eventos compatibles
Safina envía webhooks para los siguientes eventos:
| Evento | Descripción |
|---|---|
call.received | Se detecta una llamada entrante |
call.answered | Safina ha respondido la llamada |
call.ended | La conversación ha finalizado (incluye resumen) |
call.rejected | La llamada fue rechazada |
summary.data_query_result | Resultado de una consulta de datos del resumen |
Tú eliges a qué eventos se suscribe cada webhook. ¿Solo necesitas call.ended? Suscríbete a ese. ¿También quieres saber cuándo entra una llamada? Añade call.received.
Autenticación
La seguridad importa, especialmente cuando se transmiten datos de llamadas. Safina admite tres métodos de autenticación para webhooks:
| Método | Descripción | Cuándo usarlo |
|---|---|---|
| Bearer Token | Token enviado en la cabecera Authorization | Estándar para la mayoría de APIs |
| Clave API | Clave en la cabecera o cuerpo de la petición | Compatible con muchas herramientas externas |
| Ninguna | Sin token de autenticación | Solo para pruebas o sistemas internos |
También puedes definir cabeceras HTTP personalizadas si tu sistema tiene requisitos específicos.
Configuración en 5 pasos
1. Crea un webhook
Abre la app de Safina y navega a Ajustes > Webhooks > Nuevo Webhook.
2. Introduce tu URL
Introduce la URL donde Safina debe enviar los datos. Puede ser tu propio servidor, una instancia de n8n, un webhook de Zapier o un escenario de Make.
3. Elige la autenticación
Selecciona el método apropiado: Bearer Token, clave API o sin autenticación. Introduce tus credenciales.
4. Suscríbete a eventos
Selecciona los eventos que deben activar el webhook. Para la mayoría de casos, call.ended es suficiente; te da el resumen completo después de cada conversación.
5. Prueba
Haz clic en “Enviar prueba”. Safina envía una carga de prueba a tu URL. Verifica que los datos lleguen y se procesen correctamente. Solo activa el webhook cuando la prueba sea exitosa.
Listo. A partir de ahora, Safina envía datos de llamadas a tu sistema automáticamente cada vez que ocurre un evento coincidente.
Detalles técnicos
- Métodos HTTP: POST (predeterminado), GET, PUT, PATCH, DELETE
- Lógica de reintentos: 3 reintentos automáticos en caso de fallo
- Timeout: 30 segundos (configurable)
- Cabeceras personalizadas: Cualquier cabecera HTTP adicional admitida
- Formato: JSON
Casos de uso
Reenvía datos de llamadas a tu CRM
Cada llamada se registra automáticamente como actividad en HubSpot o Pipedrive. Datos de contacto, motivo de la llamada y próximos pasos llegan directamente al registro del negocio o contacto. Sin entrada manual de datos.
Notifica a tu equipo en Slack
Las llamadas de alta urgencia activan un mensaje en Slack. Tu equipo ve de inmediato quién llamó y qué necesita, sin abrir la app de Safina.
Registra llamadas en Google Sheets
Cada llamada se añade automáticamente como una nueva fila en una hoja de cálculo. Fecha, llamante, motivo, urgencia — todo ordenado y filtrable. Ideal para informes y análisis.
Crea automatizaciones personalizadas
A través de plataformas de webhooks como Zapier, Make o n8n, puedes conectar Safina con más de 5.000 apps. Emails de seguimiento automáticos, entradas de calendario, creación de tickets — todo sin código.
Preguntas frecuentes
¿A qué eventos puedo suscribirme?
Safina actualmente admite cinco eventos: call.received, call.answered, call.ended, call.rejected y summary.data_query_result. Puedes combinar libremente qué eventos activan una notificación para cada webhook.
¿Qué métodos de autenticación se admiten?
Tres métodos: Bearer Token (en la cabecera Authorization), clave API (en la cabecera o cuerpo) y sin autenticación. También puedes definir cabeceras personalizadas si tu sistema receptor las requiere.
¿Puedo filtrar eventos?
Sí. Al crear un webhook, seleccionas exactamente qué eventos quieres recibir. También puedes crear múltiples webhooks con diferentes suscripciones de eventos (por ejemplo, uno para tu CRM que solo reciba call.ended y otro para Slack que también reciba call.received).
¿Qué pasa si mi servidor no está accesible?
Safina reintenta automáticamente el envío hasta 3 veces. Si todos los intentos fallan, el webhook se marca como fallido. Puedes ver el estado en la app y activar un reenvío manual.
¿Puedo probar webhooks sin hacer llamadas reales?
Sí. Safina incluye una función de prueba integrada. Puedes enviar una carga de prueba a tu URL en cualquier momento para verificar que la conexión funciona y tu sistema procesa los datos correctamente.
¿En qué formato se envían los datos?
JSON. La carga es estructurada y documentada. Cada evento tiene un esquema definido, para que puedas analizar los datos de forma fiable.