Dashboard
O retrato do dia: como a Sofia está indo e o que precisa de você.
Como funciona
O retrato do dia. Em cima, como a Sofia está indo; embaixo, o que precisa de gente. Os números são do fuso da clínica (Brasília) e se atualizam sozinhos a cada minuto.
Pendências
O que precisa de gente agora. Resolveu, some da lista.
Chaves de emergência
O que está ligado agora no serviço. Mudar exige trocar a variável e reiniciar
(veja ops/runbooks/operacao-diaria.md).
Funil de conversão
Por quantas etapas as conversas criadas na semana e no mês passaram. Cada etapa só conta quem passou pela anterior; "pediu valor" e "viu horários" são as duas portas depois de responder de novo.
Não atendido no mês
O que as clientes pediram e a clínica não faz (a Sofia registra a cada pedido). É o radar para decidir o que passar a oferecer.
Por anúncio
Quem chegou por um anúncio "clique para o WhatsApp" (a Meta manda o id do anúncio junto da primeira mensagem): quantas conversas, quantas agendaram pela Sofia e quantas vieram. Mês = conversas criadas no mês; total = desde o início.
O nome do anúncio vem da Config (anuncios_nomes); sem nome, aparece o perfil que assina o post e o id.
Conversas
O que a Sofia está conversando de verdade no WhatsApp — e a retomada de quem sumiu.
Como funciona
O que a Sofia está conversando de verdade no WhatsApp, diferente da aba "Testar Sofia", que é simulação. Ela agrupa as mensagens seguidas da cliente, responde, e quando chama a equipe o número entra em pausa automaticamente. Assumir pausa a Sofia para você falar; Devolver a traz de volta.
Como funciona a retomada
Conversas em que a cliente respondeu, a Sofia falou por último e ninguém falou mais nada. São até 2 toques: o primeiro 4 h depois do silêncio (no expediente; quem some à noite recebe na manhã seguinte) e o segundo 7 dias depois do primeiro; depois a conversa encerra sozinha, sem despedida. Quem está pausada, quem já marcou horário, quem já veio depois da conversa e quem pediu opt-out não entra. O toque consulta a agenda antes de falar de horário e nunca agenda sozinho.
Como ler o resultado
Os toques que já saíram e o que aconteceu depois de cada um: quem voltou a falar (e em qual toque), quem agendou em seguida, quem encerrou sem responder. A resposta conta para o último toque antes dela. Toque que falhou no envio não entra — aqui só o que chegou à cliente.
Leads
Quem a Sofia tentou e ainda não trouxe de volta, numa lista só — a situação de cada um é você quem marca.
Como funciona
Quem a Sofia tentou e ainda não trouxe de volta, numa lista só: abandonou a conversa (a retomada está cuidando, ou encerrou sem resposta), cancelou e sumiu (recebeu ou vai receber a mensagem de remarcação) e quente (viu horário ou pediu valor nas últimas 48 h e sumiu). A situação é sua: marque o que a equipe fez com cada pessoa. Quem agendou depois de um toque ou da remarcação já aparece como recuperado; quem disse que não vai seguir (sem condições, longe, sem interesse) a Sofia fecha como perdido, com o motivo, e sai da retomada e da remarcação. Marcar perdido aqui faz o mesmo.
Qualidade
O que a auditoria das conversas reais achou: nota, motivo de quem não agendou e o que faltou no FAQ.
Como funciona
A auditoria das conversas reais roda pela skill auditar-conversas no Claude Code, no PC do dono
(sem gastar token da API): ela lê as conversas que esfriaram, dá uma nota de 0 a 10, aponta desvios da lei, o motivo de
quem não agendou e o que faltou no FAQ. Aqui é só o resultado; para rodar de novo, é a skill.
Piores conversas da semana
Por que não agendou (mês)
Classificado pela auditoria só nas conversas que esfriaram sem agendar.
Sugestões de FAQ
Perguntas que a Sofia não tinha como responder pelos documentos, com o rascunho do bloco. A lista abre nas pendentes, que são as que esperam a sua resposta; as aceitas e as descartadas ficam nos filtros, como registro.
Pausas
Onde a Sofia está desligada: enquanto um número está pausado, ela não responde nem dispara nada para ele.
Como funciona
Enquanto um número está pausado, a Sofia não responde e não dispara nada para ele. A pausa entra sozinha quando ela chama a equipe (escalação, falha técnica) e quando alguém responde pelo aparelho da clínica; nesse caso, uma reação ✅ na conversa devolve o número para ela. Use a pausa manual quando você for falar com alguém pelo WhatsApp. Um motivo pede cuidado a mais: quando a cliente pediu para não receber mais mensagem, a linha ganha um selo próprio na coluna Motivo — devolver esse número para a Sofia volta a mandar mensagem para quem pediu, por escrito, para parar.
Acionamentos
Tudo que a Sofia dispara para fora da conversa. O que não saiu fica aqui até alguém resolver.
Como funciona
Tudo que a Sofia dispara para fora da conversa: escalação (a cliente precisa de gente), aviso de agenda mexida e falha técnica. Quando ela diz "já pedi para alguém da equipe te chamar", a promessa só é verdade se o aviso tiver saído — o que falhou fica aqui até alguém resolver. O serviço retenta sozinho a cada 5 min (até 5 tentativas).
Nem tudo depende de gente: agenda mexida (a Sofia já marcou, remarcou, cancelou ou confirmou sozinha) e aviso da Sofia (o que ela registrou sem mexer na agenda, pacote acabando) são notícia. Esses se marcam automático na hora — ou assim que chegam ao WhatsApp da equipe, quando vão para lá — e não pedem "Resolvido"; só ficam em aberto se o envio falhar. Em aberto ficam só as pendências de fato.
Reenviar e Resolvido não são a mesma coisa: Reenviar tenta mandar o aviso de novo para o WhatsApp da equipe; Resolvido só marca que uma pessoa já tratou o caso, sem mandar nada.
Agenda IA
Os lembretes de cada atendimento marcado e a confirmação de presença pela Sofia.
Como funciona
A Sofia lembra sozinha cada atendimento marcado: 24 h antes pedindo confirmação e no dia às 8 h (pedindo confirmação a quem ainda não confirmou). A resposta da cliente cai na conversa normal — "sim" confirma a presença, "quero outro dia" abre a remarcação.
Cada lembrete existe uma vez só por atendimento e tipo, e a fila é tomada no banco: duas varreduras ao mesmo tempo não mandam a mesma mensagem. Fora da janela de envio nada é tomado, e atendimento remarcado ou cancelado invalida o que estava programado.
A taxa de confirmação conta, de cada lembrete de 24 h que a Sofia manda, quantos atendimentos viraram presença realmente confirmada na agenda — não quantos só receberam alguma resposta. A confirmação feita na mão pela recepção (o botão "Confirmar presença na mão", acima) é separada de propósito e não entra nesse número: assim dá para ver o que a Sofia consegue sozinha, sem misturar com o que a equipe resolveu por telefone.
Simular uma passada
Mostra o que nasceria e o texto exato que sairia. Simular não grava e não envia nada.
Follow-ups
O que a Sofia começa sozinha: pós-atendimento, remarcação de quem cancelou e pacotes acabando.
Como funciona
O que a Sofia começa sozinha: follow-up do último atendimento concluído (no prazo de retorno do serviço), remarcação para quem cancelou um atendimento e não marcou outro em 2 dias (vale também para cancelamento feito pela recepção) e pacotes acabando (3 sessões ou menos, ou vencendo em 7 dias). Sai uma mensagem por cliente por passada, juntando o que estiver devido. A lista abaixo é simulação: montá-la não manda nada, e o texto mostrado é exatamente o que sairia. Cada atendimento e cada pacote entram uma vez só.
Na fila
Campanhas
Disparo em lote pela Sofia: montar, ver a prévia, criar o rascunho e disparar pelo lote.
Como funciona
Disparo em lote pela Sofia, em três passos, nesta ordem: montar (quem recebe e o que sai), ver a prévia (não grava nada) e criar o rascunho (grava a lista e não envia). O disparo em si é o botão do lote, lá embaixo — sai um a um, com intervalo, e dá para cancelar no meio. Número pausado ou que pediu para não receber mais é sempre pulado. A prévia nunca autoriza o disparo — quem confere de verdade, nos três passos, é o servidor.
Nova campanha
Entra quem está sem ser atendida há pelo menos esse tempo.
Qualquer mensagem conta — resposta dela, lembrete, follow-up ou outra campanha. Quem está em conversa fica de fora do lote, e a prévia mostra quem foi. 0 desliga o filtro. Com ele ligado, o campo “pular as primeiras” não precisa avançar entre um lote e outro: quem já recebeu sai sozinho.
Os marcadores da ficha só existem nas listas da base (inativos, aniversariantes, segmento) e
para quem já veio: quem não tiver o dado é pulado, e a prévia diz quantos. Qualquer outro marcador, como
{servico} ou {data}, impede o envio para a lista inteira.
Lotes
Agente Sofia
Persona, prompt, guardrails, conhecimento e mensagens automáticas — a configuração viva da Sofia.
Como funciona
Edite persona, prompt, guardrails, conhecimento e mensagens automáticas. Salvo aqui vale como configuração viva da Sofia (o serviço lê deste banco). Histórico das últimas 20 versões fica guardado. O repositório continua sendo a documentação de referência.
Ctrl+S (ou ⌘S) salva o arquivo aberto; trocar de arquivo com alteração não salva pede confirmação antes de descartar.
Mídias
Fotos, vídeos, áudios e links que a Sofia pode mandar no WhatsApp durante o atendimento.
Como funciona
Fotos, vídeos, áudios e links (um vídeo do Instagram, uma página do site) que a Sofia
pode mandar no WhatsApp durante o atendimento. A ação enviar_midia usa a chave abaixo
para achar a mídia — a mesma chave que entra no bloco do procedimento em faq-procedimentos.md
(aba "Agente Sofia"). Um link vai como mensagem de texto, com a legenda em cima, e o WhatsApp mostra o
preview.
Testar Sofia
Simulação de WhatsApp: você faz a cliente e a Sofia responde com a configuração viva.
Como funciona
Você faz o papel da cliente; a Sofia responde usando a configuração viva desta base (persona, guardrails, procedimentos e políticas das abas ao lado). Por padrão as ferramentas rodam numa agenda de mentira — nada é marcado na agenda real nem sai no WhatsApp; ao iniciar um cenário dá para ligar, um de cada vez, agendar de verdade e avisar a equipe de verdade — a conversa continua mostrando qual dos dois está ligado. As ações de sistema e as chamadas de ferramenta que ela dispararia aparecem marcadas na conversa. Ao final, Avaliar gera um relatório de aderência e lacunas.
Novo cenário
Por padrão nada é gravado nem enviado: agenda de mentira, WhatsApp nenhum. Ligue só o que você quer testar de ponta a ponta.
Config
Credenciais, WhatsApp, avisos à equipe, chaves de emergência, expediente e retenção de dados.
Credenciais do serviço
As variáveis são definidas no serviço (Railway) ou no .env local. O painel só mostra o status — nunca os valores.
Chaves de emergência
Desligam partes da Sofia sem precisar de deploy, direto na variável de ambiente do serviço.
WhatsApp — Evolution API
Avisos à equipe
Taxas da InfinitePay
A taxa que a maquininha desconta (bruto − líquido) vira a despesa Taxas no financeiro da clínica, um lançamento por dia de venda. A InfinitePay não tem API nem deixa o servidor entrar sozinho: quem lê é você, com um clique. 1. Arraste o botão abaixo para a barra de favoritos do navegador. 2. Na InfinitePay, logado, clique nele e diga quantos dias ler. 3. Esta aba abre com a prévia; confira e clique em Lançar. Dia já lançado não dobra; mês com a taxa lançada à mão fica como está.
Se a janela não abriu sozinha, cole aqui o texto que o favorito mostrou (ou o endereço que ele abriu, ou o JSON das vendas).
Custo de IA em reais
Expediente
Dias e horário em que a clínica atende. Não é o horário da Sofia: ela responde a qualquer hora. Isto define até onde a agenda vai (fora daqui não dá para marcar) e quando ela pode falar primeiro (follow-up, campanha e retomada só saem dentro do expediente). Lembrete de atendimento tem janela própria, 8h–21h todos os dias.
Horário diferente num dia (ex.: sábado das 10h às 14h). Em branco, o dia segue o horário de cima.
Retenção de dados
O que o serviço guarda, por quanto tempo e por quê (LGPD, spec §10). A varredura roda
uma vez por dia; a coluna sai na próxima é quanto seria apagado se ela rodasse agora.
O porquê de cada linha está em docs/decisoes/2026-09-03-retencao-de-dados.md.