Webhooks de la Bandeja

Actualizado el 20 de octubre de 2026 · 1 min de lectura

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

  1. En n8n agrega un nodo Webhook (método POST) y copia su Production URL.
  2. En NovoProspect: Configuración → Integraciones → 1 · Webhooks → + Webhook.
  3. Pega la URL, elige los eventos y pulsa Crear webhook. Copia el secreto de firma (whsec_…); lo puedes volver a ver con Ver secreto.
  4. Pulsa Probar en la tarjeta del webhook para enviar un aviso de prueba y verlo llegar en n8n.
  5. 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?