Registro rápido do dia
Funil de prospecção
Follow-ups
próximos contatosFila do dia
ligar agoraRascunho
| Empresa | Decisor | Canal | Status | Estágio | Pesquisa | Valor | Follow |
|---|
Como usar este painel
Três telas, um ritmo. O painel foi desenhado em volta do seu método de prospecção, não o contrário.
- Hoje é o cockpit do telefone. Antes de discar, sua meta diária está no topo:
100 ligações → 50 conexões → 20 decisores → 5 reuniões marcadas → 4 realizadas → 3 vendas. A cada atividade, clique no+do contador. O funil abaixo mostra suas taxas de conversão reais contra o método. - Pipeline é onde cada lead vive. Arraste o card entre as colunas conforme ele avança: Pesquisa, Prospecção, Decisor, Reunião marcada, Reunião realizada, Cliente. Use as setas do card se preferir não arrastar.
- Leads é a lista completa, com a ficha e o checklist de pesquisa individual (CNPJ, sócios, capital social e presença digital nos 5 pontos do método).
O checklist de pesquisa
Cada lead carrega 5 marcadores de presença digital: site, social media, anúncio Meta, anúncio Google e Google Meu Negócio. Eles aparecem como cinco quadradinhos na lista. Quanto menos verde, mais buraco digital, mais espaço para a Nettu's entrar.
Honestidade dos dados
Os contadores de atividade começam em zero, porque número de prospecção não se inventa. As metas (100 / 50 / 20 / 5 / 4 / 3) são as do método do Rugido.
Status do banco de dados
O painel está conectado ao Supabase. Todos os leads, atividades e metas são salvos e lidos do banco em tempo real.
Supabase · xwnkmzrycvcwwoqnzulbPasso 1 — Criar as tabelas (obrigatório)
Se o painel está dando erro ao carregar ou ao salvar, as tabelas ainda não existem. Acesse Supabase → SQL Editor → New query, cole o SQL abaixo e clique em Run.
-- ═══════════════════════════════════════════
-- NETTU'S · Criar tabelas
-- Execute no Supabase → SQL Editor → Run
-- ═══════════════════════════════════════════
-- 1. Leads
create table if not exists leads (
id uuid primary key default gen_random_uuid(),
criado_em timestamptz default now(),
empresa text not null,
decisor text,
cargo text,
canal text,
telefone text,
segmento text,
capital_social text,
estagio text default 'pesquisa',
valor_potencial numeric default 0,
proximo_follow date,
canal_follow text,
obs text,
tem_site boolean default false,
faz_social boolean default false,
anuncia_meta boolean default false,
anuncia_google boolean default false,
gmn_ok boolean default false
);
-- 2. Atividades diárias (uma linha por dia)
create table if not exists atividades (
data date primary key,
ligacoes int default 0,
conexoes int default 0,
decisores int default 0,
reunioes_marcadas int default 0,
reunioes_realizadas int default 0,
vendas int default 0
);
-- 3. Metas (linha única — id = 1)
create table if not exists metas (
id int primary key,
ligacoes int default 100,
conexoes int default 50,
decisores int default 20,
reunioes_marcadas int default 5,
reunioes_realizadas int default 4,
vendas int default 3
);
-- Inserir metas padrão (só executa se a linha não existir)
insert into metas (id, ligacoes, conexoes, decisores, reunioes_marcadas, reunioes_realizadas, vendas)
values (1, 100, 50, 20, 5, 4, 3)
on conflict (id) do nothing;
-- ═══════════════════════════════════════════
-- FASE 1.1 · Migração (rode se as tabelas já existem)
-- ═══════════════════════════════════════════
-- Status de tentativa nos leads
alter table leads add column if not exists status_tentativa text default 'A contatar';
-- Timeline de anotações
create table if not exists anotacoes (
id uuid primary key default gen_random_uuid(),
lead_id uuid references leads(id) on delete cascade,
tipo text default 'geral',
texto text not null,
criado_em timestamptz default now()
);
-- Canal WhatsApp nas atividades diárias
alter table atividades add column if not exists wpp_disparos int default 0;
alter table atividades add column if not exists wpp_enviados int default 0;
alter table atividades add column if not exists wpp_respostas int default 0;
alter table atividades add column if not exists wpp_decisores int default 0;
alter table atividades add column if not exists wpp_reunioes_marcadas int default 0;
alter table atividades add column if not exists wpp_reunioes_realizadas int default 0;
alter table atividades add column if not exists wpp_vendas int default 0;
-- Metas do canal WhatsApp
alter table metas add column if not exists wpp_disparos int default 200;
alter table metas add column if not exists wpp_enviados int default 150;
alter table metas add column if not exists wpp_respostas int default 50;
alter table metas add column if not exists wpp_decisores int default 20;
alter table metas add column if not exists wpp_reunioes_marcadas int default 5;
alter table metas add column if not exists wpp_reunioes_realizadas int default 4;
alter table metas add column if not exists wpp_vendas int default 3;
Passo 2 — Ativar RLS (login) — opcional por enquanto
Quando quiser trancar o painel com login por e-mail, rode o SQL abaixo no Supabase (SQL Editor) e depois ative a autenticação por Magic Link ou senha em Authentication → Providers.
-- Ativa proteção por linha (RLS)
alter table leads enable row level security;
alter table atividades enable row level security;
alter table metas enable row level security;
-- Permite acesso só para usuários autenticados
create policy "dono" on leads
for all using (auth.role() = 'authenticated');
create policy "dono" on atividades
for all using (auth.role() = 'authenticated');
create policy "dono" on metas
for all using (auth.role() = 'authenticated');
Sistema de design
Este painel segue o manual da marca à risca. A regra 60/30/10:
Tipografia: Fraunces nos títulos, Nunito no corpo, JetBrains Mono nos rótulos e números.