API Bot

Integra tus bots para gestionar la atención desde Chattigo.

Descripción General

Multi-Campaña: Cuando se requiera hacer un pase a Agente desde el BOT, se debe enviar al API-BOT en el campo “idCampaign” el identificador de la campaña y en el campo “type” el valor “transfer”. Campaña-Grupo: Cuando se requiera hacer un pase a Agente desde el BOT, se debe enviar al API-BOT en el campo “idCampaign” el identificador de la campaña, en el campo “type” el valor “group” y en el campo “content” el código del grupo. Mono-Campaña: Cuando se requiera hacer un pase a Agente, no se enviará el campo “idCampaign” y el campo “type” tendrá el valor “transfer”. Transfer al BOT: Una vez finalizada la atención por parte del Agente, se cierra el chat y se envía un mensaje al BOT con el valor “transfer” en el campo “type”, para que continúe el flujo del mismo y libere la sesión. Cierre Interacción: Finalizado el flujo del BOT se envía al API-BOT un mensaje con el valor “close” en el campo “type”, de esta forma el flujo se cierra completamente. Cierre por Inactividad: Finalizado el flujo del BOT por inactividad se envía al API-BOT un mensaje con el valor “timeout” en el campo “type”, de esta forma el flujo se cierra completamente.

Autenticación

Servicio para obtener el token de autenticación para ser usado en cada iteración. La vigencia es de 8 horas, es válido sólo para el usuario logueado. A continuación se presenta la estructura que requiere la api para obtener el JWT de autenticación.

Path:

POST /login

  • Request

    • Body:
   {
       "username": "<user>",
       "password":"<password>"
   }
  • Response

    • Body:
   {
       "access_token": "<JWT>"
   }
Status Code 200

Errors

StatusCode 400 - Bad Request

StatusCode 401 - Unauthorized

Envío de mensaje

Servicio que permite la comunicación del cliente con el bot de atención, considerando la siguiente estructura:

Path:

POST /{URL https entregada por el cliente}

  • Request

    • Body:
{
   "id": 364096945,
   "idChat": 29289561,
   "did": "573175180237",
   "msisdn": "573127439126",
   "idUser": 0,
   "type": "Text",
   "channel": "WHATSAPP",
   "channelProvider": "WAVY",
   "content": "21812660",
   "name": "Camila Ochoa",
   "idCampaign": 597,
   "isAttachment": false,
   "attachment": null,
   "message": null
}

Response

Status Code 200

Errors

StatusCode: 400 Bad Request

StatusCode: 500 Internal Server Error

Type Message

Tipo Descripción
transfer Cuando el agente cierra la conversación y notificar al bot para que contiene con el flujo
text Cuando es un mensaje del cliente final
media Cuando es un mensaje del cliente final

Recepción de mensaje

Servicio que permite el envío de respuestas del BOT al cliente, considerando la siguiente estructura:

Path:

POST /outbound

  • Request

    • Header:
  ["Authorization" : "Bearer <JWT>"]
  • Body:
{
   "id": 364096892,
   "idChat": 0,
   "did": "5491165972035",
   "msisdn": "5493794236459",
   "idUser": 0,
   "type": "transfer",
   "channel": "WHATSAPP",
   "channelProvider": "rovotio",
   "content": "example",
   "name": "Bot",
   "idCampaign": 353,
   "isAttachment": false,
   "attachment": "0xc00036de60",
   "message": null,
   "idNode": 40934,
   "nameNode": "7_agente",
   "botName": "nacion_09_opcion8"
}

Response

 Status Code 200

Errors

 StatusCode 400 - Bad Request

 StatusCode 500 - Internal Server Error

Type Message

Tipo Descripción
transfer Cuando en el flujo del BOT se hace un pase a agente.
transfer-external Cuando en el flujo del BOT se hace un pase a un servicio externo.
text/media Cuando es un mensaje hacia el cliente final.
close/timeout Cuando termina el flujo del BOT.
internal Cuando es un mensaje que no se envía al cliente final pero queda en el chat.

Obtener mensajes HSM

Servicio para la obtención de mensajes HSM que no han sido procesado por el bot, considerando la siguiente estructura:

Path:

GET /messages/{channel}/{did}/{msisdn}

Params

Parámetro Descripción
channel WHATSAPP
did identificador del canal
msisdn identificador del cliente
  • Request

    • Header:
  ["Authorization" : "Bearer <JWT>"]
  • Response

    • Body:
[
   {
           "id_mensaje": 0000,
           "contenido": "<Contenido del mensaje>",
           "fecha_hora": "2000-01-01T00:00:00.000+0000"
        }
]
Status Code 200

Errors StatusCode 400 - Bad Request

 StatusCode 500  - Internal Server Error

Notificación de resolución

Servicio para notificar la resolución que tiene un mensaje de alerta, considerando la siguiente estructura:

Path:

POST /resolution

  • Request
    • Header:
   ["Authorization" : "Bearer <JWT>"]
  • Body:
{
   "id": "<identificador>",
   "did": "<identificador del canal>",
   "answer": "true|false"
}

Response

StatusCode 200

Errors

StatusCode 400 - Bad Request

StatusCode 500 - Internal Server Error

Definición de Objeto

Fields Type Mandatory Descripción
id int yes Identificador del mensaje
did String yes identificador del canal
answer Boolean yes Respuesta del cliente True / False

Agentes disponibles

Servicio que entrega la lista de agentes disponibles para atención, considerando la siguiente estructura:

Path:

GET /agent/active/{did}

Params

Parámetro Descripción
did identificador del canal
  • Request
    • Header:
   ["Authorization" : "Bearer <JWT>"]

Response

StatusCode 200

  • Body:
[       
   {
       "id": 6000,
       "name": "asesor virtual 1",
       "address": "",
       "maxChats": 3,
       "activeChat": 0,
       "active": true,
       "idClient": 331,
       "photo": "",
       "status": "",
       "chatAssigned": 0,
       "groups": null
   },
   {
       "id": 6001,
       "name": "asesor virtual 2",
       "address": "",
       "maxChats": 3,
       "activeChat": 0,
       "active": true,
       "idClient": 331,
       "photo": "",
       "status": "",
       "chatAssigned": 0,
       "groups": null
   }
 
]

Errors

StatusCode 400 - Bad Request

StatusCode 500 - Internal Server Error

Fuera de horario

Servicio que permite al BOT identificar si la campaña está disponible para atender al cliente, considerando la siguiente estructura:

Path:

GET /timeout/{idMessage}/{idCampaing}

Params

Parámetro Descripción
idMessage Corresponde al identificador del mensaje (campo ID)
idCampaing identificador de la campaña a transferir
  • Request
    • Header:
   ["Authorization" : "Bearer <JWT>"]

Response

StatusCode 200

  • Body:
{
   "outOfTime": "true|false",
   "messageOutOfTime": "Esta campaña no está disponible por el momento",
   "queue": "20"
}

Errors

StatusCode 400 - Bad Request

StatusCode 500 - Internal Server Error