/leads/{numero}, em que {numero} é o número do WhatsApp
do lead, só dígitos, com DDI (ver Identificar o lead). Se o
lead não existe no projeto da chave, toda rota daqui responde 404
Lead with number … not found.
Ligar ou desligar a IA e encerrar o atendimento ficam em Controle da IA.
Notificar o responsável fica em Notificar responsável.
Como obter uma lista de leads?
Não existe endpoint para listar ou buscar leads. A API age sobre um lead que você já conhece. Para trabalhar com vários leads:- Exportação: Contatos → Exportar gera um CSV com nome, telefone, coluna e tags de
todos os contatos. Filtre a planilha e use a coluna
telefone. Ver Contatos. - Do seu sistema: os números ou ids que o seu CRM, ERP ou planilha já tem.
- Dos webhooks: guarde
lead.idelead.wa_idde cada evento recebido. Ver Webhooks de saída.
GET /leads/{numero}
Devolve os dados do lead.
Campos sem valor não aparecem no JSON. Trate ausência como vazio.
GET /leads/{numero}/threads
Lista as conversas (threads) do lead, da mais nova para a mais antiga.
closed_at: null é a conversa aberta. Use o thread_id em
GET /messages/history.
PATCH /leads/{numero}/notes
Escreve na anotação do lead.
{ "message": "Update note successfully" }
Não dá para apagar a anotação pela API (note vazio é 400). Para zerar, substitua por um
texto curto ou limpe no painel.
PATCH /leads/{numero}/properties
Preenche uma propriedade do lead.
{ "message": "Update property successfully" }
Para mudar várias propriedades, faça uma chamada por propriedade. Não dá para apagar o
valor de uma propriedade pela API.
POST e DELETE /leads/{numero}/tag
Põe (POST) ou tira (DELETE) uma tag. O corpo é o mesmo nos dois.
O 409 quer dizer “já está como você queria”. Trate como sucesso numa sincronização.
PATCH /leads/{numero}/kanban
Move o lead para uma coluna do funil.
PATCH /leads/{numero}/assignee
Põe o lead num departamento e escolhe o responsável, ou deixa o rodízio escolher.
Sem
user_email e sem user_id, o rodízio do departamento escolhe: recebe quem
está há mais tempo sem receber, entre os membros com Receber Leads ligado. Quem já é o
responsável fica fora do sorteio.
changed: false quer dizer que o lead já estava com esse responsável nesse
departamento: nada foi gravado e ninguém perdeu a vez no rodízio.
O que cada mudança dispara
O gatilho Propriedade alterada está indisponível hoje (em breve), também pela API:
preencher uma propriedade não roda fluxo nenhum. Mover e pôr tag já rodam os fluxos
sozinhos: não chame
/flows/trigger de novo para o
mesmo evento, ou o fluxo roda duas vezes. Para agendar automações, chame
/automations/trigger (só na conexão oficial).
Armadilhas
- Tag e coluna vão pelo id; propriedade vai pelo slug. Nome não funciona em nenhum dos três. Pegue os ids em Catálogos.
- Mover para coluna com “Desativar IA” desliga a IA do lead. Diga isso a quem pediu.
- Mover pela API não dispara automações. Se precisar, chame
POST /automations/triggerdepois (só na conexão oficial). - Propriedade pela API não roda fluxos. O gatilho Propriedade alterada está em breve. Mover e pôr ou tirar tag já rodam os fluxos de Kanban e de tag.
- Propriedade com o mesmo valor volta 200 com
error. Não trate esseerrorcomo falha. ai_status: "inactive"não diz se é pausa ou desligamento.- Nota acrescenta por padrão. Uma integração que reenvia a mesma nota a cada evento
vai repetir o texto. Use
delete_previous_note: truese a nota for “estado atual”. - Responsável fora do departamento dá 404. Adicione o usuário ao departamento no painel antes.
Para saber mais
- Catálogos: ids de colunas e tags, slugs de propriedades
- Controle da IA, Notificar responsável
- Funil (Kanban), Tags, Propriedades, Departamentos, Contatos
- Termos para buscar: “PATCH vs POST REST”, “409 Conflict idempotent”, “round-robin assignment”.