Consideraciones
El cliente debe solicitar un usuario y password con su KAM, indicando el nombre de la campaña o el nombre del cliente que hará uso de la API.
El cliente debe enviar el EndPoint para la salida de mensajes desde Chattigo, ver punto: Salida mensaje (Outbound).
Los canales que harán uso de la aplicación deben estar pre configurados en Chattigo. Los canales son el “DID” que se indica en la estructura json descrita más abajo.
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 el ingreso de mensajes del cliente a la plataforma para ser gestionados por los agentes conectados, considerar la siguiente estructura:
Path:
POST /inbound
-
Request
- Header:
["Authorization" : "Bearer <JWT>"]
- Body
{
"id": "<identificador>",
"did": "<identificador del canal>",
"msisdn": "<identificador del destino>",
"name": "<nombre>",
"type": "<media|text>",
"channel": "<WHATSAPP|FACEBOOK|WEBCHAT|MESSENGER>",
"content": "<contenido del mensaje>",
"isAttachment": "<true|false>",
"attachment": {
"mediaUrl": "<url del multimedia>",
"mimeType": "<tipo de multimedia>"
}
}
Response
Status Code 200
Errors
Servicio Asyn, respuesta siempre es exitosa
Definición de Objetos
Fields | Type | Mandatory | Descripción |
---|---|---|---|
id | Integer | no | Identificador del mensaje: Solo para salida, para entrada debe ser null |
did | String | yes | Identificador del canal. Ej: número de teléfono para WHATSAPP |
msisdn | String | yes | Identificador del destino. Ej: Número de teléfono del cliente final para WHATSAPP |
name | String | yes | Nombre de la persona que escribe el mensaje |
type | String | yes | Tipo de mensaje. media para los mensajes con adjuntos, text para mensajes simples |
channel | String | yes | Solo uno de estos valores: WHATSAPP|FACEBOOK|WEBCHAT|MESSENGER |
content | String | yes | Contenido del mensaje. Max 3000 caracteres |
campaignId | Integer | no | Identificador de la campaña |
isAttachment | Boolean | yes | Si el mensaje lleva adjunto o no |
attachment | Attachment | no | Estructura cuando el mensaje lleve adjunto |
attachment
Fields | Type | Mandatory | Descripción |
---|---|---|---|
mediaUrl | String | yes | Url del adjunto |
mimeType | String | yes | Tipo de multimedia. Ej: video, image |
Recepción de mensaje
Servicio que permite el despacho de mensajes a los clientes que están en interacción con los agentes, considerar la siguiente estructura:
Path:
POST /{URL https entregada por el cliente}
-
Request
- Body:
{
"id": "<identificador>",
"did": "<identificador del canal>",
"msisdn": "<identificador del destino>",
"name": "<nombre>",
"type": "<media|text>",
"channel": "<WHATSAPP|FACEBOOK|WEBCHAT|MESSENGER>",
"content": "<contenido del mensaje>",
"isAttachment": "<true|false>",
"attachment": {
"mediaUrl": "<url del multimedia>",
"mimeType": "<tipo de multimedia>"
}
}
Response
Status Code 200
Errors
StatusCode 400 - Bad Request
StatusCode 500 - Internal Server Error
Definición de Objetos
Fields | Type | Mandatory | Descripción |
---|---|---|---|
id | Integer | no | Identificador del mensaje: Solo para salida, para entrada debe ser null |
did | String | yes | Identificador del canal. Ej: número de teléfono para WHATSAPP |
msisdn | String | yes | Identificador del destino. Ej: Número de teléfono del cliente final para WHATSAPP |
name | String | yes | Nombre de la persona que escribe el mensaje |
type | String | yes | Tipo de mensaje. media para los mensajes con adjuntos, text para mensajes simples |
channel | String | yes | Solo uno de estos valores: WHATSAPP|FACEBOOK|WEBCHAT|MESSENGER |
content | String | yes | Contenido del mensaje. Max 3000 caracteres |
campaignId | Integer | no | Identificador de la campaña |
isAttachment | Boolean | yes | Si el mensaje lleva adjunto o no |
attachment | Attachment | no | Estructura cuando el mensaje lleve adjunto |
attachment
Fields | Type | Mandatory | Descripción |
---|---|---|---|
mediaUrl | String | yes | Url del adjunto |
mimeType | String | yes | Tipo de multimedia. Ej: video, image |
Agentes disponibles
Servicio que permite listar los agentes que están conectados en la plataforma mediante el identificador del canal.
Path:
GET /agents/{did}
Params
Parámetro | Descripción |
---|---|
did | identificador del canal |
-
Request:
- Header:
["Authorization": "Bearer <JWT>"]
-
Response:
- Body:
[
{
"id": 3089,
"name": "Juan Gonzalez",
"address": "San Joaquin",
"maxChats": 5,
"active": true,
"idClient": 235,
"photo": "https://scontent-scl1-1.xx.fbcdn.net/v/t1.0-9/62233081_109210653670190_8130556263093239808_o.jpg?_nc_cat=110&_nc_oc=AQl3m4i3L4Mlqknsy_1N5ue_pe_9zam7YJzFs1trk8t9DFZrfcmaXEq6YN8sxIeBGPc&_nc_ht=scontent-scl1-1.xx&oh=85b5bbe37e0fc514f575a6d20368cdef&oe=5E00B220",
"status": "ONLINE",
"groups": [{
"id": 262,
"name": "contabilidad_general"
}]
},
{
"id": 3208,
"name": "Agente 7 ST",
"address": "Macul",
"maxChats": 5,
"active": true,
"idClient": 235,
"photo": "https://scontent-scl1-1.xx.fbcdn.net/v/t1.0-9/62233081_109210653670190_8130556263093239808_o.jpg?_nc_cat=110&_nc_oc=AQl3m4i3L4Mlqknsy_1N5ue_pe_9zam7YJzFs1trk8t9DFZrfcmaXEq6YN8sxIeBGPc&_nc_ht=scontent-scl1-1.xx&oh=85b5bbe37e0fc514f575a6d20368cdef&oe=5E00B220",
"status": "ONLINE",
"groups": [{
"id": 269,
"name": "Ingeniería Informática"
}]
},
{
"id": 3359,
"name": "Miguel Borges",
"address": " ",
"maxChats": 5,
"active": true,
"idClient": 6,
"photo": "",
"status": "ONLINE",
"groups": null
}
]
Status Code 200
Errors
StatusCode 400 - Bad Request
StatusCode 500 - Internal Server Error
Definición de Objetos
Fields | Type | Mandatory | Descripción |
---|---|---|---|
id | Integer | yes | Identificador del agente |
name | String | yes | Nombre del Agente |
address | String | yes | Ubicación física del agente |
maxChats | Integer | no | Máximo de atenciones |
active | boolean | no | Indica si el usuario está activo en sistema |
status | String Enum | yes | Estatus del agente |
photo | String | yes | Indica la ruta donde esta la foto del agente |
idClient | Integer | yes | Identificador único del cliente |
group | Object Group | yes | Grupo al cual pertenece el agente |
Status Enum
| LOGOUT | ONLINE | ALMUERZO | REUNIÓN | DESCANSO | Groups Enum
Fields | Type | Mandatory | Descripción |
---|---|---|---|
id | Integer | yes | Identificador único del grupo |
name | String | yes | Nombre del grupo |
Obtener Contactos de CRM con teléfono
Servicio para la obtención de contactos de CRM:
Path:
GET /webhook/chattigo/crm/phone/{phone}/campaign/{campaign}
Params
Parámetro | Descripción |
---|---|
phone | Msisdn del contacto |
campaign | Identificador de la campaña |
-
Request
- Header:
["Authorization" : "<JWT>"]
-
Response
- Body:
[
{
"id": "ejemplo12345",
"name": "namePrueba",
"lastName": "lastName Prueba",
"email": "mail@mail.com",
"phone": "5491133332211",
"campo6": "ejemplo campo6",
"campo7": "ejemplo campo7",
"campo8": "ejemplo campo8",
"campo9": "ejemplo campo9",
"campo10": "ejemplo campo10"
}
]
Errors StatusCode 400 - Bad Request
StatusCode 500 - Internal Server Error
Obtener Contactos de CRM con identificador
Servicio para la obtención de contactos de CRM:
Path:
GET /webhook/chattigo/crm/identifier/{identifier}/campaign/{campaign}
Params
Parámetro | Descripción |
---|---|
identifier | Identificador del contacto |
campaign | Identificador de la campaña |
-
Request
- Header:
["Authorization" : "<JWT>"]
-
Response
- Body:
[
{
"id": "ejemplo12345",
"name": "namePrueba",
"lastName": "lastName Prueba",
"email": "mail@mail.com",
"phone": "5491133332211",
"campo6": "ejemplo campo6",
"campo7": "ejemplo campo7",
"campo8": "ejemplo campo8",
"campo9": "ejemplo campo9",
"campo10": "ejemplo campo10"
}
]
Errors StatusCode 400 - Bad Request
StatusCode 500 - Internal Server Error
Creacion de contacto en CRM
Servicio para crear contacto en CRM de chattigo:
Path:
POST /webhook/chattigo/crm/create
- Request
- Header:
["Authorization" : "<JWT>"]
- Body:
[
{
"id": "12345",
"name": "namePrueba",
"lastName": "lastName Prueba",
"email": "mail@mail.com",
"phone": "5491133332211",
"campo6": "ejemplo campo6",
"campo7": "ejemplo campo7",
"campo8": "ejemplo campo8",
"campo9": "ejemplo campo9",
"campo10": "ejemplo campo10",
"idCampaign": 2246
}
]
Definición de Objeto
Fields | Type | Mandatory | Descripción |
---|---|---|---|
id | String | yes | Identificador en CRM chattigo ej: telefono |
name | String | yes | Nombre del contacto |
String | yes | Email del contacto | |
phone | String | yes | Telefono del contacto |
campo6 | String | no | Libre para cualquier tipo de informacion |
campo7 | String | no | Libre para cualquier tipo de informacion |
campo8 | String | no | Libre para cualquier tipo de informacion |
campo9 | String | no | Libre para cualquier tipo de informacion |
campo10 | String | no | Libre para cualquier tipo de informacion |
idCampaign | Int | yes | Id campana asociada al contacto |
Nota de uso: El valor de los parametros definidos en el anterior json, son ejemplo, todos los campos son editables.
-
Response
- Body:
[
{
"code": 200,
"msg": "Updated"
}
]
Errors
StatusCode 400 - Bad Request
StatusCode 500 - Internal Server Error