Executando verificação de segurança...
1

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:

  1. Usuário inativo há 5+ dias — mandar algo que fizesse ele voltar ao app
  2. 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 dias
  • send-weekly-summary — dispara toda semana com resumo do período

Ambas seguem o mesmo fluxo:

  1. Buscar os dados financeiros do usuário (por categoria, por período)
  2. Montar um prompt específico com os dados reais
  3. Chamar gpt-4o-mini para gerar 1 frase personalizada (máx 15 palavras)
  4. 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.85 dá 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.

Carregando publicação patrocinada...
1

Sera que nao esta gastastando ia atoa?

se o prompt

Gere 1 frase curta (máx 15 palavras) em português, provocativa e específica,
sobre alguém que gastou {valor} em "{categoria}" ({porcentagem} do orçamento mensal).
Sem introdução, só a frase.

Resulta em geralmente algo como

{categoria} consumiu {porcentagem} do seu orçamento

me parece desnecessario usar ia so para alterar os valores em um tamplate

recomendo ver o que o doulingo tem feito em suas notificaçoes eles sao referencia em retenção e ia first

na pratica recomendo fazer um teste
A/B pra ver se realmente o uso de ia faz diferença significativa em comparacao a templates normais

o contexto que voce esta passando para ai é muito pequeno pra chamar isos de personalização

ta gastando ia pra gerar um template diferente pra cada usuario

1

Valeu pela contribuição.

Meu objetivo usando a IA é ter um consultor que analisa os dados e retorna uma informaçõa mais relevante.

Vou dar uma olhada sim no duolingo, desconhecia essa parte de notificação dele.