Agente comercial premium para WhatsApp via Zappfy, CRM operacional completo
Agente comercial para WhatsApp via Zappfy com CRM completo: prospecção, disparos inteligentes, follow-up automático, qualificação de leads, pipeline de vendas e histórico auditável, em conformidade com a LGPD e o CDC.
whatsapp-zappfy-grupos
CRM operacional via WhatsApp. Não é disparador. É o canal comercial inteiro: dispara, recebe, classifica intenção, qualifica BANT, dispara follow-up multi-toque, gerencia pipeline 7 estágios, calcula forecast ponderado, audita abandonados, enriquece com contexto externo, gera relatório executivo. Tudo persistido em SQLite local — auditável 6 meses depois.
Produto Bravy / ASV Digital — uso comercial liberado pra clientes ASV.
Para quem é
Negócio que vende mid/high ticket via WhatsApp e hoje:
- Não vê quem respondeu o quê (perde lead quente porque ninguém viu)
- Esquece de fazer follow-up no D+3 e D+7 (lead esfria)
- Dispara pra quem já pediu opt-out (multa LGPD na esquina)
- Não consegue dizer pro sócio quanto vai faturar mês que vem só com WhatsApp
Custo de ferramentas equivalentes (HubSpot + ManyChat + Calendly + cadência): R$ 800-2.500/mês. Este pacote: comprou uma vez, roda no seu Mac/VPS.
21 capacidades em 4 camadas
Camada 1 — DISPARO
| # | Capacidade | Comando |
|---|---|---|
| 1 | Listar grupos com role admin/membro | disparo.py listar |
| 2 | Extrair leads (E.164 + dedup + hash SHA-256) | extrair_leads.py --dedup |
| 3 | Segmentar leads (DDD/grupos/admin/blacklist) | segmentar_leads.py |
| 4 | Broadcast em GRUPOS com mention + jitter + retry | disparo.py broadcast |
| 5 | X1 (1:1) personalizado com {{placeholders}} |
disparo.py x1 |
| 6 | Agendamento (broadcast OU x1) | disparo.py agendar |
| 7 | A/B test com z-test 95% | ab_test.py split + apurar |
Camada 2 — INBOX (NOVA)
| # | Capacidade | Comando |
|---|---|---|
| 8 | Pull/watch de mensagens recebidas | inbox.py pull / watch |
| 9 | Webhook HTTP pra Zappfy (tempo real) | inbox.py webhook --port 8765 |
| 10 | Classificador 8 intents (sem ML, regex+heurística) | intent.py (auto) |
| 11 | Auto-triage: opt_out→blacklist, agendamento→Calendly, interessado→SQL | inbox.py triage |
Camada 3 — CRM (NOVA)
| # | Capacidade | Comando |
|---|---|---|
| 12 | Banco SQLite local (7 tabelas) | db.py (auto) |
| 13 | Qualificação BANT/SPIN comprimida em 3 perguntas | qualificar.py start + parse |
| 14 | Cadência multi-toque D+0..D+30 (4 built-in + custom) | followup.py enroll + fire-once |
| 15 | Pipeline kanban 7 estágios | pipeline.py show |
| 16 | Forecast ponderado por probabilidade × ticket | pipeline.py forecast |
| 17 | Funil com taxa de conversão estágio a estágio | pipeline.py funnel |
| 18 | Audit de leads abandonados (sem touch há N dias) | pipeline.py audit |
Camada 4 — CONTEXTO (NOVA)
| # | Capacidade | Comando |
|---|---|---|
| 19 | Enrich CSV/Google Sheets/JSON cruzando por phone | contexto.py enrich |
| 20 | Fetch HTML (página web) → contexto pro lead | contexto.py fetch-html |
| 21 | Relatório executivo (single OU semanal) | relatorio.py --log / --week |
Fluxo do dia comercial — exemplo real
Pré-requisitos
- Conta Zappfy com instância conectada (token UUID).
- Python 3.8+ (zero dependências externas — só stdlib).
- Claude Code logado (recomendado, mas opcional — todos comandos rodam via CLI puro).
- (Opcional) Conta Calendly ou Cal.com pra agendamento automático.
Instalação rápida
Uso via Claude Code (linguagem natural)
Arquitetura técnica
- 13 scripts Python sem dependências externas (stdlib pura:
urllib,sqlite3,csv,json,re,argparse,http.server). - SQLite local (
data.db) com 7 tabelas:leads,touches,inbox,conversations,followup_jobs,pipeline_events,campaigns. Schema versionado. - Camada de proteção: jitter ±20%, retry 3x backoff exponencial, blacklist persistente cross-canal, dedup cross-grupo, health-check obrigatório >50 destinos, validação E.164 BR com DDDs válidos, hash SHA-256 dos números.
- Logs estruturados (
timestamp|number|kind|status|err) auditáveis pra LGPD. - Claude Code agent que mapeia linguagem natural → comando CLI exato.
Limites operacionais (decoradinho)
| Métrica | Grupos | X1 (1:1) |
|---|---|---|
| Volume/min | 40-50 | 25-30 |
| Volume/h | 200 | 150 |
| Volume/dia | 1.500-3.000 | 800-1.500 |
| Delay mín | 30s | 45s |
| Delay padrão | 60s ±20% | 75s ±20% |
mentionEveryone |
sim | n/a |
| Personalização obrigatória | não | sim ({{first_name}} mín) |
Pipeline com forecast
7 estágios com probabilidade (configurável em db.py):
forecast = Σ (leads_no_estagio × probabilidade × ticket_medio)
Cadências built-in
Custom: criar cadencias/<nome>.csv com colunas offset_days,text (suporta \n literal). Operador roda enroll --cadencia <nome>.
Intent classifier — 8 categorias
Sem ML, sem dependência externa — regex + heurística. Self-test: python3 intent.py.
Segurança e LGPD
- Token nunca no código. Sempre
.env. Auditoria automática em scripts. - Lista comprada/raspada = recusa do agente.
- Hash SHA-256 dos números nos CSVs auditáveis.
- Opt-out automático via
opt_outintent + blacklist persistente cross-canal. - Logs estruturados servem como evidência LGPD em caso de denúncia.
.env,data.db,grupos.csv,contatos.csv,blacklist.txt,logs/todos no.gitignore.
Estrutura de arquivos
Comparação com soluções de mercado
| Recurso | Disparador caseiro | RD Station / HubSpot | whatsapp-zappfy-grupos |
|---|---|---|---|
| Disparo grupo + x1 | ✅ | ⚠️ pago | ✅ |
| Personalização placeholder | ❌ | ✅ | ✅ |
| Inbox + classificação | ❌ | ⚠️ pago | ✅ |
| Auto-blacklist por intent | ❌ | ❌ | ✅ |
| Cadência multi-toque | ❌ | ✅ | ✅ |
| Pipeline com forecast | ❌ | ✅ | ✅ |
| Qualificação BANT via WhatsApp | ❌ | ❌ | ✅ |
| Enrich externo (Sheets/JSON) | ❌ | ⚠️ enterprise | ✅ |
| Fetch HTML pra contextualizar | ❌ | ❌ | ✅ |
| Linguagem natural via Claude Code | ❌ | ❌ | ✅ |
| Custo mensal | R$ 0 | R$ 800-2.500 | R$ 0 |
| Self-host / dados próprios | ✅ | ❌ | ✅ |
Suporte
- Email: contato@taffarel.dev
Compatível com
Este módulo está licenciado sob a Licença MIT.