Como configurar uma conexão WebSocket?
WebSockets estabelecem uma conexão contínua entre o cliente e o servidor, permitindo comunicação bidirecional. O Talk utiliza essa conexão para fornecer atualizações em tempo real sobre eventos da plataforma. Para se conectar ao WebSocket do Talk, basta fornecer um token e seguir as instruções de configuração descritas neste guia.
Nota: Este recurso é experimental, e a documentação pode mudar a cada versão. Além disso, não há garantia de compatibilidade retroativa, por isso é importante garantir que você está utilizando a versão mais recente da implementação.
Uma conexão WebSocket permite atualizações de dados em tempo real, tornando-a ideal para clientes como um SDK de cliente Android ou iOS para o Talk. Isso ajuda a atualizar o dashboard sem a necessidade de recarregar a página. Assim, pode melhorar a experiência do usuário e aumentar a produtividade de um agente.
Para configurar uma conexão WebSocket com o Talk, você precisa iniciar uma conexão utilizando o token de autenticação PubSub fornecido pelo Talk. A URL para a conexão é wss://<your-installation-url>/cable. Se você estiver usando o Talk Cloud, pode usar wss://app.Talk.com/cable como URL.
Um token PubSub é um token utilizado para autenticar um cliente ao se conectar a um serviço PubSub (publicar-assinar). O cliente deve apresentar esse token ao serviço para estabelecer uma conexão e começar a publicar ou assinar mensagens.
Existem dois tipos de tokens PubSub disponíveis no Talk, conforme listado abaixo.
Token PubSub de Usuário: Este token possui os privilégios de um agente/admin e receberá todos os eventos listados posteriormente nesta página. Você pode obter o token PubSub chamando a API de Perfil.
Token PubSub de Contato: O Talk gera um token PubSub único para cada sessão de contato. Este token pode ser usado para se conectar ao WebSocket e receber atualizações em tempo real para a mesma sessão. Quando um contato é criado por meio das APIs públicas, o pubsub_token é incluído no payload da resposta. Este token concede acesso somente aos eventos relacionados à sessão atual, como conversation.created, conversation.status_changed, message.created, message.updated, conversation_typing_on, conversation_typing_off e presence.update.
Consulte as APIs do Cliente para construir integrações em tempo real voltadas ao cliente utilizando o Talk.
Nota: Este token pode ser rotacionado regularmente de acordo com o tipo de instalação. Certifique-se de estar utilizando o token mais recente.
Para conectar-se ao WebSocket do Talk, utilize o comando subscribe e inclua seu pubSubToken, accountId, e userId (se estiver usando um token de usuário) na requisição de conexão. Aqui está um exemplo de como se conectar ao Talk.
Para manter o status online dos seus usuários no Talk, você pode enviar um evento de atualização de presença para o Talk a cada 30 segundos. Essa ação manterá o status do agente/contato como online.
Como atualizar a presença de um agente/admin?
Para atualizar a presença de um agente ou admin, envie o seguinte payload para o servidor:
Como atualizar a presença de um contato?
Para atualizar a presença de um contato, envie o seguinte payload para o servidor:
Um evento pode conter qualquer um dos objetos a seguir como payload. Diferentes tipos de objetos suportados no Talk são os seguintes.
Conversação
O seguinte payload será retornado para uma conversação.
Contato
O seguinte payload será retornado para um contato.
Usuário
O seguinte payload será retornado para um agente/admin.
Mensagem
O seguinte payload será retornado para uma mensagem.
Notificação
O seguinte payload será retornado para uma notificação.
Cada evento terá um atributo identifier no seguinte formato.
Cada evento incluirá um atributo message no qual retornamos o nome do evento, bem como os dados associados. Para ver a lista de eventos, consulte a documentação abaixo.
Este evento é acionado quando uma nova conversação é iniciada. Se estiver assinando o token PubSub do contato, este evento incluirá apenas dados relacionados à sessão específica associada ao token PubSub.
Disponível para: agente/admin, contato
Este evento é acionado e enviado aos agentes/admins que têm acesso à caixa de entrada, quando um contato lê uma mensagem.
Disponível para: agente/admin
Este evento é acionado e enviado aos agentes, admins, contatos quando uma nova mensagem é criada em uma conversação à qual eles têm acesso.
Disponível para: agente/admin, contato
Este evento é acionado e enviado aos agentes, admins, contatos quando uma mensagem é atualizada em uma conversação à qual eles têm acesso.
Disponível para: agente/admin, contato
Este evento é enviado aos agentes, admins, contatos quando o status de uma conversação é atualizado.
Disponível para: agente/admin, contato
Este evento é enviado aos agentes, admins, contatos quando um contato ou agente começa a digitar uma resposta.
Disponível para: agente/admin, contato
Este evento é enviado aos agentes, admins, contatos quando um contato ou agente para de digitar uma resposta.
Disponível para: agente/admin, contato
Este evento é enviado aos agentes/admins com acesso a uma caixa de entrada quando o agente atribuído é alterado.
Disponível para: agente/admin
Este evento é enviado aos agentes/admins com acesso a uma caixa de entrada quando o time atribuído é alterado.
Disponível para: agente/admin
Este evento é enviado aos agentes/admins quando dois contatos são mesclados e todas as conversações são consolidadas sob um único contato.
Disponível para: agente/admin
Este evento é enviado aos agentes/admins quando um contato é criado.
Disponível para: agente/admin
Este evento é enviado aos agentes/admins quando um contato é atualizado.
Disponível para: agente/admin
Disponível tanto para agente quanto para o contato, este evento fornece atualizações em tempo real sobre o status de disponibilidade dos usuários no sistema. O evento entregue aos contatos não incluirá informações sobre o status de disponibilidade de outros contatos.
Disponível para: agente/admin
Este evento é enviado aos agentes/admins quando uma notificação é criada.
Disponível para: agente/admin