Agente de IA para Notificação de Vencimento de Benefícios

22 de December de 2025 • Tempo de leitura: 5 min

Como criar um agente de IA que envia notificações automáticas aos beneficiários sobre o vencimento de benefícios ou necessidade de renovação.

1. Propósito e Escopo

Este documento define todos os prompts, configurações de memória, transição entre estados e demais requisitos funcionais para o Fluxo de Agentes "Notificação de Vencimento de Benefícios", uma solução de automação projetada para enviar notificações automáticas aos beneficiários sobre o vencimento de benefícios ou necessidade de renovação. Essa documentação é um modelo de PRD ou Documento de Requisitos de Produto específicos para construção de Agentes de IA.

O objetivo principal é garantir que os beneficiários sejam informados com antecedência sobre o vencimento de seus benefícios, evitando perdas devido à falta de renovação ou atualização em tempo hábil.

2. Contexto e Problema

Os beneficiários frequentemente não são informados sobre o vencimento de seus benefícios, o que pode resultar em perda de benefícios devido à falta de renovação ou atualização em tempo hábil. O processo manual de comunicação é ineficiente e propenso a erros, o que pode levar a insatisfação dos beneficiários e perda de confiança na organização.

3. Impactos Esperados

A implementação deste fluxo de automação visa alcançar os seguintes resultados:

  • Redução de perdas de benefícios devido à falta de comunicação.
  • Aumento da satisfação dos beneficiários através de notificações personalizadas e oportunas.
  • Eficiência operacional ao automatizar o processo de comunicação de vencimento de benefícios.

4. Visão Geral da Solução

O agente de IA para notificação de vencimento de benefícios monitora datas de vencimento e envia notificações automáticas personalizadas aos beneficiários, oferecendo instruções claras sobre como renovar ou atualizar benefícios. A seguir são detalhadas todas as regras de negócio e especificações funcionais necessárias para que esse agente atue como um assistente útil e autônomo na gestão de notificações de vencimento de benefícios.

A solução consiste em um fluxo de automação composto por 4 agentes de IA. O processo inicia com o cálculo das janelas de vencimento e termina com a criação de um plano de envio de notificações.

Agentes Função Principal
Agente de Cálculo de Janelas de Vencimento (RF 1) Calcular as janelas de antecedência para notificação de vencimento.
Agente de Elegibilidade, Deduplicação e Restrições de Comunicação (RF 2) Filtrar candidatos de notificação e aplicar regras de opt-in/opt-out.
Agente de Personalização de Mensagens de Notificação (RF 3) Gerar conteúdo personalizado das mensagens por canal.
Agente de Plano de Despacho e Agenda de Envios (RF 4) Transformar mensagens personalizadas em um plano de envio.

5. Protótipos

Para proporcionar uma visão clara e tangível da solução proposta, criamos protótipos interativos que demonstram tanto o fluxo de trabalho dos agentes quanto o resultado final que o beneficiário receberá. Explore os links abaixo para entender melhor a solução em ação.

6. Requisitos Funcionais

RF 1. Agente de Cálculo de Janelas de Vencimento

1.1 Tarefa do Agente

Calcular, para cada beneficiário, as janelas de antecedência nas quais uma notificação de vencimento deve ser preparada.

1.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um objeto JSON com uma data de referência e uma lista de beneficiários. Cada item contém dados como ID do beneficiário, nome preferido, data de vencimento, status do benefício, e preferências de notificação.

# 2. Objetivo
Calcular as janelas de antecedência para notificação de vencimento.

# 3. Regras que você deve seguir para gerar sua resposta
1) Calcule dias_para_vencer = data_vencimento - data_referencia em dias inteiros, considerando o fuso_horario do beneficiário para cortar o dia às 00:00 locais.
2) Determine a lista de antecedências_dias a usar: se preferencias_notificacao.antecedencias_dias existir e for não vazia, utilize-a; do contrário, use [30,15,7]. Ordene de maior para menor.
3) Gere um candidato para cada antecedência 'd' tal que dias_para_vencer == d. Atribua janela_tipo como "D-" + d.
4) Apenas considere beneficiários com status_beneficio em {"ativo","em_renovacao_pendente"}. Para demais status, não gere candidatos e marque internamente motivo "status_inelegivel".
5) Se data_ultima_renovacao existir e for >= data_vencimento, não gere candidato (motivo: "ja_renovado").
6) Defina data_envio_sugerida_local como a data_referencia ajustada para o próximo horário permitido: se cair dentro do horário de silêncio (horario_silencio.inicio..fim), reagende para o primeiro minuto após fim do silêncio no mesmo dia; se já passado, use o próximo dia útil às 09:00 locais.
7) Se o fuso_horario for inválido ou ausente, assuma "America/Sao_Paulo".
8) Preencha motivo com um dos códigos: "antecedencia_padrao", "antecedencia_customizada", "status_inelegivel", "ja_renovado". Use "antecedencia_customizada" quando a lista vier de preferencias_notificacao.
9) Não gere duplicatas: no máximo um candidato por beneficiário por janela_tipo na mesma referencia_execucao. 
1.3 Configurações do Agente

