Webhook – HiChat


O que é Webhook?

É uma forma de recebimento de informações quando um evento acontece. Por isso, o webhook na prática, é a maneira de receber informações entre dois sistemas de uma forma passiva.

Capture os principais eventos dos atendimentos em tempo real e os utilize para notificar clientes e atendentes quando ocorrer determinada atividade no chat.

Funcionamento

O fluxo de envio e captura dos eventos funciona da seguinte maneira:

2019-02-06_16h53_14

Especificamente para implementações em aplicativos mobile os eventos de “Alteração de posição fila”, “Entrada em atendimento” e “Mensagens do operador” podem ser enviados (opcional) com a identificação do cliente na sessão do aplicativo, com isso, é possível centralizar e desenvolver uma solução para notificar os clientes diretamente no APP.

Neste caso, o fluxo de envio e captura dos eventos ficaria da seguinte forma:

2019-02-06_17h33_23

OBSERVAÇÃO:

Para funcionar, é necessário que o deviceId seja enviado através de um parâmetro na URL de entrada do chat.  A criação deste campo é feita pelo suporte da Hi Platform, para solicitar criação deste campo entre em contato no e-mail servicedesk@hiplatform.com ou entre em contato por telefone no número 3588-0606.

https://chat.directtalk.com.br/static/?tenantId=xxxxxxxxxxxxxxxxxxxxx&templateId=xxxxxxxxxxxxxxx&departmentId=xxxxxxx&deviceId=111111111

Configuração

  1. Escolha um departamento que tenha o canal de Chat habilitado
  2. Secione “Configurações”
  3. Selecione o canal “DTChat”
  4. Selecione a aba “Integrações”

Em Integrações preencha os campos a serem configurados como webhooks e clique em “Salvar” (cada campo corresponde a um tipo de notificação)

2019-01-22_10h14_44

Requests

Ao ser notificado enviamos um objeto no seguinte formato:

Retorna:  
    {
	Guid Id,
	String Type
     }
  • Guid Id:identificação da sessão ativa do cliente no HiChat
  • String Type: Tipo do evento

Após receber uma notificação, deve-se fazer uma requisição para buscar o conteúdo do payload de forma segura em:

https://chat.directtalk.com.br/1.0/api/webhooks/?id=XXXXX&type=type

Autenticação / Autorização

A autenticação é feita utilizando o protocolo Basic .Vamos descrever brevemente como autenticar utilizando o protocolo Basic . Para criar o usuário de API, clique aqui

Utilize o usuário e senha e calcule o token da seguinte forma:

  • Concatene o usuario ea senha separada por :. No nosso exemplo usuarioApi:senhaApi;
  • Codifique o código usando o Base64  . Sem Nosso Exemplo o Exemplo o resultado ( símbolo ) Dessa Operação e dXN1YXJpb0FwaTpzZW5oYUFwaQ==.

Exemplo:

Authorization: Basic dXN1YXJpb0FwaTpzZW5oYUFwaQ=

Os payloads possíveis são:

OnChatStarted – Evento que é disparado quando o atendimento é iniciado.

{
 Guid chatID
 String deviceId
 String protocol
 String agentName
 String agentLogin
 String departmentName
 String origin
 String onSystemDate
 String contactStartedDate
 String identifications
}
  • Guid chatId: identificação da sessão ativa do cliente no HiChat
  • String deviceId: identificação do cliente na sessão do aplicativo
  • String protocol: protocolo de atendimento
  • String agentName: nome do atendente
  • String agentLogin: login do atendente
  • String departmentName: nome do departamento que o atendimento iniciou.
  • String origin: origem do atendimento
  • String onSystemDate: data de entrada do cliente na plataforma
  • String contactStartedDate: data (formato epoch) de entrada do cliente com o atendente
  • String identifications: campos chaves da pesquisa inicial.

OnMessage – Evento que é disparado quando o operador envia uma mensagem

{
     Guid chatId 
     string deviceId 
     string message 
}
  • Guid chatId: identificação da sessão ativa do cliente no HiChat
  • String deviceId: identificação do cliente na sessão do aplicativo
  • String message: mensagem enviada pelo operador

OnQueueUpdate – Evento que é disparado quando a posição do cliente na fila é atualizada.

{
     Guid chatId 
     string deviceId 
     int position  
}
  • Guid chatId: identificação da sessão ativa do cliente no HiChat
  • String deviceId: identificação do cliente na sessão do aplicativo
  • int position: posição do cliente na fila de espera

OnChatFinished – Evento que é disparado quando o atendimento é finalizado.

{
 Guid chatID
 String deviceId
 String protocol
 String statusDetail
 String contactFinishedDate
}
  • Guid chatId: identificação da sessão ativa do cliente no HiChat
  • String deviceId: identificação do cliente na sessão do aplicativo
  • String protocol: protocolo de atendimento
  • String statusDetail: motivo do atendimento ser encerrado
  • String contactFinishedDate: data (formato epoch) de encerramento do atendimento.

OnSatisfactionSurveyFilled – Evento que é disparado quando a pesquisa de satisfação é preenchida.

{
 Guid chatID
 String deviceId
 String protocol
 String ratings
}
  • Guid chatId: identificação da sessão ativa do cliente no HiChat
  • String deviceId: identificação do cliente na sessão do aplicativo
  • String protocol: protocolo de atendimento
  • String ratings: pergunta/resposta das perguntas do tipo “avaliação”