Cadastro
Clientes
Guia rapido — Novo cliente no portal
-
1Criar cliente
Preencha o formulario abaixo. Campos obrigatorios: Slug (identificador unico, ex: technova) e Nome.
↓ Formulario abaixoVer detalhes
- Slug: identificador unico sem espacos (ex:
technova,clinica-viva) - Nome: nome exibido no portal (ex: "Joao Silva")
- Empresa/Segmento: aparecem no dashboard do admin
- E-mail: para contato e login (se marcar o checkbox)
- Marque "Criar acesso ao portal" → gera login + projeto + vinculo automaticamente
- Defina uma senha de pelo menos 8 caracteres para o cliente
- Slug: identificador unico sem espacos (ex:
-
2Criar projeto
Vincule um projeto ao cliente. Um cliente pode ter varios projetos (diagnostico, implementacao, etc).
Clique para ir → ProjetosVer detalhes
- Cliente: selecione no dropdown (precisa criar primeiro no passo 1)
- Slug: identificador do projeto (ex:
diag-2026,impl-comercial) - Nome: ex: "Diagnostico + Implementacao — TechNova"
- Status: active, paused, completed, cancelled
- Saude: on_track, at_risk, blocked, off_track
- Datas: inicio e fim estimado do projeto
Se voce marcou "Criar acesso ao portal" no passo 1, o projeto ja foi criado automaticamente.
-
3Vincular usuario ao portal
Se nao usou o checkbox automatico, crie o auth user e vincule ao cliente + projeto.
↓ Secao "Portal — vinculo" abaixoVer detalhes
- Na secao "Portal — vinculo" abaixo nesta pagina
- Criar Auth User: preencha e-mail + senha → gera UUID do usuario
- Vincular: selecione o UUID, o cliente e o projeto → cria o acesso
- Sem este vinculo, o cliente ve "portal sendo preparado" ao logar
-
4Definir PIN de aprovacao
PIN de 6 digitos que o cliente digita para aprovar diagnostico e entregaveis.
↓ Secao "PIN de aprovacao" abaixoVer detalhes
- Role ate a secao "PIN de aprovacao" nesta pagina
- Selecione o cliente, digite o PIN 2 vezes e clique "Gravar PIN"
- O PIN e armazenado como hash bcrypt — ninguem ve o valor real
- Comunique o PIN ao cliente por canal seguro (WhatsApp, ligacao)
- Exemplo:
482916— evite sequencias obvias como 123456
-
5Preencher conteudo do portal
O conteudo que o cliente ve no portal vem do campo
portal_content.payload(JSON).Clique para ir → Portal do ClienteVer detalhes — estrutura do JSON
Selecione o projeto na barra superior antes. O JSON aceita estas chaves:
- project:
name, currentPhase(onboarding/diagnosis/implementation/maintenance/evolution),currentPath, contractDate, scope - project.phases[]:
{ key, label, status: "done"|"current"|"pending", date } - project.currentSprint:
{ number: 2, total: 4, label: "Sprint 2 de 4" } - metrics:
roi { value, estimated, unit:"x" }, monthlySavings { value, estimated, unit:"R$", delta, direction }, hoursRecovered, conversionRate, responseTime - diagnosis:
status(pending/published/approved),publishedDate, summary, problems[], opportunities[], totalRoi, recommendation - nextSteps:
nextSprint { number, title, startDate, endDate, items[{ title, done }] }, pendencies[{ title, dueDate, status }] - meetings[]:
{ id, type, date, duration, platform, summary, decisions[], transcript[] } - activity[]:
{ date, time, type: "update"|"delivery"|"meeting"|"approval"|"milestone", title, description } - monthlyReport:
month, systems[], metricsComparison[{ label, before, after, delta }], adjustments[], nextMonth { focus, items[] } - notifications[]:
{ id, type, title, body, date, read } - tools[]:
{ name, type: "ia"|"automacao"|"integracao", status }
Hoje o conteudo e editado direto no SQL (Supabase SQL Editor) ou via "Notas para o portal". Evolucao futura: editor visual no admin.
- project:
-
6Adicionar entregaveis
Cada entrega que o cliente pode aprovar ou solicitar ajuste.
Clique para ir → EntregaveisVer detalhes
- Selecione o projeto na barra superior antes
- Tipo (kind): ia, automacao, dados, integracao, processo
- Sprint: numero do sprint (1, 2, 3...)
- Status: pending → in-review → approved / needs-adjustment
- Arquivo: upload opcional (vai para Storage, cliente baixa com URL assinada)
- O cliente ve os entregaveis na aba "Entregaveis" do portal
- Para aprovar, o cliente precisa digitar o PIN do passo 4
Pronto! Envie ao cliente: URL do portal + e-mail + senha + PIN de aprovacao.
Seguranca — chave service_role no navegador
Novo cliente
| ID | Nome | Empresa | Segmento | Status | Acoes |
|---|
Contatos
Contatos do cliente selecionado
| Nome | Cargo | Telefone | Principal | Acoes |
|---|
Portal — vinculo de usuario
Crie o login no Auth por aqui (com service_role) ou cole o UUID de
Authentication → Users. Depois vincule ao cliente e projeto.
Novo usuario no Supabase Auth
Crie o login do cliente. Passe o e-mail e senha para ele por WhatsApp. O cliente acessa o portal e entra com e-mail + senha.
| User ID | Cliente | Projeto | Project UUID | Acoes |
|---|
PIN de aprovacao
PIN de 6 digitos para acoes sensiveis no portal (aprovar entregaveis, diagnostico). O valor nunca e guardado em texto — so hash bcrypt no Postgres, via funcao dedicada.
set_client_portal_pin nao e exposta a usuarios do
portal. Se o salvamento falhar, aplique a migration
20250411130000_set_client_portal_pin.sql no SQL Editor.
Dashboard
Visao geral do cliente
Selecione um cliente na barra superior para ver o dashboard.
Empresa
—
Responsavel
—
Segmento
—
Plano
—
Status
—
Estagio do projeto
—
Owner interno
—
Data de entrada
—
Ultima atividade
—
Documentos
0
Dados coletados
0
Analises
0
Entregaveis
0
Tarefas pendentes
0
Pendencias
Atividade recente
Alertas
Gestao
Documentos
Upload de documento
Documentos do cliente
| Arquivo | Categoria | Tamanho | Status | Importante | Data | Acoes |
|---|
Gestao
Dados coletados
Adicionar dado
Formularios de intake
Dados do cliente
| Chave | Label | Valor | Origem | Data | Acoes |
|---|
Inteligencia
Analises e recomendacoes
Nova analise
Analises do cliente
| Titulo | Tipo | Status | Prioridade | Criada em | Acoes |
|---|
Nova recomendacao
Recomendacoes
| Titulo | Analise | Impacto | Esforco | Status | Acoes |
|---|
Portal
Mensagem ao cliente
Escolha o projeto no topo da tela. O texto abaixo aparece na visão geral do portal (texto simples, sem HTML). Dados avançados continuam em payload no banco — veja ADMIN_TO_CLIENT_DATA.md.
Notas para o portal
Campo adminNotes em portal_content.payload.
OpenClaw
Copie o contexto e cole no chat do gateway, ou envie pela API HTTP do gateway (CORS exige headers no Nginx se o admin for de outra origem).
Opcional: em kaffra-admin-config.local.js defina openClawBaseUrl — gateway local http://127.0.0.1:18789 ou, na VPS, https://openclaw.seudominio.com (TLS + proxy) —,
openClawToken se o gateway exigir Bearer, openClawSessionKey para amarrar a sessão (Telegram etc.), e habilite POST /v1/responses no OpenClaw.
Guia: docs/portal-production/OPENCLAW.md.
Entregaveis
Pipeline de entregas
Entregaveis
Cada linha vira um card no portal. IDs estaveis (del_001…) evitam links quebrados. Status e
kind sao validados antes de gravar.
| ID | Tipo | Titulo | Sprint | Status | Acoes |
|---|
Execucao
Projetos e tarefas
Projetos
| Nome | Cliente | Status | Saude | Inicio | Fim | Acoes |
|---|
Tarefas
| Titulo | Projeto | Status | Prioridade | Prazo | Acoes |
|---|
Sistema
Usuarios e acessos
Usuarios do portal
| User ID | Cliente | Projeto | Criado em | Acoes |
|---|
Permissoes
Gerenciamento de roles e permissoes por usuario — em desenvolvimento.
Modulo de permissoes sera implementado em breve.
Sistema
Log de atividade
| Data | Usuario | Acao | Entidade | Detalhes |
|---|