Webhooks de la Bandeja
Un webhook es un aviso que NovoProspect envía a n8n cuando pasa algo en la Bandeja. Con él tu agente de IA se entera de cada mensaje y puede responder.
Crear el webhook
- En n8n agrega un nodo Webhook (método POST) y copia su Production URL.
- En NovoProspect: Configuración → Integraciones → 1 · Webhooks → + Webhook.
- Pega la URL, elige los eventos y pulsa Crear webhook. Copia el secreto de firma (whsec_…); lo puedes volver a ver con Ver secreto.
- Pulsa Probar en la tarjeta del webhook para enviar un aviso de prueba y verlo llegar en n8n.
- Activa el flujo en n8n (los webhooks de prueba de n8n solo escuchan mientras pulsas "Listen").
Eventos
- conversation.created: conversación nueva.
- message.created: mensaje nuevo (recibido, enviado o nota).
- conversation.status_changed: abierta, con bot, pospuesta o resuelta.
- conversation.assigned: se asignó a un agente.
Cada aviso es un POST con { id, event, createdAt, data }. En data llegan la conversación (canal, contacto, agente, estado) y, en message.created, el mensaje.
Para que el agente no se responda a sí mismo en bucle, filtra en n8n solo message.direction = "in" (mensajes del cliente) y conversaciones con estado bot.
Verificar la firma (recomendado)
Cada aviso lleva las cabeceras X-NovoProspect-Event, X-NovoProspect-Timestamp y X-NovoProspect-Signature. Pon este nodo Code justo después del Webhook:
const crypto = require('crypto');
const secret = 'whsec_…'; // el secreto de este webhook
const h = $json.headers;
const body = JSON.stringify($json.body);
const firma = 'sha256=' + crypto.createHmac('sha256', secret)
.update(h['x-novoprospect-timestamp'] + '.' + body).digest('hex');
if (firma !== h['x-novoprospect-signature']) throw new Error('Firma no válida');
return $input.all();Si n8n no responde o devuelve un error, NovoProspect reintenta dos veces. El último envío y su resultado se ven en la tarjeta del webhook.
¿Te sirvió este artículo?