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
| Capacidad | Descripción |
|---|---|
| Conexión ISV-BOT | La API facilita la conexión entre los ISV y BOT-CHATTIGO, permitiendo una interacción fluida. |
| Configuración de respuestas | Los ISV pueden configurar las respuestas que desean que el bot entregue a sus clientes. |
| Manejo de mensajes inbound | Los ISV pueden enviar mensajes entrantes de WhatsApp a nuestro endpoint después de un inicio de sesión exitoso. |
| Webhooks personalizados | Los ISV pueden establecer sus propios webhooks en nuestra base de datos (Chattigo). |
| Procesamiento de mensajes | Chattigo procesa los mensajes exactamente según la estructura que proviene de WhatsApp. |
| Entrega de respuestas | La API proporciona la estructura para enviar varios tipos de mensajes: plantillas, texto, multimedia, reacción, ubicación, contacto e interactivos. |
| Flexibilidad | Los 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:
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
waId | String | Sí | Identificador del canal. |
externalWebhookIsvBot | String | Sí | URL 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"
}
}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ódigo | Mensaje |
|---|---|
401 | JWT was invalid (token incorrecto) |
401 | unauthorized Access (token con permisos insuficientes) |
401 | token up for parsing was not passed through the header... (token vacío) |
Errores específicos
POST /login
| Código | Mensaje |
|---|---|
400 | invalid Password (contraseña incorrecta) |
400 | unsupported get request. username '<user>' does not exist... (usuario incorrecto) |
PATCH /webhooks/inbound
| Código | Mensaje |
|---|---|
400 | unsupported get request. Object with ID 'XXXXXXX' does not exist (waId incorrecto) |