Início Funcionalidades Avançadas Como configurar uma conexão WebSocket

Como configurar uma conexão WebSocket

Última atualização em Apr 18, 2025

A Akece permite conexões WebSocket para comunicação em tempo real entre cliente e servidor. Esse tipo de conexão é ideal para atualizações instantâneas no painel, como recebimento de mensagens e mudanças de status nas conversas.

Por que usar WebSocket?

  • Permite comunicação em tempo real com o painel da Akece.

  • Melhora a produtividade dos atendentes.

  • Reduz a necessidade de recarregar a página para ver novas mensagens.

Como configurar a conexão

A URL da conexão é:

wss://dash.akece.com/cable

Para autenticar a conexão, você precisará de um token PubSub, que pode ser de dois tipos:

  • Token de usuário (atendente ou administrador): acessa todos os eventos.

  • Token de contato: acessa apenas eventos da sessão ativa do cliente.

Exemplo de conexão

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

const pubSubToken = "<seu-token>";
const accountId = <id-da-conta>;
const userId = <id-do-usuario>; // Opcional para contatos

const connection = new WebSocket("wss://dash.akece.com/cable");

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

Atualização de presença

Para manter o status do atendente ou contato como "online", envie um evento de presença a cada 30 segundos.

Para atendente/administrador

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

connection.send(payload);

Para contato

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

connection.send(payload);

Eventos suportados

A Akece envia eventos com dados em tempo real. Alguns exemplos:

  • conversation.created – Nova conversa iniciada

  • conversation.read – Mensagem lida pelo contato

  • message.created – Nova mensagem enviada

  • message.updated – Mensagem atualizada

  • conversation.status_changed – Mudança de status da conversa

  • conversation.typing_on – Contato/atendente está digitando

  • conversation.typing_off – Contato/atendente parou de digitar

  • assignee.changed – Mudança de atendente

  • team.changed – Mudança de equipe

  • contact.created – Contato criado

  • contact.updated – Contato atualizado

  • presence.update – Atualização de presença

  • notification.created – Notificação gerada

Cada evento retorna um payload com informações do objeto relacionado: conversa, mensagem, contato, usuário ou notificação.


Se precisar de ajuda para configurar a conexão com WebSocket na Akece, fale com a gente:
📩 [email protected] | 📱 @akece.ai