Central de Vendas

Documento API
de Integração

Abaixo segue as informações sobre o funcionamento da
integração via API da plataforma ChatHub com
demais aplicações.

INTRODUÇÃO

Nós não temos WEBHOOKS ou API. Não é possível enviar mensagens sem que o contato solicite algo. 
Nossa integração é feita através dos menus do bot. A resposta para o contato
deve ser feita no
RESPONSE de cada REQUEST enviada para as URLs configuradas nos menus. 
É possívelacompanhar todas as integrações no painel do gestor, em: Relatórios > Integrações
IMPORTANTE:
Caso aconteça algum erro na integração, por padrão, será enviado o menu inicial para o contato.

Quando o contato selecionar o menu de Integração, será feito um REQUEST do tipo POST para a URL configurada no MENU, enviando o JSON com todos os dados dele. No RESPONSE deverá ser retornado o JSON com um dos padrões abaixo, dependendo
do que deseja responder para ele.

 

Na solicitação HTTP, será incluído o header mz-integration, contendo a informação  configurada no menu. Esse header serve apenas para você fazer algum tipo de controle de 
segurança, então você pode colocar qualquer informação nesse campo.

REQUESTS

O corpo da solicitação HTTP é enviado no formato JSON e atende o padrão abaixo. Os atributos com asterisco, são obrigatórios.

 

  • *id: código da solicitação.
  • *text: texto que o contato
  • *contact: informações do contato em nosso
    • *uid: código do
    • *type: origem do contato, podendo ter as opções: WHATSAPP, FACEBOOK e
    • *key: número do telefone ou código do canal do cliente
    • *name: nome do
    • *fields: campos de segmentação.
  • data: o conteúdo desse atributo será dinâmico, pois você irá informar na resposta de uma solicitação.

 

Veja um exemplo do corpo da solicitação que será enviada no início da integração:

As mensagens que são retornadas de seus sistema, deverão seguir alguns critérios para tudo funcionar perfeitamente. Cada tipo de mensagem tem um comportamento diferente em nosso Bot.

MENU

É possível retornar novos menus dinâmicos, para o cliente navegar.

 

Será enviada uma mensagem de texto para o contato na estrutura de menus, podendo conter anexos, exigindo a escolha de uma das opções listadas.

 

O corpo da solicitação HTTP é enviado no formato JSON e atende padrão abaixo. Os atributos com asterisco, são obrigatórios.

 

     *type: MENU.

     *text: texto que será enviado para o contato.

     attachments: lista de anexos que serão enviados.

     *position: a posição do anexo, referente ao texto, podendo ser: BEFORE (antes) ou AFTER (depois).
     *type: tipo do anexo, podendo ser: IMAGE (imagem) ou DOCUMENT (documento).

     *name: o nome do anexo.

     *url: o caminho público onde está o anexo.
            
             ●     *items: opções que serão listadas para o contato.

     *number: número da opção.

     *text: texto que será apresentado após o número.

     *callback: o caminho que será solicitado quando o contato escolher essa opção.

     *endpoint: o caminho público que será solicitado.

     data: estrutura em JSON, contendo informações adicionais que serão enviadas na solicitação.

 

Veja um exemplo do JSON que deverá vir no RESPONSE:

PERGUNTA

Será enviada uma mensagem de texto para o contato, podendo conter anexos, esperando apenas uma mensagem de texto do contato.

O corpo da solicitação HTTP é enviado no formato JSON e atende o padrão abaixo. Os atributos com asterisco, são obrigatórios.

  • *type: QUESTION.
  • *text: texto que será enviado para o contato.
  • attachments: lista de anexos que serão enviados.
    • *position: a posição do anexo, referente ao texto, podendo ser: BEFORE (antes) ou AFTER (depois).
    • *type: tipo do anexo, podendo ser: IMAGE (imagem) ou DOCUMENT (documento).
    • *name: o nome do anexo.
    • url: o caminho público onde está o anexo.
  • *callback: o caminho que será solicitado quando o contato escolher essa opção.
    • *endpoint: o caminho público que será solicitado
    • data: estrutura em JSON, contendo informações adicionais que serão enviadas na solicitação.

 

Veja um exemplo do JSON que deverá vir no RESPONSE:

INFORMAÇÃO

Será enviada uma mensagem de texto para o contato, podendo conter anexos.

 

O corpo da solicitação HTTP é enviado no formato JSON e atende o padrão abaixo. Os atributos com asterisco, são obrigatórios.

 

  • *type: INFORMATION
  • *text: texto que será enviado para o contato.
  • attachments: lista de anexos que serão enviados.
    • *position: a posição do anexo, referente ao texto, podendo ser: BEFORE (antes) ou AFTER (depois).
    • *type: tipo do anexo, podendo ser: IMAGE (imagem) ou DOCUMENT (documento).
    • *name: o nome do anexo.
    • *url: o caminho público onde está o anexo

 

Veja um exemplo do JSON que deverá vir no RESPONSE:

DIRECIONAR PARA UM MENU ESPECÍFICO

O seu contato será direcionado para o menu informado.

O corpo da solicitação HTTP é enviado no formato JSON e atende o padrão abaixo. Os atributos com asterisco, são obrigatórios.

  • *type: DIRECT_TO_MENU.
  • *menuUUID: uuid do menu que será redirecionado

Veja um exemplo do corpo da resposta:

CRIAR UM ATENDIMENTO

Irá criar um atendimento para o departamento informado.

 

O corpo da solicitação HTTP é enviado no formato JSON e atende o padrão abaixo. Os atributos com asterisco, são obrigatórios.

 

  • *type: CREATE_COSTOMER_SERVICE.
  • *departmentUUID: uuid do departamento.
  • userUUID: uuid do atendente.

 

Veja um exemplo do corpo da resposta para criar apenas para o departamento:

Veja um exemplo do corpo da resposta para criar para o departamento e atendente:

Chathub

Pluga.co Hub de Integração

Disponibilizamos integrações em ações automáticas e manuais do sistema, como por exemplo: criação ou atualização de um lead, criação ou finalização de um atendimento, entre outros. Isso possibilita um melhor fluxo de atualização de dados no seu CRM. Com um de nossos parceiros de integração, o Pluga, você mesmo poderá fazer essa integração com diversos sistemas disponíveis nessa plataforma. 

Pelo pluga é possível fazer esta integração via webhook e conseguir puxar as seguintes informações:

id = id do cliente

event-name = nome do evento

event-date = data que aconteceu o evento

contact-id = id do contato

contact-name = nome do contato

contact-createdAt = horario que o atendimento foi iniciado

contact-channel-type = Por qual tipo de canal o contato veio

contact-channel-id = id do canal (número,site etc…)

contact-fields-nomedosegmento = vai a informação do campo de segmentação

ticket-protocol = protocolo de atendimento

ticket-creationFlow = horario que o contato foi iniciado

ticket-createdAt = horario que o atendimento foi iniciado

ticket-evaluation = avaliação do atendimento

ticket-finishedAt = horario que atendimento foi finalizado

ticket-department-uuid = uuid do departamento

ticket-department-name = nome do departamento

ticket-agent-uuid = uuid do atendente

ticket-agent-name = nome do atendente que realizou o atendimento

contact.id= número do cliente ou nome do perfil