Skip to main content

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

EventoDireçãoDescrição
send_messageCliente → ServidorEnvia uma mensagem ao contato
new_messageServidor → ClienteNova mensagem recebida
ticket_status_changedServidor → ClienteStatus do ticket alterado
typingBidirecionalIndicador de digitação
agent_joinedServidor → ClienteAtendente entrou na conversa
agent_leftServidor → ClienteAtendente 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.