Documentation

@nexaomni/n8n-nodes-nexachat

Nodes do NexaChat para o n8n: conversas, contatos, WhatsApp, Kanban CRM, Captain (IA),
agenda, Help Center e mais — e, na Fase 2, os módulos próprios da NexaOmni
(Instagram, Anúncios, Formulários).

Guia para clientes

Ver docs/GUIA-DO-CLIENTE.md (cliente-safe: instalação, credencial, exemplos, erros).

Instalação (n8n self-hosted)

Settings → Community Nodes → Install → @nexaomni/n8n-nodes-nexachat

Credencial NexaChat API:

  • URL: https://chat.nexaomni.com.br
  • Access Token: Perfil → Configurações → Token de acesso

Como o pacote é feito

@clubmega/n8n-nodes-mega (npm, MIT)        ← node oficial do MEGA, por Nestor Davalos
        │  scripts/sync-upstream.mjs
        │    1. npm pack <versão> + confere integridade com upstream.lock.json
        │    2. de-para MEGA → NexaChat (rebrand/rules.mjs), só em strings, via AST
        │    3. guarda: falha se sobrar MEGA/Chatwoot/WAHA/Evolution/UAZAPI em texto
        ▼
upstream/   (versionado — o diff do PR mostra o que mudou na release)
        │  scripts/build.mjs
        ▼
dist/  =  upstream/  +  src/ (nodes próprios NexaOmni, TypeScript — Fase 2)
Comando O quê
npm run sync Reaplica o de-para na versão do upstream.lock.json (após mudar regras)
npm run sync:latest Puxa a última versão do Nestor
npm test Build + testes (carrega nodes como o n8n, procura vazamento de marca)

Quando o Nestor lançar versão nova

Automático: o workflow sync-upstream roda todo dia às 08:00, e abre PR (de-para ok) ou
issue (frase nova com marca → precisa de regra). Manual: npm run sync:latest && npm test.

Se o guarda falhar, adicione em rebrand/rules.mjs:

  • texto de tela → PHRASES (trecho) ou EXACT (string inteira);
  • valor interno enviado à API (não aparece na tela) → ALLOWLIST, com comentário justificando.

Publicar

npm version <minor|patch> → push → git tag vX.Y.Z && git push --tags (workflow publish, precisa do secret NPM_TOKEN).

Nodes próprios NexaOmni (Fase 2 — src/)

Node Operações
NexaChat Instagram Comentários: listar, responder, DM, ocultar, resolver · Leads · Posts: agendar, agendados, publicados, métricas · Mídia: upload · Conta: crescimento
NexaChat Instagram Trigger Novo comentário / novo lead (polling, cursor after_id)
NexaChat Forms Formulários: listar · Respostas: listar (filtro por data/busca)
NexaChat Forms Trigger Dispara a cada nova resposta de um formulário (polling)
NexaChat Ads Status · Insights · Atribuição (ROAS) · Funil · Vendas por anúncio · Origens · Saúde da CAPI · Enviar conversão (POST /mkt/events)
NexaChat Ads Trigger Novo lead vindo de anúncio (polling, conjunto de conversas já vistas)

Usam a mesma credencial NexaChat API. Falam com o backend dos módulos
(https://engagement.nexaomni.com.br/n8n/v1, repo nexa-social), que valida o Access Token no
NexaChat, exige que o usuário seja membro da conta e aplica as mesmas permissões da tela. Só uma
lista branca de rotas é exposta (backend/routes/n8n.js no nexa-social) — nada destrutivo, de
configuração ou de conexão com a Meta. Homologação: NEXACHAT_MODULES_URL no servidor n8n.

Rota nova = liberar em ALLOWED (nexa-social) + operação no node aqui.

O que o de-para muda

  • Nome/ícone/descrições: MEGA → NexaChat; ícone icons/nexachat.svg.
  • Tipos: nexaChat, nexaChatTrigger; credenciais nexaChatApi, nexaChatPlatformApi.
  • Provedores de WhatsApp não oficiais aparecem como "QR Code" (nunca WAHA/Evolution/UAZAPI).
  • Captain → NexaAI em todo texto de tela (mesmo de-para do DS nexaai-captain-renamer); rotas/ids captain* minúsculos intactos.
  • Remove os aliases legacy Chatwoot / Chatwoot Trigger.
  • Remove a Platform API (contas, usuários da plataforma, banners globais, agent bots da plataforma) e a credencial Platform: conta só se cria/suspende pelo ERP. Feito em src/nodes/NexaChat/NexaChat.node.ts, que estende o node do upstream e lê a lista de recursos Platform da própria definição dele.
  • Texto de contexto pra agentes de IA (n8n MCP/AI Builder) reescrito sem citar MEGA/Chatwoot.
  • Valores de API (whatsapp_waha, rotas etc.) ficam intactos — o comportamento é idêntico ao original.

Licença

MIT. Derivado de @clubmega/n8n-nodes-mega (MIT) —
licença original em upstream/LICENSE.upstream.md (copiada para dist/).

Discussion