Nahui Connect / Documentación

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
Solicitud de Nahui
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_HMAC
15 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

application/json
{
  "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:

HTTP 200
{
  "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.