Como usei Supabase Edge Functions + OpenAI para mandar notificações financeiras personalizadas para cada usuário
Estou construindo um SaaS de finanças pessoais e precisava resolver um problema clássico:
notificações que as pessoas realmente leem.
Notificação genérica como "você não registrou gastos hoje" ninguém abre.
Resolvi isso combinando Supabase Edge Functions com OpenAI para gerar
uma mensagem diferente para cada usuário, baseada nos dados financeiros reais dele.
O problema
Tinha dois cenários que precisava cobrir:
- Usuário inativo há 5+ dias — mandar algo que fizesse ele voltar ao app
- Resumo semanal — ao invés de só mostrar números, queria uma frase com insight real
A solução mais simples seria mandar a mesma mensagem para todo mundo.
Mas aí você tem 0% de engajamento depois de 2 semanas.
A arquitetura
Dois Edge Functions no Supabase:
send-inactivity-notifications— dispara para usuários sem transação há 5 diassend-weekly-summary— dispara toda semana com resumo do período
Ambas seguem o mesmo fluxo:
- Buscar os dados financeiros do usuário (por categoria, por período)
- Montar um prompt específico com os dados reais
- Chamar
gpt-4o-minipara gerar 1 frase personalizada (máx 15 palavras) - Enviar via FCM (Firebase Cloud Messaging)
O prompt que funcionou
Para o alerta de inatividade, eu pego a categoria com maior gasto do mês
e mando isso para o modelo:
Gere 1 frase curta (máx 15 palavras) em português, provocativa e específica,
sobre alguém que gastou R$150 em "Delivery" (38% do orçamento mensal).
Sem introdução, só a frase.
O resultado é algo como:
"Delivery consumiu 38% do seu orçamento. Isso foi intencional?"
Ao invés de:
"Você não registrou gastos hoje."
A diferença de abertura é absurda.
O ponto crítico: custo vs. valor
gpt-4o-mini com max_tokens: 80 custa frações de centavo por chamada.
Para uma base pequena de usuários, o custo é desprezível.
E a personalização aumenta a retenção de forma que justifica muito mais do que esse custo.
O que aprendi
- Prompt pequeno e específico performa melhor que prompt genérico e longo
temperature: 0.85dá variedade suficiente sem perder a coerência- Tratar o erro da OpenAI com fallback (mensagem padrão) é obrigatório em produção
- FCM + Supabase Edge Function é uma combinação subestimada para quem já usa Supabase
Esse sistema está rodando em produção. O app está disponível para uso gratuito
na web em financascominteligencia.com.br e também está em fase de testes
na Play Store.
Se quiser participar como tester e ajudar a moldar o produto, é só me mandar
uma mensagem aqui ou nos comentários.
Feedback técnico sobre a implementação também é muito bem-vindo.