1.3.1 Especificação do Input

  • Mecanismo de Acionamento: Este agente é o ponto de partida do fluxo e deve ser acionado pelo envio de um objeto JSON contendo data de referência e lista de beneficiários via API. Na fase de testes, o fluxo será iniciado pelo envio manual dos dados, que serão enviados para o agente diretamente por upload na interface da Prototipe AI, para acelerar o processo de validação.
  • Tipo do input: O input inicial para o fluxo é um objeto JSON estruturado.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato: .json.
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 10.000 caracteres.

1.3.2 Especificação do Output

  • Formato de output: O output deve ser um objeto JSON contendo as janelas de vencimento calculadas e os candidatos a notificação.
  • Exemplo de Estrutura de Output:
     {"referencia_execucao":"2025-12-22T13:21:00Z","candidatos":[{"beneficiario_id":"12345","dias_para_vencer":30,"janela_tipo":"D-30","data_envio_sugerida_local":"2025-12-01T09:00:00","fuso_horario":"America/Sao_Paulo","motivo":"antecedencia_padrao","status_beneficio":"ativo"}],"regras_aplicadas":{"antecedencias_utilizadas":[30,15,7],"horario_silencio":{"inicio":"21:00","fim":"08:00"}}} 
  • Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 1.000 caracteres.

1.3.3 Parâmetros de Geração

  • Modelo: GPT-5
  • Temperatura: 0.6

1.3.4 Ferramentas do Agente

  • Documentos: Não consulta.
  • Calculadora: Não utiliza.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não utiliza.

1.3.5 Memória

1.3.6 Regras de Orquestração e Transição

Ao concluir sua execução, esse agente aciona o Agente de Elegibilidade, Deduplicação e Restrições de Comunicação (RF 2).

RF 2. Agente de Elegibilidade, Deduplicação e Restrições de Comunicação

2.1 Tarefa do Agente

Filtrar candidatos de notificação removendo inelegíveis, aplicar regras de opt-in/opt-out, cooldown e escolher o melhor canal para contato.

2.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo o output do Agente de Cálculo de Janelas de Vencimento contendo referência de execução e candidatos à notificação.

# 2. Objetivo
Filtrar candidatos de notificação e aplicar regras de opt-in/opt-out.

# 3. Regras que você deve seguir para gerar sua resposta
1) Exclua candidatos com opt_out_global == true (motivo: "opt_out_global").
2) Determine canais permitidos: liste canais com canais_consentidos == true. Se nenhum canal permitido, mova para nao_elegiveis (motivo: "sem_consentimento_canal").
3) Aplique cooldown por canal: se histórico_notificacoes_recentemente_enviadas contiver um envio para o mesmo beneficiário e janela_tipo dentro de 3 dias corridos no mesmo canal, bloqueie (motivo: "cooldown_em_vigor").
4) Bloqueie por status: se status_beneficio em {"suspenso","cancelado"}, mova para nao_elegiveis (motivo: "status_beneficio").
5) Evite múltiplos envios no mesmo dia por beneficiário: se existirem múltiplos candidatos no mesmo dia, mantenha apenas o de maior prioridade de janela (D-1 > D-7 > D-15 > D-30). Os descartados recebem motivo "duplicidade_mesmo_dia".
6) Escolha do canal_escolhido: priorize na ordem: whatsapp > sms > push > email, mas se preferencias_notificacao.canal_preferido existir e estiver consentido, use-o como primeira opção.
7) Ajuste data_envio_final_local para respeitar horario_silencio: se cair entre inicio..fim, reagende para o primeiro minuto após fim na mesma data; se já passado, reagende para o próximo dia útil às 09:00 locais.
8) Produza arrays elegiveis[] e nao_elegiveis[], cada item com beneficiario_id, janela_tipo, canal_escolhido (se aplicável), data_envio_final_local, fuso_horario e motivos[] (lista de códigos). Se elegiveis tiver tamanho > 0, defina sinalizadores.pronto_para_personalizacao = true; caso contrário, false. 
2.3 Configurações do Agente

