- Nx 22.7 monorepo (pnpm 11.1, TypeScript 5.9, Node 24) - apps/api: NestJS 11 (CJS conforme CODING-RULES.md PGD-DB-004) - apps/web: React 19 + Vite 8 (ESM) - libs/shared/api-interface: Zod contract base - Docker Compose dev: Postgres 18, Valkey 8, MinIO, Mailpit - WDS artifacts: - design-artifacts/A-Product-Brief/ (5 docs canônicos + 16 dialogs) - design-artifacts/B-Trigger-Map/ (hub + 4 personas + feature impact) - Stack canon: STACK.md v2.2 + CODING-RULES.md v2.0 + brand.md - AGENTS.md + README.md como entrada para devs/agentes Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
6.1 KiB
6.1 KiB
Persona — Rafael Representante (PRIMARY)
Phase 2 — Trigger Mapping · Workshop 2-4 Status: PRIMARY persona do MVP — 70-90% do volume de uso Device-target: Mobile-first PWA iOS (Android continua no app legado)
Quem é Rafael
Vendedor B2B externo, 30-50 anos, com 50-200 clientes ativos numa região definida. Comissionado — meta mensal pesa pesado na renda da família. Trabalha no carro, no posto, no escritório do cliente, no fundo da loja. Raramente na frente de um computador. Conhece o setor melhor que o supervisor, mas precisa de ferramenta que respeite essa expertise sem atrapalhar o fluxo.
Dia típico (cenário canônico)
- 6h30 — café em casa, olha agenda do dia no celular ainda na cama
- 7h30 — primeira visita; consulta histórico, comissão acumulada do mês, status de pedidos abertos
- 9h-12h — 3-4 visitas, alguns pedidos lançados na rua (sinal 3G/4G ruim)
- 12h — almoço; revisa funil de propostas, responde WhatsApp de clientes
- 13h-17h — mais visitas; aprovação de desconto sendo trocada no WhatsApp com Sandra
- 17h — para no posto, atualiza CRM, marca check-in da última visita
- 20h — antes de dormir, confere meta do mês e marca visitas de amanhã
O que o motiva (em uma frase)
"Bater meta sem virar máquina."
Driving Forces
✅ Positive forces (motivações, aspirações)
| ID | Force | Descrição | Freq | Int | Fit MVP |
|---|---|---|---|---|---|
| R+1 | Bater meta | Comissão é metade do salário. Saber em tempo real quanto falta para meta é combustível diário. | 5/5 | 5/5 | 5/5 |
| R+2 | Clareza absoluta da carteira | Saber sem pensar: quanto, pra quem, status. Eliminar consulta "preciso ligar pro escritório pra confirmar". | 5/5 | 5/5 | 5/5 |
| R+3 | Ser visto como profissional moderno | Diferenciar-se de reps que ainda andam com talão de papel + WhatsApp. Trabalha com ferramenta de gente grande. | 3/5 | 4/5 | 4/5 |
| R+4 | Autonomia em campo | Não depender do escritório para decisões simples (preço dentro da alçada, agendar visita, registrar contato). | 5/5 | 4/5 | 5/5 |
| R+5 | Reagir rápido ao cliente | Cliente pediu algo no WhatsApp às 14h32, ter resposta antes de sair do estabelecimento. | 4/5 | 5/5 | 4/5 |
❌ Negative forces (medos, frustrações)
| ID | Force | Descrição | Freq | Int | Fit MVP |
|---|---|---|---|---|---|
| R-1 | Cliente esfria e ele não vê | Cliente top deixou de comprar há 47 dias e ele descobre tarde, perdeu o timing. | 3/5 | 5/5 | 5/5 |
| R-2 | Levar bronca por algo que já sabia | Supervisor cobra um cliente que ele "deveria ter visitado" — informação que ele dizia que estava no WhatsApp. | 4/5 | 4/5 | 4/5 |
| R-3 | Perder pedido por bug ou sem sinal | Lança pedido R$ 8 mil, sem sinal, app trava, pedido some. Crítico — esse é P0 absoluto do MVP. | 2/5 | 5/5 | 5/5 |
| R-4 | Comissão é mistério até fim do mês | Calcula em Excel próprio "pra não confiar cego". Estresse mensal evitável. | 5/5 | 4/5 | 5/5 |
| R-5 | Ferramenta lenta no 3G/4G ruim | Fica esperando tela carregar enquanto cliente espera resposta. Frustração diária. | 4/5 | 5/5 | 5/5 |
| R-6 | WhatsApp informal pra tudo | Cliente troca número de WhatsApp, anota no papel; supervisor não sabe; perde-se. | 4/5 | 3/5 | 4/5 |
| R-7 | Ser substituível | Receio existencial — se a ferramenta sabe tudo do cliente, qualquer um pode vender no lugar dele. (⚠️ tensão a respeitar — produto não pode parecer espião) | 2/5 | 4/5 | N/A (não-feature) |
Score consolidado (Freq × Int × Fit)
Top 5 forces de Rafael (driving forces de alto impacto):
| Rank | Force | Score |
|---|---|---|
| 1 | R+1 Bater meta | 125 |
| 1 | R+2 Clareza da carteira | 125 |
| 3 | R-5 Lentidão no 3G/4G ruim | 100 |
| 3 | R+4 Autonomia em campo | 100 |
| 3 | R-4 Comissão é mistério | 100 |
Features que respondem às forças de Rafael
| Force | Feature SAR que responde |
|---|---|
| R+1 Bater meta | Gauge de meta em tempo real no painel + indicador no header em qualquer tela |
| R+2 Clareza da carteira | Visão 360° do cliente (timeline, histórico, contatos, pedidos, comissão por cliente) |
| R+3 Profissional moderno | UX moderna PWA (diferencial vs concorrentes legados) |
| R+4 Autonomia em campo | Lançamento de pedido offline com sync + alçada de desconto local |
| R+5 Reagir rápido | WhatsApp nativo no app + Share API para encaminhar orçamento |
| R-1 Cliente esfria | Alerta proativo de inativos (>60 dias) com IA ranking |
| R-2 Levar bronca | Timeline do cliente mostra última visita; agenda+check-in GPS |
| R-3 Perder pedido | IndexedDB queue + Idempotency-Key (offline robusto, P0 absoluto) |
| R-4 Comissão mistério | Comissão visível em tempo real (calculada por pedido, FLEX rateado) |
| R-5 Lentidão 3G | PWA com Service Worker + cache agressivo + lazy load |
| R-6 WhatsApp informal | Contatos centralizados no cadastro de cliente + WhatsApp linkado |
O que NÃO fazer (anti-padrões pra Rafael)
- ❌ Forçar Rafael a abrir desktop para consulta básica
- ❌ Onboarding longo no primeiro login (carro/posto: tem 30s, não 30 min)
- ❌ Notificações push para tudo (Rafael odeia ruído quando está com cliente)
- ❌ Dashboards "executivos" no painel do rep — ele quer ação, não relatório
- ❌ Gamificação ranking público (R-7 risco existencial — sem leaderboard "rep do mês")
- ❌ Tela cheia de gráficos antes de chegar no que ele precisa fazer
Métricas de adoção (entradas em Phase 3 — Success Criteria)
- % pedidos lançados pelo SAR vs paralelo (WhatsApp/papel): > 95% após 60 dias
- Tempo médio de lançamento de pedido: < 60 segundos
- DAU/MAU: > 70% (uso diário)
- NPS dos reps: > 30 (reps são duros — 30 já é bom)
- Pedidos perdidos por bug/sync: 0 (P0 absoluto)
Citações canônicas (servem de North Star em UX writing)
"Sem sinal. Envio depois."
"Meta de junho: faltam R$ 12.400."
"OPENFRIOS não compra há 47 dias. Visite ou ligue."