Verificar se existe atendente disponível no Builder
Uma das funcionalidades mais interessantes do BLiP é permitir que um bot faça a transferência de um cliente para um atendente humano de forma transparente. Caso tenha dúvida em como utilizar essa funcionalidade em seu bot acesse os artigos:
Apesar de ser simples enviar um cliente para atendimento humano, a experiência do usuário pode ficar muito comprometida caso não haja nenhum atendente disponível na ferramenta (como no BLiP Desk por exemplo), uma vez que o bot para de responder e todas as mensagens são direcionadas para o ser humano.
Pensando nisso, é extremamente importante analisar se existe algum atendente disponível na ferramenta de atendimento, antes de enviar qualquer usuário.
Para verificar se existe algum atendente disponível no Builder siga os passos abaixo:
Crie um bloco com o nome "Validação de atendentes". Esse bloco deve vir antes do bloco de Atendimento Humano.
No bloco criado no passo 1 adicione uma ação de entrada do tipo Requisição HTTP, seguindo os dados abaixo:
Método da Requisição: POST
URL: https://http.msging.net/commands
Cabeçalhos:
- Content-Type:
application/json
- Authorization:
Key API-KEY-BOT
Body:
{
"id": "{{random.guid}}",
"to": "postmaster@desk.msging.net",
"method": "get",
"uri": "/attendants"
}
Variável de status da resposta: status
Variável do corpo da resposta: result
Observação: Caso não saiba onde encontrar a API-KEY do seu bot, veja esse artigo: Como encontrar a API-KEY de um bot no BLiP.
- Adicione mais uma ação de entrada (após a ação de requisição HTTP criada no passo 2) do tipo Script JS, com o script abaixo:
Variável de entrada para a função: result
Código fonte:
// Receive the variables as parameters
function run(result) {
result = JSON.parse(result);
let hasAttendant = false;
if(result.resource && result.resource.total >= 1){
hasAttendant = result.resource.items.some(function(attendant){
return attendant.status === 'Online';
});
}
return hasAttendant;
}
Variável para o valor de retorno: hasAttendant
Ao final do passo 3, as ações do bloco "Validação de atendentes" deve ficar como a imagem abaixo:
- Defina duas condições de saída no bloco criado no passo 1. Uma das condições (hasAttendant = true) será executada caso exista pelo menos 1 atendente disponível e a outra condição (hasAttendant = false) será executada caso não exista nenhum atendente disponível.
Adicione o bloco de Atendimento Humano apenas na condição de saída que representa a disponibilidade de atendentes.