Skip to content

About

Sistema organizacional de disparo em massa no WhatsApp com confiança e credibilidade — API Oficial (Meta Cloud API), desenhado para ser replicado.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

10 Commits

Folders and files

Repository files navigation

WhatsFlow Engine

WhatsFlow Engine

Sistema organizacional de disparo em massa no WhatsApp com confiança e credibilidade, construído sobre o uso primário da API Oficial do WhatsApp (Meta Cloud API) e desenhado para ser replicado.

tests license release PRs idioma stack

Criado e mantido por Luiz Henrique (@luizxhgomes)


Visão geral

O WhatsFlow Engine é um SaaS single-tenant completo de automação de marketing e atendimento no WhatsApp. Ele resolve o problema central do disparo em massa: fazer campanhas em escala sem queimar o número, sem banimento e sem gambiarras, porque toda a comunicação passa exclusivamente pela API Oficial do WhatsApp (Meta Cloud API), nunca por bibliotecas não-oficiais de engenharia reversa.

O que o torna interessante como referência de construção de sistema é a orquestração ponta a ponta: fila durável com QStash, throttling adaptativo por qualidade de número, templates aprovados pela Meta, rastreio de status por mensagem (enviada, entregue, lida, falhou) e um workflow builder visual para jornadas conversacionais. A camada de IA (Vercel AI SDK v6, multi-provider) responde conversas no inbox com memória persistente.

A qualidade é garantida por mais de 3.500 testes (Vitest + Playwright), lint estrito e CI. A arquitetura segue um padrão único e auditável em todas as features: Page → Hook → Service → API Route.

O sistema foi desenhado para ser replicado: um installer automático provisiona Supabase e Vercel, e o guia de setup cobre do app da Meta ao deploy.

git clone https://github.com/luizxhgomes/whatsflow-engine.git
cd whatsflow-engine/app
cp .env.example .env   # preencha as credenciais
npm install && npm run dev

Por que API Oficial (confiança e credibilidade)

Pilar Como o engine implementa
Zero engenharia reversa 100% Meta Cloud API. Sem Baileys, sem web-scraping, sem risco de ban por protocolo.
Templates aprovados Ciclo completo de criação, submissão e aprovação de templates HSM direto pela Meta.
Qualidade de número Throttling adaptativo (WHATSAPP_ADAPTIVE_*): a taxa de envio reage ao rating de qualidade do número.
Opt-in e rastreabilidade Contatos com origem rastreada, import CSV validado, status por mensagem via webhooks assinados (HMAC).
Rate limits respeitados Fila durável QStash com concorrência configurável e retry com backoff.

Arquitetura do disparo

%%{init: {'theme':'base','themeVariables':{
  'background':'#0B141A','primaryColor':'#0F2620','primaryTextColor':'#E9EDEF',
  'primaryBorderColor':'#25D366','lineColor':'#00A884','secondaryColor':'#075E54',
  'tertiaryColor':'#111B21','fontSize':'15px','edgeLabelBackground':'#0B141A',
  'clusterBkg':'#111B21','clusterBorder':'#128C7E'}}}%%
flowchart LR
    subgraph ORQ[" Orquestração "]
        A["Campanha<br/>criada"] --> B["Fila durável<br/>QStash"]
        W["Flows: jornadas<br/>automatizadas<br/>(workflow builder)"] --> B
        B --> C{"Throttling<br/>adaptativo"}
    end
    subgraph ENV[" Envio pela API Oficial "]
        C --> D["Meta Cloud API"]
        D --> E["WhatsApp<br/>do contato"]
    end
    subgraph FBK[" Feedback loop "]
        D --> F["Webhook de status<br/>assinado HMAC"]
        F --> R[("Redis: memória quente<br/>dedup de eventos ·<br/>última mensagem ·<br/>cache de settings")]
        R --> G[("Supabase<br/>fonte da verdade")]
        G --> H["Métricas por mensagem<br/>enviada · entregue · lida · falhou"]
    end
    E -.->|"resposta do contato (inbound)"| W
    H -.->|"qualidade do número regula a taxa"| C

    style A fill:#111B21,stroke:#128C7E,color:#E9EDEF
    style B fill:#0F2620,stroke:#25D366,color:#E9EDEF
    style C fill:#075E54,stroke:#57D163,color:#FFFFFF
    style W fill:#075E54,stroke:#57D163,color:#FFFFFF
    style D fill:#128C7E,stroke:#57D163,color:#FFFFFF
    style E fill:#0F2620,stroke:#25D366,color:#D9FDD3
    style R fill:#111B21,stroke:#00A884,color:#E9EDEF
    style F fill:#111B21,stroke:#00A884,color:#E9EDEF
    style G fill:#111B21,stroke:#00A884,color:#E9EDEF
    style H fill:#0F2620,stroke:#25D366,color:#D9FDD3
