Webhook entrante
Recibe eventos firmados de Nahui Connect en un endpoint HTTPS público y responde antes de 15 segundos.
POSTTu URL HTTPS pública configurada
POST https://tu-dominio.com/webhooks/nahui
Content-Type: application/json
User-Agent: Nahui-Connect/1.0
X-Nahui-Event: message.received
X-Nahui-Delivery: ncd_...
X-Nahui-Signature-256: sha256=BASE64URL_HMAC15 segundosTiempo máximo de respuesta.
Cualquier 2xxSe considera una respuesta exitosa.
Sin redireccionesUn 3xx se trata como error.
Sin reintento automáticoNahui v1 no reproduce un webhook fallido.
Evento message.received
{
"id": "nce_22f983e5-8424-451f-91a4-0a19fd3c98c0",
"type": "message.received",
"deliveryId": "ncd_2f00c5d7-9031-4211-af34-a3fb4af69965",
"projectId": "ncp_a3d88567-3b40-4114-98b8-aab5b736ad23",
"connectionId": "ncc_b26dddab-f94d-44e9-931e-3128aa02c581",
"conversationId": "ncv_8354e263-3958-4602-b54c-6b6fd84720c2",
"channel": "whatsapp",
"contact": {
"id": "yIuNoG4UoT6jDrLRJiFjBd3FdGFQ55GZYUMfPk8A0L4",
"displayName": "Daniel"
},
"message": {
"id": "wamid.HBgNNTIxMzMxMjM0NTY3OBUCABIY...",
"type": "text",
"timestamp": "2026-08-25T18:42:31.000Z",
"text": "Hola, quiero información"
},
"receivedAt": "2026-08-25T18:42:32.217Z"
}contact.id es estable únicamente dentro de la lógica de esa conexión; es un identificador derivado y no un número telefónico. El teléfono real no se entrega.
Respuesta inmediata
Si tu CRM puede responder dentro del límite, devuelve la forma recomendada reply.text:
{
"reply": {
"text": "¡Hola! ¿En qué puedo ayudarte?"
}
}También se acepta actualmente {"text":"Respuesta"}, aunque reply.text es la forma recomendada. El texto se limita a 4,000 caracteres; una respuesta vacía se ignora.
Para procesos largos responde
200 {}, procesa en tu propia cola y llama después a /reply.