vek1 — domínio e modelo de negócio
Domínio e modelo de negócio
Produto
SaaS multi-tenant pra criar e operar agentes de IA conectados ao WhatsApp, voltado a PMEs. Pós-PR #50, fecha pedido end-to-end: cliente WhatsApp → agente vende → cria order → PIX (AbacatePay ou manual) ou pagamento na entrega → lojista despacha.
Fluxo do usuário-empresa
- Cadastra (
/register) → Better Auth criauser+account(password hash bcrypt) + auto-sign-in - Cria company via
/internal/company/ensure - Cria store (catálogo)
- Importa produtos via CSV (wizard 7 steps) → embeddings via bge-m3
- Anexa documentos como KB (texto livre, PDF, CSV)
- Cria agente vinculando KB + persona (system_prompt, voice_tone) + canais (website/whatsapp)
- Conecta WhatsApp via QR Code (
/agents/[id]/settings→ cria instância Evolution → escaneia) - Configura pagamento (
/settings): AbacatePay key OU manual PIX OU só COD - Configura stock sync se tem ERP (
/settings): outbound URL + secret - Cliente WhatsApp → agente responde + vende → cria order → cliente paga → loja despacha
- Lojista acompanha tudo em
/orders(realtime SSE),/leads,/dashboard
Tipos de agente
Lista canônica via GET ${VEK1_API_URL}/agents. Tipos atuais:
| Tipo | Preço (landing) | Plano | Característica |
|---|---|---|---|
sales_assistant |
R$ 199/mês | Vendas — Mais Popular | Function calling completo: search_products, get_product_details, filter_products_by_price, create_order, confirm_shipping. Pode rodar sem KB (usa knowledge geral) |
satisfaction_research |
R$ 99 | Pesquisa de Satisfação | KB obrigatória. Sem create_order |
technical_support |
R$ 49 | Suporte Técnico | KB obrigatória. Resposta consultiva |
Modelo: deepseek-chat (todos).
Modelo de billing (planejado, não implementado)
Beta hoje = gratuito. Custos saem do bolso do owner. Spec de billing em pricing-design:
- 3 tiers Stripe: Starter R$79 / Pro R$299 / Business R$899
- Tokens inclusos: 500k / 5M / 30M
- Overage metered: R$ 25 / 18 / 12 por 1M tokens (desce com tier)
- Topup avulso (R$30–5k) com bônus 50% na primeira carga ever
- Cap próprio de overage em R$ + toggle auto-overage
- Sem gating de channels (WhatsApp + website em todos)
Não implementado. Schema tem agents.stripe_product_id zumbi.
AbacatePay vs Stripe — separação de gateways
| Gateway | Quem cobra quem | Escopo |
|---|---|---|
| Stripe (futuro) | vek → lojista | Subscription mensalidade + overage + topup |
| AbacatePay (ativo) | lojista → cliente final | PIX nas orders criadas pelo agente |
Token Stripe no env do vek1-api. Token AbacatePay por store (store_payment_settings.abacate_pay_api_key). Webhooks separados.
Multi-tenant: modelo
- 1 user = 1 empresa.
better_auth.user.id == company_profiles.id == stores.company_id - 1 company → N stores → N agents → N products/documents/orders/leads
- Sem suporte a multi-user por company ainda (gap conhecido)
- Isolamento via app-level checks no vek1-api (
assert_owns_*), não RLS
Canais
- WhatsApp via Evolution API v2.3.x (1 instância por agente)
- Website widget (
agents.website_enabled— UI consumer ainda não publicada)
Mensagem de bloqueio (planejada)
Quando billing implementado: agente sem cota responde "Posso te conectar com um atendente humano daqui a pouco — nosso agente está temporariamente indisponível." (não diz "fim de cota" — proteção UX do lojista).
Cliente final do lojista (visão dele)
- Manda mensagem no WhatsApp da loja
- Agente responde (consultivo + vende)
- Confirma compra → agente cria order → recebe BR Code PIX ou chave manual ou "pago na entrega"
- Paga (gateway ou manual) → loja confirma → recebe info de envio
Não definido / Gaps comerciais
- Domínio público canônico (vek1.app? vek.ai? — landing usa
vek1.vercel.app) - Footer/legal/termos
- Roadmap público de features (Stripe billing? mobile app?)
- Onboarding humano (kodama agência faz manual hoje?)