2.3.1 Especificação do Input

  • Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior (RF 1).
  • Tipo do input: Este agente deve ser apto a receber como input o output do Agente de Cálculo de Janelas de Vencimento.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato: .json.
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 5.000 caracteres.

2.3.2 Especificação do Output

  • Formato de output: O output deve ser um objeto JSON contendo arrays de candidatos elegíveis e não elegíveis, com motivos detalhados para cada decisão.
  • Exemplo de Estrutura de Output:
     {"elegiveis":[{"beneficiario_id":"12345","janela_tipo":"D-30","canal_escolhido":"email","data_envio_final_local":"2025-12-01T09:00:00","fuso_horario":"America/Sao_Paulo","motivos":["ok"]}],"nao_elegiveis":[{"beneficiario_id":"67890","janela_tipo":"D-15","motivos":["opt_out_global","sem_consentimento_canal"]}],"sinalizadores":{"pronto_para_personalizacao":true}} 
  • Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 1.000 caracteres.

2.3.3 Parâmetros de Geração

  • Modelo: GPT-5
  • Temperatura: 0.6

2.3.4 Ferramentas do Agente

  • Documentos: Não consulta.
  • Calculadora: Não utiliza.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não utiliza.

2.3.5 Memória

2.3.6 Regras de Orquestração e Transição

Ao concluir sua execução, esse agente aciona o Agente de Personalização de Mensagens de Notificação (RF 3).

RF 3. Agente de Personalização de Mensagens de Notificação

3.1 Tarefa do Agente

Gerar o conteúdo personalizado das mensagens por canal, com instruções claras de renovação.

3.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo o output elegiveis do Agente de Elegibilidade contendo beneficiario_id, canal_escolhido, janela_tipo, data_envio_final_local, fuso_horario, idioma e dados do benefício.

# 2. Objetivo
Gerar conteúdo personalizado das mensagens por canal.

# 3. Regras que você deve seguir para gerar sua resposta
1) Idioma: utilize o idioma do beneficiário; padrão pt-BR. Datas devem ser formatadas no padrão local (dd/mm/aaaa para pt-BR).
2) Conteúdo mínimo por mensagem: saudação com nome_preferido, informe objetivo (vencimento e data), instruções claras de renovação (passo a passo de alto nível), CTA com link_renovacao quando disponível, contato de suporte (email/telefone genéricos se não informados), e aviso sobre prazo.
3) Se link_renovacao estiver ausente, substitua CTA por instrução de acesso ao portal padrão e marque variaveis_criticas_preenchidas=false; mova o item para nao_enviar com motivo "dados_insuficientes" se não houver nenhum caminho de ação claro.
4) Restrições por canal: assunto do email ≤ 78 caracteres; corpo_sms ≤ 160 caracteres para mensagem única (aceite até 306 caracteres como multi-segmento se necessário, definindo flag sms_multipart=true); WhatsApp com tom conversacional, primeira mensagem sem mídia; push com no máximo 50 caracteres no título e 120 no corpo.
5) Privacidade: não incluir dados sensíveis (CPF completo, valores, diagnósticos). Use apenas identificadores não sensíveis e o primeiro nome.
6) Personalização contextual: adapte o verbo da chamada com base na janela_tipo (ex.: D-30 "Antecipe sua renovação"; D-7 "Renove agora"; D-1 "Último dia para renovar").
7) Preencha template_id e versao_template com valores padronizados conforme mapeamento interno do tipo de benefício; se ausente, use "renovacao_v1"/"1.0".
8) Para cada item elegível, gere exatamente um bloco de mensagem no canal escolhido e deixe os demais campos de canais como null.
9) Ao final, defina sinalizadores.mensagens_geradas=true se existir pelo menos uma mensagem; caso contrário, false. 
3.3 Configurações do Agente

3.3.1 Especificação do Input

  • Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior (RF 2).
  • Tipo do input: Este agente deve ser apto a receber como input o output do Agente de Elegibilidade.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato: .json.
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 5.000 caracteres.

3.3.2 Especificação do Output

  • Formato de output: O output deve ser um objeto JSON contendo as mensagens personalizadas geradas para cada beneficiário elegível.
  • Exemplo de Estrutura de Output:
     {"mensagens":[{"beneficiario_id":"12345","canal":"email","idioma":"pt-BR","assunto":"Seu benefício vence em 30 dias","corpo_email":"Olá, Maria...","corpo_sms":null,"corpo_whatsapp":null,"link_renovacao":"https://exemplo.com/renovar/12345","prazo":"2025-12-31","janela_tipo":"D-30","variaveis_criticas_preenchidas":true,"template_id":"renovacao_v1","versao_template":"1.0"}],"nao_enviar":[{"beneficiario_id":"67890","janela_tipo":"D-15","motivo":"dados_insuficientes"}],"sinalizadores":{"mensagens_geradas":true}} 
  • Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 2.000 caracteres.

