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