Documentação Técnica Completa
O sistema de notificações progressivas envia automaticamente **7 notificações** para prestadores antes do início de cada ação, garantindo alta taxa de comparecimento e confirmação de presença.
Agendamento: Ao criar alocação, sistema calcula 7 horários de notificação
Ajuste: Horários entre 00h-06h são ajustados (janela silenciosa)
Processamento: Cron job verifica notificações pendentes a cada 5 minutos
Envio: Notificação push enviada para celular do prestador
Registro: Status atualizado para ENVIADA e log gravado
12H_ANTES⏰ Confirme sua presença na ação [AÇÃO] que inicia às [HORA]. Acesse o app agora!
Objetivo: Primeira notificação para confirmação de presença
8H_ANTES⏰ Última chance de confirmar presença na ação [AÇÃO]. Não perca essa oportunidade!
Objetivo: Reforço para prestadores que ainda não confirmaram
6H_ANTES⚠️ Atenção! Sem confirmação, a vaga da ação [AÇÃO] será reaberta. Fale com o recrutador se necessário.
Objetivo: Alerta crítico de perda de vaga
2H_ANTES📋 Ação [AÇÃO] em 2h! Revise informações, orientações e confirme presença no grupo WhatsApp.
Objetivo: Preparação final e checklist
1H_ANTES💪 Falta 1h! Faça o seu melhor, contamos com você!
Objetivo: Motivação e engajamento
30MIN_ANTES🚀 Motores aquecidos! Faltam 30min para começar.
Objetivo: Lembrete de proximidade
5MIN_ANTES📍 Últimos 5min! Em instantes, realize seu check-in.
Objetivo: Ação imediata: fazer check-in
Notificações calculadas entre **00h00 e 06h00** são automaticamente ajustadas para o horário mais próximo fora da janela silenciosa, respeitando o descanso dos prestadores.
1. Detectar horário na janela
Se horário original está entre 00h00 e 06h00
2. Calcular alternativas
• Opção A: Antecipar para 23h59 do dia anterior
• Opção B: Adiar para 06h00 do mesmo dia
3. Escolher mais próximo
Comparar diferença em minutos e escolher menor distância
Horário original: 02h00
Opção A: 23h59 (2h01min antes)
Opção B: 06h00 (4h depois)
Escolhido: 23h59 ✓
Horário original: 05h30
Opção A: 23h59 (5h31min antes)
Opção B: 06h00 (30min depois)
Escolhido: 06h00 ✓
Endpoint:
POST /api/trpc/cronJobs.processarNotificacoesProgressivasBody (JSON):
{
"cronToken": "<CRON_SECRET_TOKEN>"
}Configuração Vercel Cron (vercel.json):
{
"crons": [{
"path": "/api/cron/notificacoes-progressivas",
"schedule": "*/5 * * * *"
}]
}Configuração GitHub Actions:
name: Processar Notificações
on:
schedule:
- cron: '*/5 * * * *'
jobs:
notify:
runs-on: ubuntu-latest
steps:
- name: Call endpoint
run: |
curl -X POST https://seu-dominio.com/api/trpc/cronJobs.processarNotificacoesProgressivas \
-H "Content-Type: application/json" \
-d '{"cronToken":"${{ secrets.CRON_SECRET_TOKEN }}"}'Endpoint:
POST /api/trpc/cronJobs.verificarAlertasConfirmacaoConfiguração Vercel Cron:
{
"crons": [{
"path": "/api/cron/alertas-confirmacao",
"schedule": "0 * * * *"
}]
}🔐 Segurança: Token CRON_SECRET_TOKEN
O token CRON_SECRET_TOKEN é gerado automaticamente e está disponível nas variáveis de ambiente. Use-o para autenticar chamadas aos endpoints de cron jobs.
Acesse /admin/notificacoes-log para visualizar:
Acesse /admin/relatorio-confirmacoes para métricas:
Monitore os logs do console para acompanhar execução dos cron jobs:
[2026-02-23 14:00:00] [CRON] Processando notificações progressivas... [2026-02-23 14:00:01] [NOTIF] 3 notificações pendentes encontradas [2026-02-23 14:00:02] [PUSH] Enviando para prestador ID 42: "Falta 1h! Faça o seu melhor..." [2026-02-23 14:00:03] [SUCCESS] Notificação ID 156 enviada com sucesso [2026-02-23 14:00:03] [CRON] Processamento concluído: 3 enviadas, 0 falhas
Causas possíveis:
Soluções:
Causas possíveis:
Soluções:
Causas possíveis:
Soluções:
Causas possíveis:
Soluções:
Sistema Configurado e Operacional
Para dúvidas ou suporte, acesse a página de Teste de Notificações ou entre em contato com a equipe técnica.