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
POSTao webhook configurado na integração; - O Live Chat enviará eventos para o Zenvia NLU por meio de chamadas
POSTao 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 atendimentocontact.extra: objeto que engloba o atributocontact_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 agenteUPLOAD_FILE: evento usado para salvar um arquivoSEND_FILE: envio de arquivo do usuário para o agente através do ID recebido no eventoUPLOAD_FILEGET_FILE: evento enviado para buscar os dados de um arquivo através do ID recebido no eventoUPLOAD_FILECLOSE_CONVERSATION: encerramento de atendimento por parte do usuário.ACCEPT_CONVERSATION: evento que sinaliza a aprovação do ALTU para a reabertura de atendimentoREJECT_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 eventoSEND_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 oexpirationTime
-
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: