Saltar al contenido

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 DID indicado 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ódigoCaso
400Bad Request
401Unauthorized

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:

CampoTipoObligatorioDescripción
idIntegerNoIdentificador del mensaje. Solo para salida; para entrada debe ser null.
didStringSíIdentificador del canal. Ej: número de teléfono para WHATSAPP.
msisdnStringSíIdentificador del destino. Ej: número de teléfono del cliente final.
nameStringSíNombre de la persona que escribe el mensaje.
typeStringSímedia para adjuntos, text para mensajes simples.
channelStringSíWHATSAPP|FACEBOOK|WEBCHAT|MESSENGER.
contentStringSíContenido del mensaje. Máximo 3000 caracteres.
campaignIdIntegerNoIdentificador de la campaña.
isAttachmentBooleanSíIndica si el mensaje lleva adjunto.
attachmentAttachmentNoEstructura cuando el mensaje lleva adjunto.

attachment:

CampoTipoObligatorioDescripción
mediaUrlStringSíURL del adjunto.
mimeTypeStringSí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ódigoCaso
400Bad Request
500Internal 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ámetroDescripción
didIdentificador 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:

CampoTipoObligatorioDescripción
idIntegerSíIdentificador del agente.
nameStringSíNombre del agente.
addressStringSíUbicación física del agente.
maxChatsIntegerNoMáximo de atenciones.
activeBooleanNoIndica si el usuario está activo en sistema.
statusString EnumSíEstado del agente.
photoStringSíRuta de la foto del agente.
idClientIntegerSíIdentificador único del cliente.
groupObject GroupSíGrupo al cual pertenece el agente.

Status Enum:

LOGOUTONLINEALMUERZOREUNIÓNDESCANSO

Groups Enum:

CampoTipoObligatorioDescripción
idIntegerSíIdentificador único del grupo.
nameStringSí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ámetroDescripción
phoneMsisdn del contacto.
campaignIdentificador 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ódigoCaso
400Bad Request
500Internal 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ámetroDescripción
identifierIdentificador del contacto.
campaignIdentificador de la campaña.

Header:

["Authorization" : "<JWT>"]

Respuesta (200):

[
  {
    "id": "ejemplo12345",
    "name": "namePrueba",
    "lastName": "lastName Prueba",
    "email": "mail@mail.com",
    "phone": "5491133332211"
  }
]

Errores:

CódigoCaso
400Bad Request
500Internal 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:

CampoTipoObligatorioDescripción
idStringSíIdentificador en CRM Chattigo. Ej: teléfono.
nameStringSíNombre del contacto.
emailStringSíEmail del contacto.
phoneStringSíTeléfono del contacto.
campo6–campo10StringNoLibres para cualquier tipo de información.
idCampaignIntSíID de la campaña asociada al contacto.
Los valores del JSON son de ejemplo; todos los campos son editables.

Respuesta (200):

[
  {
    "code": 200,
    "msg": "Updated"
  }
]

Errores:

CódigoCaso
400Bad Request
500Internal Server Error