Loading

Três engrenagens sustentam o desenho:

  • Laço de credibilidade (tracejado inferior): as métricas de qualidade do número realimentam o throttling, o sistema desacelera sozinho antes de comprometer a reputação do número.
  • Memória quente no Redis: cada evento de webhook passa pelo dedup (SET NX com TTL), a última mensagem de cada conversa fica em ai:lastmsg:* para o debounce da IA responder com contexto fresco, e as settings ganham cache com TTL. O Supabase permanece a fonte da verdade; o Redis é a camada de velocidade.
  • Flows (jornadas automatizadas): o workflow builder visual (React Flow) constrói jornadas que reagem à resposta do contato (inbound) e reentram na fila de envio, com estado de conversa persistido em workflow_conversations.

Padrão de código em todas as features:

Page (App Router) → Hook (estado/TanStack Query) → Service (regra de negócio) → API Route (integração)

Estrutura do repositório

whatsflow-engine/
├── app/                      # o sistema (Next.js 16)
│   ├── app/                  #   34 páginas + 217 rotas de API
│   ├── components/ hooks/ services/ lib/   # camadas (ver abaixo)
│   ├── supabase/migrations/  #   schema (35+ tabelas, 7 domínios)
│   └── infra/                #   Docker, VPS, deploy
└── docs/
    ├── architecture/         # ADRs + TOPOLOGIA.md (documento único de topologia)
    ├── setup/                # replicação passo a passo
    └── prd/ epics/ stories/  # metodologia story-driven

Topologia completa (física, lógica, execução, dados e replicação): docs/architecture/TOPOLOGIA.md

Componentes

Componente Quantidade
Rotas de API 217
Páginas (App Router) 34
Componentes React 444
Hooks 61
Migrations Supabase 10
Arquivos de teste 114 (3.500+ testes)

Funcionalidades: inbox de atendimento com visual WhatsApp Business, campanhas em massa com métricas, contatos + import CSV, templates HSM com preview fiel, workflow builder visual (React Flow), installer automático (Supabase + Vercel), diagnóstico da integração Meta, push notifications, IA multi-provider com memória.

Stack

Next.js 16 (App Router, Turbopack) · React 19 · TypeScript 5.7 · Supabase (Postgres + Auth + Storage) · Upstash QStash + Redis · Meta WhatsApp Cloud API · Vercel AI SDK v6 (Anthropic, OpenAI, Google) · Tailwind 4 + Radix/shadcn · Vitest + Playwright.

Replique em 30 minutos

  1. Supabase: crie um projeto e rode as migrations de app/supabase/migrations/.
  2. Meta: crie um app WhatsApp Business, conecte o WABA, gere token permanente e configure o webhook (guia em docs/setup/).
  3. Upstash: crie o QStash e o Redis, copie tokens.
  4. Variáveis: cp app/.env.example app/.env e preencha.
  5. Deploy: Vercel (recomendado) ou Docker/VPS (app/infra/). O installer embutido (/api/installer) automatiza o provisionamento.

Guias completos: docs/setup/README.md · docs/guides/ · app/infra/DEPLOY-GUIDE.md

Segurança e garantias

Três documentos sustentam o lema do sistema, escritos a partir de auditoria do código real:

A jornada completa de implantação white-label vive em docs/onboarding/: 5 fases com gates verificáveis, do install à operação contínua, mais o roadmap estratégico priorizado.

Metodologia

Desenvolvimento story-driven: PRD → epics → stories com acceptance criteria → implementação → QA gate. Os artefatos reais estão versionados em docs/prd/, docs/epics/ e docs/stories/ como registro do método.

Regras inegociáveis

  1. Somente API Oficial da Meta, nenhuma dependência de protocolo não-oficial.
  2. Nenhum segredo no repositório, tudo via variáveis de ambiente (.env.example documenta o contrato).
  3. Disparo responsável, throttling, opt-in e templates aprovados não são opcionais.
  4. Todo código novo entra com teste.

Contribuindo

Veja CONTRIBUTING.md. Issues e PRs são bem-vindos.

Licença

MIT. WhatsApp e Meta são marcas de seus respectivos donos; este projeto não representa afiliação oficial com a Meta.

Autor

Luiz Henrique, engenharia de sistemas de IA e automação · @luizxhgomes

About

Sistema organizacional de disparo em massa no WhatsApp com confiança e credibilidade — API Oficial (Meta Cloud API), desenhado para ser replicado.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages