CRM Pacer Digital — Docs
CRM para Clínicas Odontológicas

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.

🦷 Foco dental 📱 WhatsApp integrado 🤖 IA conversacional 🏢 Multi-clínica

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.

Quem usa o CRM? Recepcionistas (atendimento e agenda), dentistas (prontuário e plano de tratamento), administradores (financeiro, equipe, automações) e o dono da clínica (relatórios e NPS).

Primeiros passos

Em ~15 minutos sua clínica fica operacional. Roteiro recomendado:

  1. Entre com seu usuário em /login (administrador da clínica recebe credenciais por e-mail).
  2. Em Configurações → Clínica, preencha nome, logo, capa, telefone, endereço. A logo aparece no agendamento mobile e a capa no desktop.
  3. Em Configurações → Serviços, cadastre cada procedimento (nome, categoria, preço, duração, foto).
  4. Em Configurações → Profissionais, cadastre os dentistas e sua agenda padrão (dias e horários).
  5. Em WhatsApp → Conexão, leia o QR Code para conectar o número.
  6. Em Configurações → Automações, ative as mensagens automáticas (vêm prontas, é só ligar).
  7. Compartilhe o link público de agendamento /agendar/{sua-clinica} nas redes sociais.
Pronto! 🚀 Cada lead que chegar pelo WhatsApp ou pelo site já cai no Kanban, recebe confirmação automática e entra na agenda do dentista certo.

Contas e papéis

Existem 2 níveis de acesso dentro de uma clínica + 1 nível global.

PapelO 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.
Multi-tenant Todos os dados são isolados por 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

OrdemNomeQuando entrar aqui
1Novo LeadAcabou de chegar (WhatsApp, site, indicação).
2Em ContatoRecepção iniciou conversa, ainda sem horário.
3Avaliação AgendadaTem agendamento futuro (cai aqui automaticamente).
98GanhoVirou paciente ativo — fechou tratamento.
99PerdidoNã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.
Estágios são configuráveis por clínica Em 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-leads sinaliza 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)

  1. Paciente escolhe serviço (com foto, preço, duração).
  2. Escolhe profissional (com foto e bio).
  3. Escolhe dia e horário disponível.
  4. Preenche nome + WhatsApp + e-mail.
  5. Recebe confirmação por WhatsApp em segundos (automação booking_confirmation).
UTM tracking nativo Adicione ?utm_source=instagram&utm_campaign=clareamento à URL — o CRM grava no lead e mostra no relatório de origens.
Cancelamento sem login Cada agendamento gera um 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.

Sincronia com plano de tratamento Quando você marca um item do plano como concluído com um dente associado, ele automaticamente vira restored no odontograma. Zero retrabalho.

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

  1. Vá em WhatsApp → Conexão.
  2. Escaneie o QR Code com o aparelho que tem o número da clínica.
  3. Pronto. O CRM passa a receber e enviar mensagens por aquele número.
Use o número da clínica, não o pessoal Recomendamos um chip dedicado para a clínica — o número fica vinculado ao CRM e a sessões web do WhatsApp não devem rodar em paralelo, ou o vínculo cai.

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)

CampoO que faz
enabled_globallyLiga/desliga IA em todas as conversas da clínica.
system_promptPersonalidade e regras (já vem preenchido com prompt de recepcionista odontológica).
modelModelo Claude (padrão: claude-haiku-4-5 — rápido e barato).
temperatureCriatividade (0.4 padrão — equilibrado).
business_hours_start/endHorário em que a IA atua. Fora disso, dispara outside_hours_message.
business_daysDias da semana ativos.
tools_enabledPermite que a IA chame ferramentas (agendar, consultar agenda).
voice_transcription_enabledTranscreve áudios recebidos antes de responder.
default_delay_msAtraso 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).

Como funciona por trás Todas as automações usam o motor genérico scheduled_messages. O comando 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órioO que mostra
FunilQuantos leads em cada estágio, taxa de conversão entre estágios.
Origens (UTMs)De onde vieram os leads (Instagram, Google, indicação, etc).
AgendaAgendamentos por status, no-show por dentista, ocupação por dia.
Motivos de perdaPor que leads são perdidos (preço, distância, prazo, etc).
FaturamentoOrçamentos aprovados, pagamentos recebidos, em aberto.
NPSScore, 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.

  1. Vá em /configuracoes/google-calendar.
  2. Clique em "Conectar Google".
  3. Autorize a conta — pode ser a do dentista titular.
  4. Pronto. Eventos passam a sincronizar via google_event_id em 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 BelongsToClinic que aplica global scope por clinic_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ávelValor
{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):

ComandoFrequênciaFunção
crm:dispatch-scheduled-messagesA cada minutoMotor — envia tudo que estiver agendado.
crm:birthday-sendDe hora em horaAniversários (respeita hora configurada por clínica).
crm:dental-recallDiário 09:30Recall de pacientes sumidos.
crm:alert-inactive-leadsDiário 08:00Notifica recepção sobre leads parados.
crm:birthday-alertsDiário 09:00Painel 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.