Como configurar conexão WebSocket?

Última atualização em May 21, 2026

O WebSocket estabelece uma conexão contínua entre cliente e servidor, permitindo comunicação em tempo real. O Wootdesk utiliza essa conexão para enviar atualizações instantâneas sobre eventos da plataforma.

Observação: Este recurso é experimental e pode sofrer alterações entre versões. A compatibilidade retroativa não é garantida, então mantenha sempre sua implementação atualizada.


Por que usar conexão WebSocket?

A conexão WebSocket permite atualizações em tempo real sem necessidade de recarregar a página.

Ela é ideal para:

  • Aplicativos Android/iOS

  • Dashboards personalizados

  • Interfaces em tempo real

  • SDKs próprios

  • Sistemas omnichannel integrados ao Wootdesk

Com isso, agentes recebem mensagens, mudanças de status e notificações instantaneamente.


Como configurar uma conexão WebSocket no Wootdesk?

Para conectar ao WebSocket do Wootdesk, você precisará de um PubSub Token.

URL da conexão:

wss://<seu-dominio>/cable

Exemplo na cloud:

wss://app.wootdesk.com/cable

Tipos de PubSub Token

1. User PubSub Token

Possui permissões de agente/admin e recebe todos os eventos disponíveis.

Você pode obter esse token pela API de Perfil.


2. Contact PubSub Token

Gerado automaticamente para cada sessão de contato.

Ideal para:

  • Widgets personalizados

  • Apps mobile

  • Interfaces de clientes

Esse token recebe apenas eventos da própria sessão.


Como conectar ao WebSocket?

Exemplo de conexão:

const stringify = (payload = {}) => JSON.stringify(payload);

const pubSubToken = "<seu-pubsub-token>";
const accountId = "<account-id>";
const userId = "<user-id>";

const connection = new WebSocket(
  "wss://app.wootdesk.com/cable"
);

connection.send(
  stringify({
    command: "subscribe",
    identifier: stringify({
      channel: "RoomChannel",
      pubsub_token: pubSubToken,
      account_id: accountId,
      user_id: userId,
    }),
  })
);

Mantendo usuário online (Presence)

Para manter o status online, envie um evento de presença a cada 30 segundos.


Atualizar presença de agente/admin

const payload = stringify({
  command: "message",
  identifier: stringify({
    channel: "RoomChannel",
    pubsub_token: "<user-pubsub-token>",
    account_id: accountId,
    user_id: userId,
  }),
  data: stringify({ action: "update_presence" }),
});

connection.send(payload);

Atualizar presença de contato

const payload = stringify({
  command: "message",
  identifier: stringify({
    channel: "RoomChannel",
    pubsub_token: "<contact-pubsub-token>",
  }),
  data: stringify({ action: "update_presence" }),
});

connection.send(payload);

Objetos retornados nos eventos

Os eventos do WebSocket podem retornar os seguintes objetos:

  • Conversation

  • Contact

  • User

  • Message

  • Notification


Principais eventos disponíveis

conversation.created

Disparado quando uma nova conversa é criada.

Disponível para:

  • Agentes/Admins

  • Contatos


message.created

Disparado quando uma nova mensagem é enviada.

Disponível para:

  • Agentes/Admins

  • Contatos


message.updated

Disparado quando uma mensagem é editada/atualizada.


conversation.status_changed

Disparado quando o status da conversa muda.

Exemplos:

  • open

  • pending

  • resolved

  • snoozed


conversation.typing_on

Disparado quando alguém começa a digitar.

Inclui:

  • conversa

  • usuário

  • indicador se é nota privada


conversation.typing_off

Disparado quando alguém para de digitar.


assignee.changed

Disparado quando o responsável da conversa é alterado.


team.changed

Disparado quando o time responsável muda.


contact.created

Disparado quando um contato é criado.


contact.updated

Disparado quando um contato é atualizado.


presence.update

Atualiza status online/offline de usuários e contatos em tempo real.


notification_created

Disparado quando uma notificação é criada.


Exemplo de payload de evento

{
  "message": {
    "event": "message.created",
    "data": {
      "id": 1,
      "content": "Olá!",
      "message_type": 0
    }
  }
}

Casos de uso do WebSocket no Wootdesk

O WebSocket é extremamente útil para:

  • Atualização em tempo real do dashboard

  • Sistemas mobile

  • Widgets customizados

  • Notificações instantâneas

  • Indicador de digitação

  • Presença online/offline

  • Monitoramento omnichannel

  • Integrações próprias


Boas práticas

  • Reenviar presença a cada 30 segundos

  • Reconectar automaticamente em caso de queda

  • Sempre utilizar o token mais recente

  • Validar eventos recebidos antes de processar

  • Utilizar SSL (wss://) em produção