API e Webhook
Last updated
Was this helpful?
Last updated
Was this helpful?
Não é possível enviar mensagens sem que o contato solicite algo. (Para isto utilize as mensagens programadas) 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ível acompanhar todas as integrações no painel do gestor, em: Relatórios > Integrações.
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.
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 digitou. ● *contact: informações do contato em nosso sistema. ○ *uid: código do contato. ○ *type: origem do contato, podendo ter as opções: WHATSAPP, FACEBOOK e BOTSITE.
○ *key: número do telefone ou código do canal do cliente
○ *name: nome do contato.
○ *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.
○ base64: arquivo no formato base64 (utilizado caso a URL não seja pública)
● *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:
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.
○ base64: arquivo no formato base64 (utilizado caso a URL não seja pública)
● *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:
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 contato.
○ base64: arquivo no formato base64 (utilizado caso a URL não seja pública)
● newTicket: criar um atendimento para o cliente
○ *departmentUUID: uuid do departamento.
○ userUUID: uuid do atendente.
Veja um exemplo do JSON que deverá vir no RESPONSE:
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:
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_CUSTOMER_SERVICE.
● *departmentUUID: uuid do departamento.
● userUUID: uuid do atendente.
● *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.
○ base64: arquivo no formato base64 (utilizado caso a URL não seja pública)
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:
No exemplo abaixo, foram criados dois menus de integração: um que retorna uma mensagem e um anexo, e outro que retorna só uma mensagem.
Foi criado o campo de segmentação CPF para auxiliar no exemplo.
É possível acompanhar o log e status das requisições pelo login do gestor, na tela de Relatórios > Integrações.
Detalhes do menu de integração:
URL: http://demo2254389.mockable.io/chatbot/invoice
Assim que o contato navegar até o menu “Integração - Invoice”, será feita uma requisição POST para essa URL.
Lembrando que os campos de segmentação vão dentro do atributo “fields” no JSON.
Detalhes do menu de integração:
URL: http://demo2254389.mockable.io/chatbot/information
Assim que o contato navegar até o menu “Mais informações”, será feita uma requisição POST para essa URL.