Documentação do Pacer Digital
Tudo o que sua clínica precisa para captar leads, atender pelo WhatsApp com IA, gerenciar prontuário digital, odontograma, plano de tratamento e reduzir no-show — em um só lugar.
Visão geral
O CRM Pacer Digital é uma plataforma multi-tenant (uma instalação, várias clínicas) construída em Laravel + Livewire, com integração nativa ao WhatsApp via Evolution API e IA Claude para atendimento automático.
Dashboard
KPIs, funil, próximas consultas, NPS, alertas — tudo em uma tela.
Funil de Vendas
Kanban configurável por clínica. Drag-and-drop entre estágios.
Agenda
Calendário por dia/semana/mês com confirmação automática.
WhatsApp + IA
Chat unificado com IA recepcionista que agenda e qualifica.
Prontuário Digital
Anamnese, odontograma, plano de tratamento e evolução.
Automações
Confirmação, recall, aniversário, NPS — tudo automático.
Relatórios
Conversão, no-show, NPS por dentista, faturamento.
Orçamentos
Itens, parcelas, status. PDF para o paciente.
Primeiros passos
Em ~15 minutos sua clínica fica operacional. Roteiro recomendado:
- Entre com seu usuário em
/login(administrador da clínica recebe credenciais por e-mail). - Em Configurações → Clínica, preencha nome, logo, capa, telefone, endereço. A logo aparece no agendamento mobile e a capa no desktop.
- Em Configurações → Serviços, cadastre cada procedimento (nome, categoria, preço, duração, foto).
- Em Configurações → Profissionais, cadastre os dentistas e sua agenda padrão (dias e horários).
- Em WhatsApp → Conexão, leia o QR Code para conectar o número.
- Em Configurações → Automações, ative as mensagens automáticas (vêm prontas, é só ligar).
- Compartilhe o link público de agendamento
/agendar/{sua-clinica}nas redes sociais.
Contas e papéis
Existem 2 níveis de acesso dentro de uma clínica + 1 nível global.
| Papel | O que pode fazer |
|---|---|
| super_admin | Gerencia todas as clínicas da instalação. Cria/edita/desativa clínicas, troca de contexto entre elas. Não aparece para o cliente final. |
| clinic_admin | Acesso total dentro da própria clínica: configurações, equipe, serviços, automações, relatórios, prontuário, orçamentos. |
| recepção / dentista | Acesso operacional: Leads, Agenda, WhatsApp, Prontuário, Orçamentos. Não vê configurações. |
clinic_id. Um usuário de uma clínica nunca vê dados de outra, mesmo que duas clínicas estejam na mesma instância do CRM.
Dashboard
A tela inicial dá uma visão executiva em 10 segundos. Foi pensada para quem abre o CRM 20 vezes por dia.
O que aparece
- Cards de KPI: leads novos no mês, taxa de conversão, agendamentos da semana, taxa de no-show.
- Funil de conversão: quantos leads estão em cada estágio do Kanban — clicável.
- Próximas consultas: próximas 8 marcações com paciente, dentista, hora.
- Aniversariantes do dia: pacientes com aniversário hoje (a mensagem é disparada automaticamente, mas você vê quem é).
- NPS recente: média dos últimos 30 dias e últimas respostas.
- Recall pendente: pacientes sem retorno há mais de 6 meses (configurável).
Leads & Kanban
O Kanban é o coração do funil. Cada coluna é um estágio configurável; cada cartão é um lead/paciente.
Estágios padrão
| Ordem | Nome | Quando entrar aqui |
|---|---|---|
| 1 | Novo Lead | Acabou de chegar (WhatsApp, site, indicação). |
| 2 | Em Contato | Recepção iniciou conversa, ainda sem horário. |
| 3 | Avaliação Agendada | Tem agendamento futuro (cai aqui automaticamente). |
| 98 | Ganho | Virou paciente ativo — fechou tratamento. |
| 99 | Perdido | Não fechou. Pede motivo da perda. |
Operação
- Drag-and-drop entre colunas. A ordem se mantém.
- Filtros: origem (UTM), tags, dentista, intervalo de data.
- Drawer lateral: ao clicar num cartão abre o painel completo (sem sair da tela).
- Observações & tarefas: cada lead acumula histórico (cada observação é datada e com autor).
- Motivo da perda: obrigatório ao mover para "Perdido" — gera relatório de motivos.
Configurações → Kanban você renomeia, reordena e adiciona/remove colunas. Os de ordem 1, 2, 3, 98 e 99 têm comportamento especial (automações usam esses números) — recomendamos não remover.
Cadastro de pacientes
Lead e paciente são a mesma entidade. Quando alguém marca avaliação, vira "paciente" sem perder o histórico de lead.
Campos principais
- Nome, CPF, RG, data de nascimento, gênero.
- WhatsApp (formato livre — o sistema normaliza para E.164 brasileiro).
- E-mail, endereço.
- Origem (UTM source/medium/campaign) — preenchida automaticamente quando o lead chega pelo agendamento público.
- Dentista responsável, estágio Kanban, tags, observações.
- Convênio (se aplicável).
Tarefas & Observações
Toda interação com o lead pode virar uma tarefa (com prazo e responsável) ou uma observação (texto livre datado). Tudo aparece na timeline do paciente.
- Tarefas vencidas aparecem em vermelho no Kanban e no Dashboard.
- Notificações automáticas quando uma tarefa vence ou é atribuída a você.
- Alerta de inatividade: comando agendado
crm:alert-inactive-leadssinaliza leads sem interação há X dias.
Agendamento público
Cada clínica tem uma página pública de agendamento que pode ser compartilhada nas redes ou embedada no site.
https://crm.pacerdigital.com.br/agendar/{slug-da-clinica}
https://crm.pacerdigital.com.br/agendar/{slug-da-clinica}/{slug-do-profissional}
https://crm.pacerdigital.com.br/embed/agendar/{slug-da-clinica} (modo embed em iframe)
Fluxo (wizard)
- Paciente escolhe serviço (com foto, preço, duração).
- Escolhe profissional (com foto e bio).
- Escolhe dia e horário disponível.
- Preenche nome + WhatsApp + e-mail.
- Recebe confirmação por WhatsApp em segundos (automação booking_confirmation).
?utm_source=instagram&utm_campaign=clareamento à URL — o CRM grava no lead e mostra no relatório de origens.
cancellation_token seguro. O paciente cancela em /agendamento/{token}/cancelar. Ao cancelar, automações pendentes são abortadas e o lead volta ao estágio "Em Contato".
Agenda
Visão de calendário com 3 modos: dia, semana, mês. Cada profissional tem sua coluna.
O que dá pra fazer
- Criar agendamento manual (com paciente novo ou existente).
- Mover (drag) um agendamento para outro horário — automações de confirmação/lembrete são reagendadas.
- Status: pending confirmed completed cancelled no_show
- Marcar como concluído (dispara NPS automático).
- Bloquear horário (almoço, reunião, folga).
Regras de disponibilidade
- Cada profissional define sua agenda padrão (dias da semana × horários).
- O sistema considera duração do serviço ao oferecer slots no agendamento público.
- Conflitos são bloqueados (não é possível dois agendamentos sobrepostos para o mesmo profissional).
- Integração com Google Calendar (ver seção dedicada): eventos importados também ocupam slots.
Prontuário digital
Acessível em /pacientes/{lead}/prontuario. Quatro abas: Anamnese, Odontograma, Plano de tratamento, Evolução clínica.
Anamnese digital
- Queixa principal, histórico médico, alergias, medicações em uso.
- 17 flags de condição: diabetes, hipertensão, gestação, doença cardíaca, hepatite, HIV, tabagismo, etc.
- Tipo sanguíneo, pressão arterial.
- Substitui aquela ficha de papel que o paciente preenche na sala de espera.
Odontograma interativo
Mapa visual da boca clicável. Suporta dentição adulta (32 dentes, FDI 18-48) ou infantil (20 dentes, FDI 51-85).
Status disponíveis
healthy
Saudável (padrão)
caries
Cárie
restored
Restaurado
extracted
Extraído
missing
Ausente
crown
Coroa
implant
Implante
root_canal
Tratamento de canal
planned
Planejado (futuro)
Faces do dente
Cada dente tem 5 faces clicáveis: Mesial (M), Distal (D), Vestibular (V), Lingual (L) e Oclusal/Incisal (O). Você marca uma cárie ou restauração em uma face específica.
Plano de tratamento
Um paciente pode ter vários planos (ex.: "Estético 2026", "Manutenção"). Cada plano tem itens.
Item do plano
- Dente (opcional, número FDI) + face (opcional).
- Serviço (vinculado ao catálogo, traz preço padrão).
- Valor (editável — descontos por item).
- Status: planejado · em andamento · concluído · cancelado.
- Observações livres por item.
Progresso
O plano mostra total previsto, total realizado, % concluído e próximas pendências. Ideal para a recepção saber qual procedimento agendar a seguir.
Evolução clínica
Notas datadas por consulta (anamnese complementar, intercorrências, prescrições). Cada nota guarda autor e data. Substitui o caderninho.
Orçamentos
Crie orçamentos profissionais com itens, parcelamento e status.
- Itens: serviço, dente (opcional), quantidade, valor, desconto.
- Pagamentos: à vista, parcelado, sinal. Acompanhe o que já foi pago.
- Status: rascunho, enviado, aprovado, rejeitado, expirado.
- PDF: imprime ou envia direto pelo WhatsApp com a logo da clínica.
Conexão WhatsApp
Cada clínica conecta seu próprio número via Evolution API. Você usa o mesmo número de sempre — só conectamos ao CRM.
Como conectar
- Vá em
WhatsApp → Conexão. - Escaneie o QR Code com o aparelho que tem o número da clínica.
- Pronto. O CRM passa a receber e enviar mensagens por aquele número.
Chat unificado
Inbox estilo WhatsApp Web dentro do CRM. Toda mensagem do número da clínica passa por aqui.
- Lista lateral de conversas com último preview, badge de não-lidas, indicador de IA ativa.
- Vinculação automática com o lead/paciente (pelo número).
- Mensagens de texto, áudio (com transcrição automática), imagem, documento, vídeo.
- Pausa de IA temporária — quando a recepção entra na conversa, a IA fica em standby por 10 min.
- Atalhos: agendar, enviar orçamento, criar tarefa direto da conversa.
IA — Recepcionista virtual
A IA Claude responde automaticamente fora do horário e qualifica leads. Cada clínica configura seu próprio "tom de voz" e horário de atendimento.
O que a IA faz
- Cumprimenta, identifica o motivo do contato (dor, estética, manutenção).
- Tira dúvidas básicas sobre serviços (sem dar diagnóstico).
- Pergunta nome, se é paciente novo, qual o procedimento desejado.
- Agenda consulta usando ferramentas (tool use) — vê a agenda real e marca.
- Reconhece intenção de remarcar/cancelar.
- Transcreve áudios automaticamente para entender o que o paciente disse.
O que ela NUNCA faz
- Dar diagnóstico ou prescrever (limite ético do código).
- Inventar preços específicos.
- Continuar respondendo se a recepção entrou na conversa (pausa automática).
Configuração (por clínica)
| Campo | O que faz |
|---|---|
enabled_globally | Liga/desliga IA em todas as conversas da clínica. |
system_prompt | Personalidade e regras (já vem preenchido com prompt de recepcionista odontológica). |
model | Modelo Claude (padrão: claude-haiku-4-5 — rápido e barato). |
temperature | Criatividade (0.4 padrão — equilibrado). |
business_hours_start/end | Horário em que a IA atua. Fora disso, dispara outside_hours_message. |
business_days | Dias da semana ativos. |
tools_enabled | Permite que a IA chame ferramentas (agendar, consultar agenda). |
voice_transcription_enabled | Transcreve áudios recebidos antes de responder. |
default_delay_ms | Atraso base antes de responder (parece mais humano). |
Templates de mensagem
Frases prontas pra recepção enviar com um clique (agradecimento, endereço, pix, etc). Suportam variáveis.
Automações de WhatsApp
São 6 automações independentes, cada uma configurável em Configurações → Automações (ligar/desligar, editar o texto).
crm:dispatch-scheduled-messages roda a cada minuto e dispara o que estiver agendado. Se o WhatsApp estiver desconectado, a mensagem é re-agendada para +5 min (não falha, não duplica).
1. Confirmação imediata de agendamento
Disparada no momento em que o agendamento é criado (manualmente ou pelo site público). O paciente sente que "agendou de verdade".
Olá {paciente}! ✅
Seu agendamento foi recebido:
🦷 *{servico}*
👨⚕️ {profissional}
📅 {data} às {hora}
⏱ {duracao} min
📍 {endereco}
Chegue 10 min antes pra preencher a ficha 😊
Qualquer coisa: {telefone}
2. Confirmação 24h antes
Lembrete pedindo SIM / NÃO. A resposta atualiza o status do agendamento automaticamente: SIM → confirmed, NÃO → cancelled (volta o lead pra fila de remarcação).
Olá {paciente}! 👋
Lembrando da sua consulta amanhã ({data}) às {hora} com {profissional} na {clinica}.
Pode me confirmar respondendo *SIM* ou *NÃO*?
3. Lembrete 1h antes
Último empurrão pra evitar "esqueci" — vai junto com endereço.
Oi {paciente}, te esperamos em 1h aqui na {clinica}! 🦷
Sua consulta com {profissional} é às {hora}.
Endereço: {endereco}
4. Aniversário do paciente
Disparada na hora configurada do dia do aniversário. Quem nasceu no dia 5/06 recebe no dia 5/06 às 9h (configurável de 6h às 20h).
Feliz aniversário, {paciente}! 🎉
A {clinica} deseja muita saúde e sorrisos pra você. Como presente, te damos 10% de desconto em qualquer procedimento neste mês. ❤️
Comando: crm:birthday-send (hourly, respeita birthday_send_hour de cada clínica).
5. Recall — paciente sumido
Convida pacientes que não vêm há X meses (configurável, padrão 6) para limpeza/revisão.
Filtros aplicados:
- Tem pelo menos uma consulta concluída dentro do janela de recall.
- Não tem nenhuma consulta futura agendada.
- Não recebeu recall nos últimos 30 dias (anti-spam).
Oi {paciente}! 👋 Faz {meses} meses que não te vemos por aqui.
Que tal agendar uma avaliação e limpeza? Pode responder esta mensagem que te ajudo a marcar.
Comando: crm:dental-recall (diário 09:30).
6. NPS pós-consulta
Logo após marcar o agendamento como completed, dispara pesquisa 0 a 10 com atraso configurável (padrão 3h).
Oi {paciente}! Como foi sua experiência hoje na {clinica}?
De 0 a 10, quanto você nos recomendaria? 🙂
Seu feedback ajuda muito!
A resposta numérica é parseada automaticamente e cai no relatório de NPS por dentista.
Relatórios
Aba /relatorios com vários relatórios em abas. Todos exportáveis para CSV.
| Relatório | O que mostra |
|---|---|
| Funil | Quantos leads em cada estágio, taxa de conversão entre estágios. |
| Origens (UTMs) | De onde vieram os leads (Instagram, Google, indicação, etc). |
| Agenda | Agendamentos por status, no-show por dentista, ocupação por dia. |
| Motivos de perda | Por que leads são perdidos (preço, distância, prazo, etc). |
| Faturamento | Orçamentos aprovados, pagamentos recebidos, em aberto. |
| NPS | Score, distribuição, ranking por dentista, últimas respostas. |
NPS — Net Promoter Score
Aba /relatorios?tab=nps.
Cálculo
- Detratores: notas 0–6
- Neutros: notas 7–8
- Promotores: notas 9–10
- Score = % Promotores − % Detratores (escala −100 a +100)
O que aparece
- Score atual + média da nota bruta.
- Distribuição em barras (quantas notas de cada).
- Ranking por dentista — quem tem o melhor NPS.
- Últimas respostas (com texto livre quando o paciente comentou).
Configurações da clínica
Em /configuracoes:
- Clínica: nome, slug, telefone, endereço, e-mail, logo (aparece no header e no agendamento mobile) e capa (background do agendamento desktop).
- Usuários: convide recepção e dentistas.
- Kanban: renomeie e reordene estágios.
- Serviços: catálogo de procedimentos.
- Profissionais: dentistas + agenda padrão.
- Templates: respostas rápidas para o chat.
- Automações: 6 cards de ligar/desligar/editar texto.
- Agendamento público: mensagem de boas-vindas, política de cancelamento.
- Google Calendar: conectar/desconectar.
Equipe & profissionais
Cada profissional tem:
- Nome, foto, especialidade, bio (aparece no agendamento público).
- Cor (pra agenda).
- Agenda padrão: para cada dia da semana, intervalos disponíveis.
- Serviços que executa (filtra slots).
Serviços
Em /configuracoes/servicos. Cada serviço tem:
- Nome, categoria (Implantodontia, Estética, Ortodontia, Prevenção, etc).
- Descrição, preço, duração padrão (em minutos).
- Foto (aparece no agendamento público).
- Ativo / inativo.
Integração Google Calendar
Sincronização bidirecional opcional, por clínica. Cada agendamento criado no CRM vira evento no Google e vice-versa.
- Vá em
/configuracoes/google-calendar. - Clique em "Conectar Google".
- Autorize a conta — pode ser a do dentista titular.
- Pronto. Eventos passam a sincronizar via
google_event_idem cada agendamento.
Multi-tenant (super-admin)
Para administradores da plataforma (não para o cliente final).
/admin/clinics— lista de clínicas, ativar/desativar./admin/clinics/criar— onboarding de nova clínica./admin/clinics/{id}/usuarios— gerencia usuários por clínica.- Todos os modelos usam o trait
BelongsToClinicque aplica global scope porclinic_id— isolamento garantido na camada de dados.
Variáveis disponíveis em templates
Tanto nas automações quanto nos templates manuais, as seguintes variáveis são substituídas antes do envio:
| Variável | Valor |
|---|---|
{paciente} | Primeiro nome do paciente |
{paciente_completo} | Nome completo |
{clinica} | Nome da clínica |
{profissional} | Nome do dentista do agendamento |
{servico} | Nome do serviço agendado |
{data} | Data formatada (ex: 23/05 (sexta-feira)) |
{hora} | Hora formatada (ex: 14:30) |
{data_iso} | Data ISO (ex: 2026-05-23) |
{duracao} | Duração em minutos |
{endereco} | Endereço da clínica |
{telefone} / {telefone_clinica} | Telefone da clínica |
{meses} | Meses desde a última visita (só em recall) |
Variáveis são case-insensitive — {Paciente} e {PACIENTE} também funcionam.
Comandos agendados
Rodam via Laravel Scheduler (cron a cada minuto chamando php artisan schedule:run):
| Comando | Frequência | Função |
|---|---|---|
crm:dispatch-scheduled-messages | A cada minuto | Motor — envia tudo que estiver agendado. |
crm:birthday-send | De hora em hora | Aniversários (respeita hora configurada por clínica). |
crm:dental-recall | Diário 09:30 | Recall de pacientes sumidos. |
crm:alert-inactive-leads | Diário 08:00 | Notifica recepção sobre leads parados. |
crm:birthday-alerts | Diário 09:00 | Painel de aniversariantes (interno). |
FAQ
Posso usar o mesmo número de WhatsApp da clínica que já uso?
Sim — mas o número precisa ser exclusivo do CRM enquanto estiver conectado. Recomendamos um chip dedicado.
Se a internet cair, perco mensagens?
Não. As mensagens recebidas ficam na fila da Evolution e entram quando o servidor voltar. As agendadas (lembretes, recall) re-tentam automaticamente.
Os pacientes precisam baixar um app?
Não. Tudo funciona via WhatsApp comum e link de agendamento na web.
Como funciona a cobrança?
Mensalidade por clínica (não por usuário). Sem taxa por mensagem.
Posso migrar minha agenda atual?
Sim. Importação via CSV ou via Google Calendar.
A IA pode mandar coisa errada?
Ela tem prompts restritivos (não diagnostica, não inventa preço, não atende emergência). Em dúvida, fica em silêncio e a recepção responde. Você sempre pode desligar a IA por conversa ou por clínica.
Funciona em celular?
Sim — toda a interface é responsiva. Recepção usa muito no tablet.