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 requerem o header X-Client-Token. Veja Autenticação.

Base URL

https://wapi.stegia.com.br/functions/v1/conversations-api

Atribuir Operador

POST /conversations-api/assign
Atribui uma conversa a um operador específico. Detecta transferências automaticamente e registra no histórico.

Parâmetros

CampoTipoObrigatórioDescrição
instanceIdstringID da instância
phonestringNúmero do contato
assignTostringE-mail ou UUID do operador
portfoliobooleanSe true, adiciona à carteira do operador (prioridade absoluta)
departmentIdstringUUID do departamento (preserva o atual se omitido)

Exemplo

curl -X POST "https://wapi.stegia.com.br/functions/v1/conversations-api/assign" \
  -H "Content-Type: application/json" \
  -H "X-Client-Token: SEU_TOKEN" \
  -d '{
    "instanceId": "SUA_INSTANCIA",
    "phone": "5511999999999",
    "assignTo": "joao@empresa.com",
    "portfolio": true
  }'

Resposta

{
  "success": true,
  "contactId": "uuid",
  "assignedTo": "user-uuid",
  "previousAssignedTo": null,
  "portfolio": true,
  "transferred": false,
  "departmentId": null
}
  • 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

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

Parâmetros

CampoTipoObrigatórioDescrição
instanceIdstringID da instância
phonestringNúmero do contato
statusstringopen, closed ou pending
internalNotestringNota interna registrada junto com a mudança

Exemplo

curl -X POST "https://wapi.stegia.com.br/functions/v1/conversations-api/status" \
  -H "Content-Type: application/json" \
  -H "X-Client-Token: SEU_TOKEN" \
  -d '{
    "instanceId": "SUA_INSTANCIA",
    "phone": "5511999999999",
    "status": "closed",
    "internalNote": "Ticket resolvido via CRM externo"
  }'

Resposta

{
  "success": true,
  "contactId": "uuid",
  "status": "closed",
  "noteAdded": true
}

Adicionar Nota Interna

POST /conversations-api/note
Adiciona uma nota interna na conversa (não enviada ao cliente, visível apenas para operadores).

Parâmetros

CampoTipoObrigatórioDescrição
instanceIdstringID da instância
phonestringNúmero do contato
notestringConteúdo da nota

Exemplo

curl -X POST "https://wapi.stegia.com.br/functions/v1/conversations-api/note" \
  -H "Content-Type: application/json" \
  -H "X-Client-Token: SEU_TOKEN" \
  -d '{
    "instanceId": "SUA_INSTANCIA",
    "phone": "5511999999999",
    "note": "Cliente solicitou retorno em 3 dias úteis."
  }'

Resposta

{
  "success": true,
  "contactId": "uuid",
  "noteId": "uuid-da-nota"
}

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.