Skip to main content

Conversas

API dedicada para gerenciar atendimentos. Todos os endpoints criam o contato automaticamente se o telefone não existir.
Todos os endpoints exigem duas credenciais: o campo embedKey no corpo (chave de embed do canal) e o header X-Client-Token. As duas precisam pertencer ao mesmo canal e podem ser rotacionadas de forma independente. Veja Autenticação.

Base URL


Atribuir Operador

Atribui uma conversa a um operador específico. Detecta transferências automaticamente e registra no histórico.

Parâmetros

Exemplo

Resposta

  • O operador recebe e-mail de notificação automaticamente com link direto para a conversa.
  • Transferências (quando havia outro operador) são registradas em chat_transfer_log e geram nota interna na conversa.
  • Com portfolio: true, o contato passa a ser exclusivo do operador na fila.

Mudar Status

Altera o status do atendimento (open / closed / pending). Útil para integrar fechamento de tickets em CRMs externos.

Parâmetros

Exemplo

Resposta


Adicionar Nota Interna

Adiciona uma nota interna na conversa (não enviada ao cliente, visível apenas para operadores).

Parâmetros

Exemplo

Resposta


Atendimento vinculado a um registro externo (card)

Quatro endpoints permitem amarrar o ciclo de atendimento a um identificador de outro sistema (card de CRM, chamado, pedido). O identificador é gravado em externalRef e a origem em externalSource.
Todos os endpoints deste grupo — inclusive os de card — exigem o phone do contato. O identificador do card sozinho ainda não abre nem encerra atendimento.
Autenticação: embedKey no corpo + header X-Client-Token, em todas as rotas — inclusive nas automações do card. Chamadas com apenas uma das credenciais ainda funcionam durante a transição, mas a resposta traz o campo deprecation avisando que o par passará a ser obrigatório.

Abrir atendimento

Abre um atendimento já gravando o identificador do card. Se o contato já tiver um atendimento aberto, o endpoint apenas vincula o card a ele e responde created: false.

Vincular card a um atendimento aberto

Amarra um card a um atendimento já aberto. Se o identificador já pertencer a outro atendimento, devolve o existente com linked: false. Sem atendimento aberto, responde 404.

Fechar atendimento

Encerra o atendimento aberto do contato e também fecha a fila do chat, mantendo painel e API coerentes. Informe externalRef para encerrar apenas o atendimento daquele card. Sem atendimento aberto, responde 404.

Encerrar pela automação do card

Feito para a fase final do card: exige embedKey + X-Client-Token e é idempotente — se o card já estiver encerrado (ou nunca tiver tido atendimento aberto), responde 200 com alreadyClosed: true em vez de erro.
Envie sempre embedKey no corpo e X-Client-Token no header.

Buscar atendimentos do contato

Lista os atendimentos do contato, do mais recente para o mais antigo. Informe externalRef para filtrar por card.

Buscar Mensagens (Histórico)

Retorna o histórico de mensagens de um contato (telefone) dentro de um intervalo de datas. Útil para exportar conversas, alimentar dashboards externos ou montar contexto para LLMs.
Este endpoint usa a base https://wapi.stegia.com.br/functions/v1/messages-context (não pertence ao grupo conversations-api).

Parâmetros (query string)

* Informe um dos dois: instanceId ou connectedPhone.

Exemplo

Resposta (format=conversation)

Use format=raw para receber as mensagens cruas (sem agrupamento role/sender), úteis para data warehouse.

Comportamentos Automáticos

Se o phone não existir, o contato é criado com origin: "api" antes de aplicar a operação.
Quando assign é chamado e a conversa já tem outro operador atribuído, o sistema:
  1. Atualiza para o novo operador
  2. Registra a transferência em chat_transfer_log
  3. Cria nota interna automática com nomes dos operadores envolvidos
  4. Notifica o novo operador por e-mail
A atribuição via API dispara o mesmo e-mail de notificação enviado quando um operador é atribuído pelo painel — garantindo consistência em qualquer fluxo.