Además del correo y de Slack, una alerta puede llamar a una dirección de tu propio sistema. Así abres un ticket automáticamente, guardas el evento en tu base de datos o disparas un flujo en Zapier, Make o n8n — ninguna de esas herramientas exige una integración dedicada: todas aceptan recibir un webhook.
Cómo configurarlo
Ve a Alertas y crea una alerta nueva (o edita una existente).
Completa el nombre, la condición y la encuesta, como en cualquier alerta.
En Métodos de Notificación, marca Webhook.
Indica la URL del endpoint que recibirá la llamada y guarda.
Después de guardar, aparece una clave de firma en el formulario. Cópiala y guárdala — con ella tu sistema confirma que la llamada vino de nosotros.
Requisitos de la URL
Debe usar HTTPS. En HTTP el contenido y la firma viajarían abiertos.
Debe ser accesible desde internet. Las direcciones internas (
localhost,192.168.x.x,10.x.x.x) se rechazan por seguridad.No puede responder con una redirección — la entrega se hace a la dirección indicada, y solo a ella.
Qué enviamos
Un POST con Content-Type: application/json y un cuerpo con este formato:
{
"event": "alert.triggered",
"alert": {
"id": "12",
"name": "NPS crítico",
"condition": "nps_below",
"threshold": 30
},
"survey": {
"id": "01jabc...",
"title": "Postatención"
},
"context": {
"current_nps": "12",
"threshold": "30",
"window": "últimos 30 días",
"responses": "48"
},
"triggered_at": "2026-07-27T12:34:56-03:00"
}Dos detalles importantes para quien va a programar:
conditiones un código estable, no un texto traducido. Los valores posibles sonnps_below,nps_above,sentiment_negative,no_response,response_rate_belowynew_feedback. Puedes usarlos en unswitchsin miedo a que el idioma del panel cambie el comportamiento.surveyllega comonullcuando la alerta vale para todas las encuestas.
Verificando la firma
Cada llamada lleva la cabecera Signature, que es el HMAC-SHA256 del cuerpo usando tu clave de firma. Verifícala antes de actuar sobre el contenido — sin eso, cualquiera que descubra tu URL puede falsificar una alerta. En PHP:
$esperado = hash_hmac('sha256', $cuerpoCrudo, $tuClave);
if (! hash_equals($esperado, $request->header('Signature'))) {
abort(403);
}Reintentos
Si tu endpoint no responde con éxito, lo intentamos hasta 3 veces, esperando más entre cada intento. Cada llamada tiene un límite de 5 segundos — responde rápido (un 200 inmediato) y procesa después, en segundo plano.
Si los tres intentos fallan, la tarjeta de la alerta pasa a mostrar la última entrega falló con el motivo. Vale la pena revisar esa marca de vez en cuando: así te enteras de que la integración se detuvo.
Sobre privacidad
El payload no identifica a quien respondió. Cuando la encuesta es anónima, esa es una promesa hecha al encuestado — y vale también aquí: el comentario y la nota se envían, el nombre y el correo no.
Cambiar la URL o quitarla
Cambiar la dirección mantiene la misma clave de firma, así que no necesitas reconfigurar la verificación del otro lado. Desmarcar el método Webhook quita la URL y borra la clave — si vuelves a activarlo después, se generará una clave nueva.