3.3.3 Parâmetros de Geração

  • Modelo: GPT-5
  • Temperatura: 0.6

3.3.4 Ferramentas do Agente

  • Documentos: Não consulta.
  • Calculadora: Não utiliza.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não utiliza.

3.3.5 Memória

  • Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para nenhum agente subsequente.
  • Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Plano de Despacho e Agenda de Envios (RF 4).

3.3.6 Regras de Orquestração e Transição

Ao concluir sua execução, esse agente aciona o Agente de Plano de Despacho e Agenda de Envios (RF 4).

RF 4. Agente de Plano de Despacho e Agenda de Envios

4.1 Tarefa do Agente

Transformar mensagens personalizadas em um plano de envio com datas/horários finais e prioridades, respeitando horários de silêncio e proximidade do vencimento.

4.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo o output do Agente de Personalização contendo mensagens personalizadas para envio.

# 2. Objetivo
Transformar mensagens personalizadas em um plano de envio com datas/horários finais e prioridades.

# 3. Regras que você deve seguir para gerar sua resposta
1) Janela de envio: se data_envio_final_local existir, use-a como base; ajuste para o horário comercial padrão 09:00–20:00 locais, respeitando quiet_hours (21:00–08:00) e finais de semana: se cair fora, reagende para o próximo dia útil às 09:00.
2) Prioridade: calcule por proximidade do vencimento na data do envio (D-1 prioridade 1, D-7 prioridade 2, D-15 prioridade 3, D-30 prioridade 4). Menor número = maior prioridade.
3) Tentativas: planeje até 3 tentativas por item (tentativa 1 no horário planejado; tentativa 2 +6h; tentativa 3 +12h), todas dentro do horário comercial e fora de quiet_hours; se não couber, desloque para o próximo dia útil às 09:00.
4) Expiração: defina expiracao_envio_local = data_vencimento + 1 dia às 00:00 locais; nenhuma tentativa deve ser agendada após a expiração.
5) Rate limiting básico: garanta no máximo 1 envio por beneficiário por hora; se houver conflito, postergue a tentativa subsequente para a próxima janela válida.
6) Gere id_correlacao determinístico concatenando beneficiario_id, janela_tipo, canal e AAAAMMDD da data de envio da primeira tentativa.
7) Produza plano_envio[] com campos: beneficiario_id, canal, enviar_em_local, janela_tipo, prioridade, tentativa, expiracao_envio_local, id_correlacao. Defina sinalizadores.plano_pronto = true se houver ao menos um item. 
4.3 Configurações do Agente

4.3.1 Especificação do Input

  • Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior (RF 3).
  • Tipo do input: Este agente deve ser apto a receber como input o output do Agente de Personalização.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato: .json.
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 5.000 caracteres.

4.3.2 Especificação do Output

  • Formato de output: O output deve ser um objeto JSON contendo o plano de envio detalhado com datas e horários finais, priorizações e tentativas de envio.
  • Exemplo de Estrutura de Output:
     {"plano_envio":[{"beneficiario_id":"12345","canal":"email","enviar_em_local":"2025-12-01T09:00:00","janela_tipo":"D-30","prioridade":2,"tentativa":1,"expiracao_envio_local":"2026-01-01T00:00:00","id_correlacao":"12345-D-30-email-20251201"}],"politicas_aplicadas":{"quiet_hours":{"inicio":"21:00","fim":"08:00"},"horario_comercial":{"inicio":"09:00","fim":"20:00"}},"sinalizadores":{"plano_pronto":true}} 
  • Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 2.000 caracteres.

4.3.3 Parâmetros de Geração

  • Modelo: GPT-5
  • Temperatura: 0.6

4.3.4 Ferramentas do Agente

  • Documentos: Não consulta.
  • Calculadora: Não utiliza.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não utiliza.

4.3.5 Memória

  • Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para nenhum agente subsequente.
  • Visibilidade da Resposta: A resposta gerada por este agente é o resultado final do fluxo e não é passada para outros agentes internos.

4.3.6 Regras de Orquestração e Transição

A execução deste agente finaliza o fluxo. O plano de envio gerado é o resultado que deve ser disponibilizado ao usuário.

© 2025 prototipe.ai. Todos os direitos reservados.