# CRM Minimo — Memoria do Bot

Bot WhatsApp sem CRM = bot que pergunta o mesmo dado 3x e perde lead. Esta pasta define o CRM minimo embutido no projeto gerado.

## Docs (status Fase 2)

| Doc | O que cobre | Fase |
|---|---|---|
| `lead-schema.md` | Schema Zod do lead (campos minimos + opcionais por nicho) | ⏳ Fase 2 |
| `estagio-funil.md` | Estagios padrao (novo → em_qualificacao → qualificado → handoff → cliente → opt_out) | ⏳ Fase 2 |
| `historico-conversacao.md` | Como guardar e usar historico no context window do Claude/Gemini | ⏳ Fase 2 |

## Stack

- **Evolution runtime:** SQLite (better-sqlite3) — simples, single-file, suficiente pra <50k leads
- **Cloud API runtime:** Postgres (drizzle ORM) — escalavel, multi-instancia

## Tabelas minimas

```
leads
├── id, telefone, nome
├── estagio (enum)
├── primeiro_contato_at, ultimo_contato_at
├── origem (utm + tipo_conversa)
├── dados_qualificados (jsonb)
├── consentimento_lgpd (boolean + timestamp)
├── opt_out (boolean + timestamp + motivo)
└── handoff_humano (boolean + timestamp + atendente)

mensagens
├── id, lead_id, direcao (in/out), conteudo, tipo (text/audio/img)
├── transcricao_audio (se aplica)
├── created_at
└── ai_provider (claude/gemini/none)

variaveis_capturadas
├── id, lead_id, chave, valor, capturado_at
└── (separado de leads.dados_qualificados pra historico)
```

## Por que importa

CRM minimo permite:
1. **Memoria** — bot reconhece lead retornando ("vi que voce ja conversou comigo semana passada")
2. **Continuidade** — se lead some no meio, bot retoma de onde parou
3. **Handoff** — humano recebe contexto completo
4. **Anti-repetir** — bot nao pergunta o que ja sabe
5. **Analytics** — `modos-pos-construcao/otimizacao-mensal.md` precisa desses dados
6. **LGPD** — controle de consentimento e opt-out

## Validador relacionado

Nao tem validador especifico do CRM em si — mas `compliance-lgpd.md` checa se o schema tem consentimento_lgpd e opt_out.
