Como o score é calculado
O cálculo roda todo dia às 6h UTC (3h BRT) via a edge functioncalculate-health-scores, que chama a stored procedure calculate_company_health_score no PostgreSQL para cada empresa ativa.
Os fatores que influenciam o score incluem:
| Fator | Peso | Descrição |
|---|---|---|
| Frequência de conversas | Alto | Quantas interações ocorreram nos últimos 30 dias |
| Recência | Alto | Quantos dias desde a última interação |
| Taxa de resposta | Médio | % de mensagens do contato que receberam resposta |
| Engajamento com follow-ups | Médio | Abertura e resposta a mensagens proativas |
| Completude do perfil | Baixo | Campos do contato preenchidos |
risk_level associado:
Verde (70–100)
Contato ativo e engajado. Relacionamento saudável. Sem ação necessária.
Amarelo (40–69)
Engajamento em queda. Candidato a campanha de reativação.
Vermelho (0–39)
Contato inativo ou em risco de churn. Alerta automático disparado.
Alertas automáticos
Quando o score cai para a faixa vermelha com uma variação negativa maior que 15 pontos em relação ao dia anterior (score_delta <= -15), o sistema insere automaticamente um evento na fila de e-mails do lifecycle com o template inactivity-3d. Esse alerta notifica a equipe para agir antes que o churn se concretize.
Os alertas são enviados por melhor esforço — se o e-mail falhar, o evento fica com status
pending na tabela lifecycle_email_events para retry automático. Você pode monitorar isso no dashboard de saúde do sistema em Admin → Follow-up Health.Visualizando os scores
- Por contato
- Visão geral da empresa
- Dashboard de Follow-up
Abra o perfil de qualquer contato em CRM → Contatos e veja o badge de health score no topo do painel. O número é acompanhado da cor de risco e da variação em relação ao cálculo anterior.
Usando scores em segmentação
O health score é um filtro disponível em qualquer lugar que tenha filtragem de contatos:Adicione filtro de health score
Selecione Health Score e defina o operador:
menor que, maior que ou entre. Ex: menor que 40 para isolar contatos em risco.Salve o segmento (opcional)
Nomeie o filtro para reutilizar como segmento em Broadcasts e Follow-ups sem precisar reconfigurar.
Recalculando manualmente
Se você importou um grande volume de contatos ou fez mudanças significativas nos dados e quer atualizar os scores imediatamente sem esperar o cron, use a API:"dry_run": true ao body. O response inclui o total de empresas processadas, contagem de erros e a distribuição de risco calculada.
O recálculo manual consome recursos de banco de dados proporcionais ao tamanho da base. Para bases com mais de 10 mil contatos, prefira aguardar o cron diário ou executar fora do horário de pico (antes das 9h BRT).