Webhook
message_created

Mensaje creado

Notifica a tu endpoint cada vez que se crea un mensaje.

Registro de tu endpoint

Las URLs de webhook se registran desde el panel de Eclectic: ve a Dev Tools → Event Triggers y crea una configuración con el tipo de evento message_created y la URL de tu endpoint. Puedes elegir POST o PUT, agregar cabeceras personalizadas (por ejemplo un token de autorización para verificar nuestras llamadas) y revisar cada intento de entrega en los logs de la misma página. Si no tienes acceso al panel, contacta al equipo de Eclectic para configurarlo.

Disparador

Este webhook se dispara cada vez que se recibe un mensaje entrante de un cliente, y cada vez que se envía un mensaje a través de la API (POST /messages/send). Los mensajes enviados manualmente desde el panel no lo disparan.

Campos del payload

  • toIdentificador del destinatario específico del canal.
  • fromIdentificador del remitente específico del canal.
  • textContenido del mensaje.
  • attachmentsArray de URLs firmadas de descarga para los archivos del mensaje. Las URLs expiran a los 120 minutos.
  • mediaArray de objetos de media ({id, url, filename, contentType}) que describen los mismos archivos con metadata.
  • statusreceived o sent.
  • channelIdentificador de la plataforma (p. ej. whatsapp).
  • contactDatos del contacto asociado.
  • createdAtMarca de tiempo ISO 8601.
  • metadataMetadatos personalizados del mensaje.

Los campos opcionales se incluyen solo para ciertos tipos de mensaje: messageContactCard, messageContext, messageForward, messageInteractiveList, messageLocation y messageReplyButton.

Las URLs firmadas de media expiran 120 minutos después de generarse el webhook, y los reintentos de entrega reutilizan el payload original. Descarga los archivos de inmediato o llama a GET /media/:id con el id del item de media para obtener una URL nueva.

Ejemplo de payload

json
{
  "event": "message_created",
  "payload": {
    "to": "331122334455",
    "from": "335544332211",
    "text": "Hello",
    "attachments": [
      "https://storage.googleapis.com/eclectic-media/documents/6f9a...c2.pdf?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Expires=7200&..."
    ],
    "media": [
      {
        "id": 482,
        "url": "https://storage.googleapis.com/eclectic-media/documents/6f9a...c2.pdf?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Expires=7200&...",
        "filename": "cotizacion.pdf",
        "contentType": "application/pdf"
      }
    ],
    "status": "received",
    "channel": "whatsapp",
    "contact": {
      "href": "https://dash.try-eclectic.com/contacts/eb2b914a977e4ab896e7b886698b3eac",
      "conversationHref": "https://dash.try-eclectic.com/chat/f3670b13446b412796238b1cd78899f9",
      "name": "John Doe",
      "tags": ["Lead"],
      "uuid": "eb2b914a977e4ab896e7b886698b3eac",
      "source": "whatsapp",
      "avatarUrl": null,
      "createdAt": "2022-10-12T15:57:16Z",
      "phoneNumber": "331122334455"
    },
    "createdAt": "2022-10-18T12:06:29.000+02:00"
  }
}