Visão Geral
O Talk oferece uma conexão WebSocket para comunicação em tempo real entre atendentes e contatos. Use esta conexão para enviar e receber mensagens instantaneamente durante um atendimento.
Conexão
WSS wss://app.morada.ai/talk
Parâmetros de Conexão
A autenticação é feita via query string ou headers durante o handshake:
const ws = new WebSocket("wss://app.morada.ai/talk", {
headers: {
"Authorization": "Bearer SEU_TOKEN"
}
});
Eventos
Enviando Mensagens
{
"event": "send_message",
"data": {
"ticketId": "string",
"message": "Olá, como posso ajudar?",
"type": "text"
}
}
Recebendo Mensagens
{
"event": "new_message",
"data": {
"ticketId": "string",
"from": "contact",
"message": "Gostaria de mais informações",
"type": "text",
"timestamp": "2026-04-01T12:00:00Z"
}
}
Eventos de Status
{
"event": "ticket_status_changed",
"data": {
"ticketId": "string",
"status": "closed",
"closedBy": "agent"
}
}
Tipos de Evento
| Evento | Direção | Descrição |
|---|
send_message | Cliente → Servidor | Envia uma mensagem ao contato |
new_message | Servidor → Cliente | Nova mensagem recebida |
ticket_status_changed | Servidor → Cliente | Status do ticket alterado |
typing | Bidirecional | Indicador de digitação |
agent_joined | Servidor → Cliente | Atendente entrou na conversa |
agent_left | Servidor → Cliente | Atendente saiu da conversa |
Exemplo Completo
const ws = new WebSocket("wss://app.morada.ai/talk");
ws.onopen = () => {
// Autenticar após conexão
ws.send(JSON.stringify({
event: "authenticate",
data: { token: "SEU_TOKEN" }
}));
};
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
switch (data.event) {
case "new_message":
console.log("Nova mensagem:", data.data.message);
break;
case "ticket_status_changed":
console.log("Status alterado:", data.data.status);
break;
}
};
// Enviar mensagem
ws.send(JSON.stringify({
event: "send_message",
data: {
ticketId: "TICKET_ID",
message: "Olá!",
type: "text"
}
}));
A conexão WebSocket mantém um heartbeat automático. Se a conexão cair, implemente reconexão automática com backoff exponencial.