Como podemos ajudar?

01. Agent connector API
6 min
Criado por LS em 21/03/2023 14:21
Atualizado por Ligia Sarmento em 17/07/2024 10:58

Objetivo

O Agent Connector API permite que plataformas externas realizem atendimentos de Live Chat no Zenvia NLU.

API Agent Connect

Esta API consiste no envio e recebimento de eventos, através de chamadas http. Diante disso, esteja atento às seguintes informações:

  • O Zenvia NLU enviará eventos para o Live Chat através de chamadas POST ao webhook configurado na integração;
  • O Live Chat enviará eventos para o Zenvia NLU por meio de chamadas POST ao endpoint https://agent.altubots.com/altu-connector/{slug}/{livechatId};
  • A autenticação do envio e recebimento de eventos será feita via JWT. Esse processo será detalhado na conclusão do desenvolvimento;

Todo evento enviado e recebido deve ter no corpo um JSON com o seguinte formato:

{
"action":"Tipo do evento",
"conversationID":"Id único que identifica a conversa de live chat",
"identifier":"Id único que identifica a usuário no ALTU",
"parameters":{
...
},
"timestamp":"Horário do envio do evento em formato UNIX timestamp"
}

💡 Dica: Você também pode enviar dados do usuário para o agente. Para configurar, acesse esta documentação. 

Autenticação

A autenticação é feita via JWT. Além disso:

  • Para cada request deve ser gerado um token novo onde a chave é usada para encriptar o token de acesso;
  • O Token de acesso (access_token) e a Chave de acesso (access_key) são obtidos na integração cadastrada no Zenvia NLU.
{
"alg": "RS256",
"typ": "JWT"
}
.
{
"access_token": "pDD8w6VeTjnk03MxGqwSsEneuaykfkVvfpfUnus2",
"iat": 1653066200,
"exp": 1653066260
}
  • Assine o JWT com HS256 usando a chave de acesso (access_key);
  • Para o campo iat, especifique a hora Unix atual, e para o campo exp, especifique a hora exatamente 60 segundos depois, que é quando o JWT irá expirar;
  • É fundamental que o tempo de expiração seja de no máximo 60 segundos (exp).

Eventos

Todo evento deve possuir um atributo action que identifica o propósito do que está sendo enviado/solicitado.

Actions que Zenvia NLU envia para a plataforma Livechat

  • OPEN_CONVERSATION : solicitação de atendimento
     
    contact.extra: objeto que engloba o atributo contact_infoque é usado para enviar informações extras do atendimento durante o transbordo;
    extraInfo: informações extras do atendimento que serão enviadas durante o transbordo e serão disponibilizados no Widget (ficha) do atendimento para o Agente
  • SEND_MESSAGE : envio de mensagem do usuário para o agente
  • UPLOAD_FILE : evento usado para salvar um arquivo
  • SEND_FILE: envio de arquivo do usuário para o agente através do ID recebido no evento UPLOAD_FILE
  • GET_FILE : evento enviado para buscar os dados de um arquivo através do ID recebido no evento UPLOAD_FILE
  • CLOSE_CONVERSATION: encerramento de atendimento por parte do usuário.
  • ACCEPT_CONVERSATION : evento que sinaliza a aprovação do ALTU para a reabertura de atendimento
  • REJECT_CONVERSATION : evento que sinaliza algum erro no pedido de reabertura de atendimento

Actions que a plataforma de Livechat envia para o Zenvia NLU

  • ACCEPT_CONVERSATION : deve ser enviado quando um agente aceita a solicitação de um atendimento
  • REJECT_CONVERSATION: deve ser enviado quando não há agentes disponíveis para realizar o atendimento
  • SEND_MESSAGE : envio de mensagem do agente para o usuário
  • SEND_FILE: envio de arquivo do agente para o usuário
  • GET_FILE : evento enviado para buscar os dados de um arquivo através do ID recebido no evento SEND_FILE
  • CLOSE_CONVERSATION : encerramento de atendimento por parte do agente
     
  • CLOSE_CONVERSATION : quando se trata de reabertura de atendimento, esse evento será disparado quando o cliente responder o outbound fora do tempo de tolerância, ou seja, maior que o expirationTime
  • REOPEN_CONVERSATION: solicitação de reabertura de um atendimento por parte do agente

💡 Dica: Para visualizar todos os exemplos de Payloads, recomendamos acessar a documentação completa através do anexo abaixo. Clique para realizar o download do HTML: