Webhook Chattigo
Conecta canales externos a Chattigo y gestiona tus mensajes de entrada y salida desde la plataforma.
Consideraciones
- El cliente debe solicitar un usuario y contraseña 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 Recepción de mensaje).
- Los canales que harán uso de la aplicación deben estar preconfigurados en Chattigo. Los canales son el
DIDindicado en la estructura JSON descrita a continuación.
Autenticación
Servicio para obtener el token de autenticación usado en cada iteración. Vigencia de 8 horas, válido solo para el usuario logueado.
Endpoint: POST /login
Body:
{
"username": "<User>",
"password": "<Password>"
}Respuesta (200):
{
"access_token": "<JWT>"
}Errores:
| Código | Caso |
|---|---|
400 | Bad Request |
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.
Endpoint: POST /inbound
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>"
}
}Respuesta (200):
Servicio asíncrono — la respuesta siempre es exitosa.
Definición de objetos:
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | Integer | No | Identificador del mensaje. Solo para salida; para entrada debe ser null. |
did | String | Sí | Identificador del canal. Ej: número de teléfono para WHATSAPP. |
msisdn | String | Sí | Identificador del destino. Ej: número de teléfono del cliente final. |
name | String | Sí | Nombre de la persona que escribe el mensaje. |
type | String | Sí | media para adjuntos, text para mensajes simples. |
channel | String | Sí | WHATSAPP|FACEBOOK|WEBCHAT|MESSENGER. |
content | String | Sí | Contenido del mensaje. Máximo 3000 caracteres. |
campaignId | Integer | No | Identificador de la campaña. |
isAttachment | Boolean | Sí | Indica si el mensaje lleva adjunto. |
attachment | Attachment | No | Estructura cuando el mensaje lleva adjunto. |
attachment:
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
mediaUrl | String | Sí | URL del adjunto. |
mimeType | String | Sí | 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.
Endpoint: POST /{URL https entregada por el cliente}
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>"
}
}Errores:
| Código | Caso |
|---|---|
400 | Bad Request |
500 | Internal Server Error |
La definición de objetos es idéntica a la de Envío de mensaje.
Agentes disponibles
Servicio que permite listar los agentes conectados en la plataforma mediante el identificador del canal.
Endpoint: GET /agents/{did}
Params:
| Parámetro | Descripción |
|---|---|
did | Identificador del canal. |
Header:
["Authorization": "Bearer <JWT>"]Respuesta (200):
[
{
"id": 3089,
"name": "Juan Gonzalez",
"address": "San Joaquin",
"maxChats": 5,
"active": true,
"idClient": 235,
"photo": "https://...",
"status": "ONLINE",
"groups": [{ "id": 262, "name": "contabilidad_general" }]
}
]Definición de objetos:
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | Integer | Sí | Identificador del agente. |
name | String | Sí | Nombre del agente. |
address | String | Sí | 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 | Sí | Estado del agente. |
photo | String | Sí | Ruta de la foto del agente. |
idClient | Integer | Sí | Identificador único del cliente. |
group | Object Group | Sí | Grupo al cual pertenece el agente. |
Status Enum:
LOGOUT | ONLINE | ALMUERZO | REUNIÓN | DESCANSO |
|---|
Groups Enum:
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | Integer | Sí | Identificador único del grupo. |
name | String | Sí | Nombre del grupo. |
Obtener contactos de CRM con teléfono
Servicio para la obtención de contactos de CRM.
Endpoint: GET /webhook/chattigo/crm/phone/{phone}/campaign/{campaign}
Params:
| Parámetro | Descripción |
|---|---|
phone | Msisdn del contacto. |
campaign | Identificador de la campaña. |
Header:
["Authorization" : "<JWT>"]Respuesta (200):
[
{
"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"
}
]Errores:
| Código | Caso |
|---|---|
400 | Bad Request |
500 | Internal Server Error |
Obtener contactos de CRM con identificador
Servicio para la obtención de contactos de CRM por identificador.
Endpoint: GET /webhook/chattigo/crm/identifier/{identifier}/campaign/{campaign}
Params:
| Parámetro | Descripción |
|---|---|
identifier | Identificador del contacto. |
campaign | Identificador de la campaña. |
Header:
["Authorization" : "<JWT>"]Respuesta (200):
[
{
"id": "ejemplo12345",
"name": "namePrueba",
"lastName": "lastName Prueba",
"email": "mail@mail.com",
"phone": "5491133332211"
}
]Errores:
| Código | Caso |
|---|---|
400 | Bad Request |
500 | Internal Server Error |
Creación de contacto en CRM
Servicio para crear contacto en CRM de Chattigo.
Endpoint: POST /webhook/chattigo/crm/create
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 objetos:
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | String | Sí | Identificador en CRM Chattigo. Ej: teléfono. |
name | String | Sí | Nombre del contacto. |
email | String | Sí | Email del contacto. |
phone | String | Sí | Teléfono del contacto. |
campo6–campo10 | String | No | Libres para cualquier tipo de información. |
idCampaign | Int | Sí | ID de la campaña asociada al contacto. |
Respuesta (200):
[
{
"code": 200,
"msg": "Updated"
}
]Errores:
| Código | Caso |
|---|---|
400 | Bad Request |
500 | Internal Server Error |