Package Information
Documentation
n8n-nodes-syncro-crm
Pacote oficial de nodes n8n para integrar com o Syncro CRM.
Oferece:
- Action Node
Syncro CRM— 52 operações em 9 recursos: leads, tarefas, pipelines, automações, chatbots, WhatsApp, campos personalizados, sequências de nutrição e dados da conta. Cobre todos os endpoints da API v1. - Trigger Node
Syncro CRM Trigger— dispara workflows em tempo real quando eventos acontecem no CRM (lead criado, mudou de etapa, tarefa concluída, etc). Zero polling.
Instalação
Self-hosted n8n
Settings → Community Nodes → instalar n8n-nodes-syncro-crm.
npm (dev local)
cd ~/.n8n/custom
npm i n8n-nodes-syncro-crm
Credenciais
No Syncro CRM:
/configuracoes/api-keys→ criar API Key com os scopes necessários:leads:read,leads:write— pra manipular leadspipelines:read— sempre necessário (pro loadOptions do node)tasks:read,tasks:write— pra manipular tarefascustom_fields:read— pra popular custom fields no create/upsertsequences:read— pra listar nurture sequenceswhatsapp:read,whatsapp:write— pra enviar mensagens e templateswebhooks:read,webhooks:write— obrigatório pro Trigger Node- Ou
*pra dar todos
No n8n: Credentials → New → Syncro CRM API:
- Base URL:
https://app.syncro.chat(ou sua instância) - API Key: cola o token (
crm_xxxxxxx...)
- Base URL:
Recursos & Operações (Action Node)
Lead
| Operação | Descrição |
|---|---|
| Criar | Cria novo lead (valida limites de plano). Aceita responsável, UTMs e os click ids fbclid/fbc/gclid — o fbclid é o que faz o CRM devolver a conversão pra Meta. |
| Criar ou Atualizar | Upsert por email/phone — retorna created: true/false |
| Listar | Filtros: pipeline, stage, responsável, status, origem, tags, busca (nome/email/phone), updated_since, criados de/até + paginação. Também aceita "Incluir Relações" (só as de custo constante). |
| Buscar | Retorna 1 lead. Em "Incluir Relações" dá pra trazer responsável, produtos, contatos, notas, vendas, tarefas, sequências, score, negócios do mesmo contato, histórico e conversa — evitando uma chamada por relação. |
| Atualizar Etapa | Move o lead no funil (valida tarefas obrigatórias) |
| Marcar como Ganho | Cria Sale, valida pending tasks |
| Marcar como Perdido | Cria LostSale com reason_id opcional |
| Adicionar Tags | CSV de tags → attachTagsByName |
| Remover Tag | Por nome |
| Inscrever em Sequência | Enroll idempotente (reusa NurtureSequenceService::enroll) |
| Desinscrever de Sequência | Marca exited |
| Enviar WhatsApp | Texto ou imagem, reusa Foundation SOLID (ChatIdResolver + WindowChecker + Factory + Persister) |
| Enviar Template HSM | Cloud API, variáveis posicionais, header media opcional |
| Deletar | Remove permanente |
Tarefa
CRUD completo + Marcar como Feita/Pendente (toggle). Filtros por status, type, priority, lead_id, assigned_to, due_from/to.
Pipeline
| Operação | Descrição |
|---|---|
| Listar Tudo | Funis com stages + lost_reasons em árvore (formato estável, não muda) |
| Buscar | Funil completo com etapas e tarefas obrigatórias, no formato re-importável |
| Criar | Funil + etapas num passo só |
| Atualizar | Envio parcial: chave que você não mandar fica como está. Etapa é casada por nome, então renomear preserva os leads. |
| Instalar Modelo | Cria a partir dos modelos prontos. Idempotente por nome. |
| Listar Modelos | Catálogo de modelos |
| Ver Regras | Limites e campos aceitos — a mesma fonte que valida o envio |
| Deletar | 422 se o funil ainda tiver leads |
Automação
| Operação | Descrição |
|---|---|
| Listar / Buscar | Buscar devolve a spec no formato aceito em Atualizar |
| Ativar/Desativar | O uso mais comum aqui: ligar a automação de fora do horário às 18h e desligar às 8h, sem entrar no painel |
| Criar / Atualizar | Spec em JSON (formato plano: trigger_type, conditions, actions) |
| Instalar Modelo | 36 modelos prontos, idempotente por nome |
| Listar Modelos / Ver Regras | Gatilhos e ações válidos |
| Deletar | Irreversível — para pausar, use Ativar/Desativar |
Automação criada pela API nasce sempre inativa. Ativar é passo separado, porque uma automação ativa manda WhatsApp pra cliente de verdade.
Antes de enviar de verdade, marque Só Validar (Dry-Run): a API devolve os erros apontando o caminho exato (actions[2].config.tags) sem escrever nada.
Chatbot
Mesmas operações da automação (sem modelos). Duas regras da API valem lembrar: o canal é imutável depois de criado, e Atualizar substitui o grafo inteiro — busque antes e mande completo.
Campo Personalizado
| Operação | Descrição |
|---|---|
| Listar Definições | Útil pra montar custom_fields no create/upsert de lead |
| Criar | Idempotente pelo rótulo: rodar o workflow de novo devolve o campo existente em vez de criar Campo_2 |
Sequência de Nutrição
Listar — enroll/unenroll rodam em Lead, não aqui.
| Operação | Descrição |
|---|---|
| Listar Instâncias | WAHA + Cloud API com flags de capability (supports_templates, has_window_restriction) |
| Listar Templates HSM | Filtro por status/instance/language |
| Listar Grupos | Só WAHA — número da API Oficial do Meta não expõe grupos |
Conta
| Operação | Descrição |
|---|---|
| Buscar Dados da Conta | Confirma a qual empresa e plano esta API key pertence |
| Listar Usuários | Resolve o ID do responsável antes de criar lead ou tarefa |
Trigger Node (tempo real)
Registra uma webhook subscription no Syncro CRM automaticamente. Quando o evento acontece, o CRM faz POST na URL do n8n. Sem polling, sem delay, sem queimar rate limit.
Eventos suportados
lead.createdlead.updatedlead.stage_changedlead.assignment_changedlead.wonlead.lostlead.tags_changedlead.mergedlead.deletedsale.creatednote.addednps.answeredtask.createdtask.updatedtask.completedconversation.message_received— declarado pela API mas ainda não emitido; inscrever não dá erro e também não dispara nada
Segurança
O CRM assina cada payload com HMAC-SHA256 usando um secret gerado na criação da subscription. O trigger node valida o header X-Syncro-Signature com timing-safe comparison antes de disparar o workflow. Pode desativar a validação (não recomendado).
Lifecycle
- Ao ativar o workflow:
POST /api/v1/webhookscria a subscription no CRM - Ao desativar:
DELETE /api/v1/webhooks/{id}remove automaticamente - Re-attach: se a URL do webhook já existe no CRM (activation+deactivation repetido), reaproveita
Formato do payload
{
"event": "lead.stage_changed",
"tenant_id": 260,
"emitted_at": "2026-04-23T16:30:00-03:00",
"data": {
"id": 12602,
"name": "Maria Silva",
"email": "maria@example.com",
"previous_stage_id": 4,
"new_stage_id": 7,
"new_stage_name": "Proposta enviada",
// ... demais campos do lead
}
}
Exemplos de workflow
1. Sincronizar lead novo pro Google Sheets
Syncro CRM Trigger (lead.created)
→ Set (map fields)
→ Google Sheets: Append Row
2. Enviar WhatsApp quando lead vira "Proposta enviada"
Syncro CRM Trigger (lead.stage_changed)
→ IF {{ $json.data.new_stage_name === 'Proposta enviada' }}
→ Syncro CRM (Lead > Enviar Template HSM)
3. Importar contatos de um CDP externo (upsert em batch)
HTTP Request (GET contatos CDP)
→ Split In Batches
→ Syncro CRM (Lead > Criar ou Atualizar, match_by: email)
4. Criar tarefa de follow-up quando lead não responde
Syncro CRM Trigger (conversation.message_received)
→ Wait 24h
→ IF (lead ainda não respondeu)
→ Syncro CRM (Tarefa > Criar)
Changelog
2.1.0 (2026-08-10)
Alinha o node com tudo que a API v1 ganhou desde a 2.0. Puramente aditivo — nenhum parâmetro foi renomeado, então workflow salvo continua funcionando sem tocar em nada.
- Recursos novos: Automação (9 operações), Chatbot (7) e Conta (dados da conta + listar usuários).
- Pipeline saiu de 1 operação para 8: CRUD completo, modelos e regras.
- Lead ganhou
?include=— traz responsável, produtos, notas, tarefas, vendas, score, histórico e conversa junto, em vez de uma chamada por relação. Sem nada marcado a resposta é idêntica à de antes. - Lead aceita responsável,
utm_ide os click idsfbclid/fbc/gclid. - Campo Personalizado ganhou Criar (idempotente por rótulo).
- WhatsApp ganhou Listar Grupos.
- Trigger ganhou 6 eventos: mudança de responsável, tags alteradas, lead mesclado, venda registrada, nota adicionada e NPS respondido.
- Cobertura: o node passa a chamar os 39 endpoints da API v1 (era 24).
npm run lintlimpo (eram 27 erros herdados). Três regras do ruleset da comunidade ficaram desligadas com o motivo escrito no.eslintrc.js— o autofix delas quebrava a marca "WhatsApp" nas ações e camelCasava a URL da credencial.
2.0.0 (2026-04-23)
- BREAKING: remove resource
Campaign(módulo Campanhas foi removido do Syncro em abr/2026) - Adiciona resources: Task, Custom Field, Nurture Sequence, WhatsApp
- Adiciona ~15 novas operations em Lead:
list(com filtros +updated_since),upsert,addTags,removeTag,enrollSequence,unenrollSequence,sendWhatsapp,sendWhatsappTemplate - Novo node de trigger
Syncro CRM Trigger— webhook em tempo real com HMAC - Refactor completo: monolito de 678 linhas virou main node enxuto + descriptions por resource +
GenericFunctions.ts tsconfigstrict, zeroany, types completos- Helper
syncroApiRequestcom retry exponencial em 408/429/5xx - Cache de loadOptions (
pipelines) in-memory — 1 chamada em vez de 5 ao abrir o form - README, ESLint, Prettier, GitHub-friendly
1.0.1
- CRUD básico de Lead, Campaign (deprecated), Pipeline
License
MIT
Links
- Syncro CRM: app.syncro.chat
- Support: contato@syncro.chat
- n8n docs: n8n.io/integrations