Ajustes / Integrações
Integrações
O WhatsApp fala com o CRM por um token com escopo: ele abre uma porta só, e você revoga quando quiser.
Nenhum token
Gere um token para o n8n. Quem responde no WhatsApp passa a aparecer aqui como lead, e cada mensagem vira toque registrado sem você marcar na mão.
Como o n8n chama
Um nó HTTP no fluxo de entrada e outro no de saída. O CRM acha o lead pelo telefone, cria se ainda não existir, e grava o toque. Ele não move etapa nem muda classificação: isso continua sendo decisão sua, na tela.
POST {SUPABASE_URL}/rest/v1/rpc/whatsapp_registrar_contato
apikey: {chave anon}
Content-Type: application/json
{
"p_token": "ontcrm_...",
"p_telefone": "5543999990001",
"p_direcao": "entrada", // ou "saida"
"p_nome": "Dr. Fulano", // opcional
"p_texto": "primeira mensagem", // opcional
"p_quando": "2026-09-12T14:03:00Z",
"p_id_externo": "{{ $json.key.id }}"
}O id externo não é detalhe. É ele que impede a mesma mensagem de virar dois toques quando o n8n repete a chamada. Use o id da mensagem da Evolution.
Mensagem nossa para número que ainda não está no CRM é ignorada de propósito: senão o quadro encheria de contato que nunca respondeu nada.
Como o agente lê o lead
Depois do formulário, o agente consulta o telefone com o mesmo token. O CRM normaliza o número com código do país, procura somente no workspace do token e devolve o preenchimento mais recente. Telefone desconhecido responde null.
POST {SUPABASE_URL}/rest/v1/rpc/whatsapp_buscar_lead
apikey: {chave anon}
Content-Type: application/json
{
"p_token": "ontcrm_...",
"p_telefone": "5534999990001"
}
// resposta quando existe
{
"nome": "Dra. Fulana",
"email": "fulana@example.com",
"voce_e": "Médico(a) com consultório próprio",
"preenchido_em": "2026-09-13T17:30:00Z",
"origem": {
"utm_source": "meta",
"utm_campaign": "raio-x",
"fbclid": "..."
}
}Últimos que vieram do WhatsApp
Nenhum token ativo agora.
Ninguém ainda
Assim que o agente atender alguém no WhatsApp, o lead aparece aqui e no quadro do CRM.