9.2 KiB
🔔 Sistema de Alertas Automáticos de Vencimento
📋 Problema Identificado
Situação:
- Venda realizada em 20/10/2025
- Primeira parcela com vencimento em 24/10/2025
- Alertas NÃO foram enviados:
- ❌ 3 dias antes (21/10) - Não recebido
- ❌ No dia do vencimento (24/10) - Não recebido com PIX
Causa: O sistema de alertas automáticos não estava configurado para rodar diariamente às 09:00.
✅ Solução Implementada
Criamos um sistema completo de alertas automáticos com:
- Script Node.js que verifica parcelas e envia alertas
- Cron Job configurado para executar às 09:00 (Brasília)
- Geração automática de PIX no dia do vencimento
- Logs de todas as execuções
🚀 Como Instalar
Passo 1: Instalar o Cron Job
cd /home/tiago/Downloads/app_estoque_v1.0.0
chmod +x scripts/instalar-cron-alertas.sh
./scripts/instalar-cron-alertas.sh
O script irá:
- ✅ Configurar execução diária às 09:00 (horário de Brasília)
- ✅ Criar diretório de logs
- ✅ Perguntar se quer fazer um teste imediato
- ✅ Mostrar configuração final
Passo 2: Configurar Variáveis de Ambiente
Crie/edite o arquivo .env na raiz do projeto:
# Supabase
SUPABASE_URL=https://ydhzylfnpqlxnzfcclla.supabase.co
SUPABASE_SERVICE_KEY=seu_service_key_aqui
# ou
SUPABASE_ANON_KEY=seu_anon_key_aqui
# Evolution API (configurar no painel admin)
# Mercado Pago (configurar no painel admin)
Passo 3: Configurar no Painel Admin
Acesse o painel admin → Configurações e configure:
Evolution API:
- URL da API
- Nome da instância
- API Key
Mercado Pago:
- Access Token (para geração de PIX)
Alertas WhatsApp:
- Primeiro alerta: 3 dias antes ✅ ATIVO
- Segundo alerta: No dia (0 dias) ✅ ATIVO
- Alerta após vencimento: 3 dias após ✅ ATIVO
- Mensagens personalizadas para cada tipo
🕐 Como Funciona
Execução Automática
Horário: Todos os dias às 09:00 (horário de Brasília)
O que o script faz:
- Busca configurações do banco de dados
- Lista todas as parcelas pendentes
- Calcula dias para vencimento de cada parcela
- Verifica se deve enviar alerta:
- Primeiro alerta: 3 dias antes? ✅
- Segundo alerta: No dia? ✅ + Gera PIX
- Alerta pós-vencimento: 3 dias após? ✅
- Substitui variáveis na mensagem:
{cliente}→ Nome do cliente{valor}→ R$ 150,00{quando}→ "em 3 dias" ou "hoje" ou "há 3 dias"{parcela}→ "1/3"
- Envia via WhatsApp usando Evolution API
- Registra no histórico de mensagens
- Gera log completo da execução
📱 Tipos de Alertas
1. Primeiro Alerta (3 dias antes)
Quando: 21/10 às 09:00 para vencimento em 24/10
Mensagem padrão:
Olá João! 👋
Lembramos que você tem uma parcela no valor de R$ 150,00 com vencimento em 3 dias (24/10/2025).
Agradecemos a atenção!
2. Segundo Alerta (No dia do vencimento)
Quando: 24/10 às 09:00
Mensagem padrão:
Olá João! 👋
Sua parcela de R$ 150,00 vence hoje.
📱 PIX Copia e Cola:
```00020126580014br.gov.bcb.pix...```
Agradecemos!
Ação extra: Gera PIX automaticamente via Mercado Pago
3. Alerta Após Vencimento (3 dias após)
Quando: 27/10 às 09:00 para vencimento em 24/10
Mensagem padrão:
Olá João! 👋
Identificamos que a parcela 1/3 no valor de R$ 150,00 venceu há 3 dias (24/10/2025).
Por favor, regularize o pagamento.
📊 Monitoramento
Ver Logs em Tempo Real
tail -f /home/tiago/Downloads/app_estoque_v1.0.0/logs/alertas-cron.log
Exemplo de Log
🕐 Iniciando envio de alertas de vencimento...
⏰ Horário: 24/10/2025, 09:00:15
📋 Configurações carregadas:
- Primeiro alerta: 3 dias antes (ATIVO)
- Segundo alerta: 0 dias antes (ATIVO)
- Alerta pós-vencimento: 3 dias após (ATIVO)
📦 15 parcela(s) pendente(s) encontrada(s)
📤 Enviando segundo_alerta para João Silva (5543999762754)...
🔄 Gerando PIX para parcela 1...
✅ Enviado com sucesso!
📤 Enviando primeiro_alerta para Maria Santos (5543988776655)...
✅ Enviado com sucesso!
==================================================
📊 RESUMO DO ENVIO
==================================================
✅ Alertas enviados: 8
❌ Erros: 0
📦 Total de parcelas verificadas: 15
==================================================
✅ Script finalizado com sucesso!
🧪 Teste Manual
Para testar o sistema sem esperar às 09:00:
cd /home/tiago/Downloads/app_estoque_v1.0.0
node scripts/enviar-alertas-parcelas.js
Isso executará imediatamente e mostrará:
- Quais alertas seriam enviados
- Para quais clientes
- Resultado de cada envio
🔍 Verificar Cron Instalado
crontab -l
Deve mostrar algo como:
0 12 * * * TZ='America/Sao_Paulo' /usr/bin/node /home/tiago/Downloads/app_estoque_v1.0.0/scripts/enviar-alertas-parcelas.js >> /home/tiago/Downloads/app_estoque_v1.0.0/logs/alertas-cron.log 2>&1
Nota: 0 12 em UTC = 09:00 em Brasília (UTC-3)
🛠️ Troubleshooting
Problema: Alertas não são enviados
Verificar:
-
Cron está instalado?
crontab -l | grep enviar-alertas-parcelas -
Script tem permissão de execução?
ls -l scripts/enviar-alertas-parcelas.js chmod +x scripts/enviar-alertas-parcelas.js -
Configurações estão corretas no admin?
- Evolution API configurada
- Mercado Pago configurado
- Alertas ATIVOS (toggles verdes)
-
Clientes têm WhatsApp cadastrado?
SELECT nome_completo, whatsapp FROM clientes WHERE whatsapp IS NULL OR whatsapp = ''; -
Parcelas estão com status "pendente"?
SELECT * FROM venda_parcelas WHERE status = 'pendente' ORDER BY data_vencimento; -
Ver logs de erro:
tail -100 logs/alertas-cron.log
Problema: PIX não é gerado
Verificar:
-
Mercado Pago Access Token configurado?
- Painel Admin → Configurações → Mercado Pago
-
Token válido?
- Tokens expiram, gere um novo se necessário
-
Testar geração manual:
- Sistema de Vendas → Parcelas → Botão "PIX"
Problema: Mensagens não chegam
Verificar:
-
Evolution API está online?
- Teste acessando a URL configurada
-
Instância está conectada?
- Verifique no painel da Evolution API
-
WhatsApp do cliente correto?
- Formato: apenas números (5543999762754)
- Com DDD e código do país
-
Testar envio manual:
- Sistema de Vendas → Chat WhatsApp
📅 Cronograma de Alertas
Exemplo: Venda em 20/10, vencimento 24/10
| Data | Hora | Tipo de Alerta | Dias | Ação |
|---|---|---|---|---|
| 21/10 | 09:00 | Primeiro Alerta | -3 dias | Lembrete |
| 24/10 | 09:00 | Segundo Alerta | 0 dia (hoje) | Lembrete + PIX |
| 27/10 | 09:00 | Pós-Vencimento | +3 dias | Cobrança |
🔄 Desinstalar Cron
Se precisar remover o cron:
crontab -e
Remova a linha que contém enviar-alertas-parcelas.js e salve.
Ou automaticamente:
crontab -l | grep -v 'enviar-alertas-parcelas' | crontab -
📝 Personalizar Mensagens
No painel admin → Configurações → Alertas WhatsApp
Variáveis disponíveis:
{cliente}- Primeiro nome do cliente{valor}- Valor formatado (R$ 150,00){quando}- "em 3 dias", "hoje", "há 3 dias"{parcela}- "1/3", "2/5", etc.
Exemplo de mensagem personalizada:
Oi {cliente}! 😊
Sua parcela {parcela} de {valor} vence {quando}.
Qualquer dúvida, estamos aqui!
*Liberi Kids* 👗👕
🎯 Caso de Uso: Venda 20/10
Configuração:
- Primeiro alerta: 3 dias antes ✅
- Segundo alerta: No dia ✅
- Pós-vencimento: 3 dias após ✅
Timeline:
| Dia | Evento |
|---|---|
| 20/10 | Venda realizada, parcela 1 vence 24/10 |
| 21/10 09:00 | 🔔 Primeiro alerta enviado: "vence em 3 dias" |
| 24/10 09:00 | 🔔 Segundo alerta + PIX: "vence hoje" + QR Code |
| 27/10 09:00 | 🔔 Alerta pós-venc: "venceu há 3 dias" |
✅ Checklist de Verificação
Antes de considerar o sistema funcionando, verifique:
- Cron instalado e ativo (
crontab -l) - Horário correto (09:00 Brasília = 12:00 UTC)
- Evolution API configurada no admin
- Mercado Pago configurado no admin
- Alertas ATIVOS (toggles verdes)
- Mensagens personalizadas configuradas
- Teste manual executado com sucesso
- Logs sendo gerados em
/logs/alertas-cron.log - Clientes com WhatsApp cadastrado
- Parcelas com status "pendente"
📞 Suporte
Logs importantes:
# Logs do cron
tail -f logs/alertas-cron.log
# Logs do servidor
tail -f logs/server.log
# Histórico de mensagens (SQL)
SELECT * FROM mensagens_whatsapp
ORDER BY created_at DESC
LIMIT 50;
# Parcelas pendentes
SELECT vp.*, v.id_venda, c.nome_completo, c.whatsapp
FROM venda_parcelas vp
JOIN vendas v ON vp.venda_id = v.id
JOIN clientes c ON v.cliente_id = c.id
WHERE vp.status = 'pendente'
ORDER BY vp.data_vencimento;
Desenvolvido para: Liberi Kids - Moda Infantil 👗👕
Data: 24 de outubro de 2025
Versão: 1.0
Status: ✅ Pronto para Produção