Saltar al contenido

Bot-Chattigo ISV

Nuestra API permite a los clientes ISV (Proveedor de Software Independiente) conectarse a BOT-CHATTIGO y configurar respuestas personalizadas dentro del bot. Esta solución permite a los ISV definir las respuestas que desean proporcionar a sus clientes y proporciona la estructura de datos necesaria para enviar mensajes directamente a WhatsApp, facilitando la comunicación sin problemas.

Novedades

CapacidadDescripción
Conexión ISV-BOTLa API facilita la conexión entre los ISV y BOT-CHATTIGO, permitiendo una interacción fluida.
Configuración de respuestasLos ISV pueden configurar las respuestas que desean que el bot entregue a sus clientes.
Manejo de mensajes inboundLos ISV pueden enviar mensajes entrantes de WhatsApp a nuestro endpoint después de un inicio de sesión exitoso.
Webhooks personalizadosLos ISV pueden establecer sus propios webhooks en nuestra base de datos (Chattigo).
Procesamiento de mensajesChattigo procesa los mensajes exactamente según la estructura que proviene de WhatsApp.
Entrega de respuestasLa API proporciona la estructura para enviar varios tipos de mensajes: plantillas, texto, multimedia, reacción, ubicación, contacto e interactivos.
FlexibilidadLos ISV pueden tomar decisiones basadas en la respuesta y decidir cómo manejarla.

Autenticación

Servicio para obtener el token de autenticación usado en cada iteración. La vigencia es de 8 horas y es válido solo para el usuario logueado.

Para el servicio de mensajería con la estructura de API Cloud de WhatsApp es necesario proveer una versión de la misma; inicialmente se utilizan las versiones 14.0 y 15.0, y se irán incorporando nuevas versiones de Meta.

Request

POST /login

curl --request POST \
  --url 'https://api.chattigo.com/login' \
  --header 'Content-Type: application/json' \
  --data '{
    "username": "<user>",
    "password": "<password>"
  }'

Response

Éxito (200)

{
  "user": "<user>",
  "access": true,
  "access_token": "<token valido>"
}

Envío de mensajería a Chattigo

Para el caso de los mensajes inbound que quieras enviar a Chattigo para ser procesados por el BOT-CHATTIGO, consulta la documentación de payloads de Meta.

Para enviarlos, realiza una llamada POST /webhooks/inbound.

Configurar webhook de salida

La ruta PATCH /webhooks/outbound agrega o cambia el endpoint que permitirá la recepción de las respuestas que provienen de Chattigo.

Request

PATCH /webhooks/outbound

curl --request PATCH \
  --url 'https://api.chattigo.com/webhooks/outbound' \
  --header 'Authorization: <JWT>' \
  --header 'Content-Type: application/json' \
  --data '{
    "waId": "<identificador del canal>",
    "externalWebhookIsvBot": "<URL segura HTTPS>"
  }'

Definición de objeto:

CampoTipoObligatorioDescripción
waIdStringIdentificador del canal.
externalWebhookIsvBotStringURL del cliente para el despacho de mensajes outbound que provienen del bot.

Response

Éxito (200)
{
  "waId": "<identificador del canal>",
  "externalWebhookIsvBot": "<URL segura HTTPS>"
}

Respuestas que recibirás de Chattigo

Plantillas

Para el envío de plantillas recibirás un payload como el siguiente:

{
  "messaging_product": "whatsapp",
  "to": "{{Recipient-WA-ID}}",
  "type": "template",
  "template": {
    "name": "hello_world",
    "language": {
      "code": "en_US"
    }
  }
}

Texto

Para el envío de mensajes de texto recibirás un payload como el siguiente:

{
  "messaging_product": "whatsapp",
  "recipient_type": "individual",
  "to": "{{Recipient-Phone-Number}}",
  "type": "text",
  "text": {
    "preview_url": false,
    "body": "text-message-content"
  }
}

Multimedia

En API Cloud, la mensajería multimedia incluye todos los tipos de mensajes, incluidos stickers y documentos.

Imagen:

{
  "messaging_product": "whatsapp",
  "recipient_type": "individual",
  "to": "{{Recipient-Phone-Number}}",
  "type": "image",
  "image": {
    "link": "http(s)://image-url"
  }
}

Documento:

{
  "messaging_product": "whatsapp",
  "recipient_type": "individual",
  "to": "{{Recipient-Phone-Number}}",
  "type": "document",
  "document": {
    "link": "http(s)://document-url"
  }
}

Sticker:

{
  "messaging_product": "whatsapp",
  "recipient_type": "individual",
  "to": "{{Recipient-Phone-Number}}",
  "type": "sticker",
  "sticker": {
    "link": "http(s)://sticker-url"
  }
}
Se pueden recibir los tipos audio, document, image, sticker o video. En todos los casos solo cambia la referencia en el type y la key del payload.

Para todos los casos, la respuesta satisfactoria es status code 200.

Avisos de cierre de mensajería

Cuando las conversaciones de Chattigo finalicen, se enviará un aviso como este en conjunto a la respuesta de cierre:

{
  "chatBeenClosed": {
    "closed": true,
    "message": "El chat finalizo"
  }
}

Errores

Errores generales

Los endpoints que requieren autorización por token presentan los siguientes errores:

CódigoMensaje
401JWT was invalid (token incorrecto)
401unauthorized Access (token con permisos insuficientes)
401token up for parsing was not passed through the header... (token vacío)

Errores específicos

POST /login

CódigoMensaje
400invalid Password (contraseña incorrecta)
400unsupported get request. username '<user>' does not exist... (usuario incorrecto)

PATCH /webhooks/inbound

CódigoMensaje
400unsupported get request. Object with ID 'XXXXXXX' does not exist (waId incorrecto)