Copilot Agent no Atendimento de Cooperativas de Crédito

Por Erick Alves de Moura
Copilot Agent no Atendimento de Cooperativas de Crédito

O problema que toda cooperativa de crédito conhece bem

A caixa de entrada do atendimento de uma cooperativa recebe o mesmo tipo de pergunta dezenas de vezes por dia. Qual a taxa do crédito consignado este mês? Qual o horário de funcionamento da agência de bairro? Quais documentos preciso levar para abrir conta? Cada uma dessas mensagens passa pelas mãos de um atendente antes de virar uma resposta, mesmo quando a resposta já está escrita em algum manual interno ou planilha de produtos.

Isso consome tempo de gente qualificada com tarefa repetitiva e ainda cria fila. O Copilot Studio resolve essa categoria específica de problema com um recurso pouco explorado: um copilot agent que não só responde em um chat, mas também recebe um gatilho de e-mail, processa a mensagem, consulta fontes de dados internas e devolve a resposta formatada direto para o remetente, sem um humano no meio.

Este artigo detalha a arquitetura completa desse agente, adaptada para o cenário de atendimento de uma cooperativa de crédito, com os pontos de atenção que fazem a diferença entre um protótipo bonito e algo que pode rodar em produção.

O que o agente faz, na prática

Imagine uma cooperativa fictícia, a Cooperativa Vale Crédito. O setor de relacionamento com associados recebe uma mensagem perguntando a taxa do crédito para veículos e o horário de atendimento da agência central. Minutos depois, um agente construído no Copilot Studio responde por e-mail, com a taxa correta consultada em uma planilha viva e o horário extraído de uma base de conhecimento, tudo em um texto formatado como se um atendente humano tivesse escrito.

Para chegar nesse resultado, o agente precisa de quatro peças: instruções claras de formatação, uma base de conhecimento para perguntas frequentes, uma ferramenta conectada a uma fonte de dados estruturada para informações que mudam com frequência, e um gatilho que dispara o processamento quando um e-mail chega na caixa de entrada.

Passo 1: Criar o agente e definir as instruções de resposta

No Copilot Studio, crie um novo agente e dê um nome que identifique claramente sua função, por exemplo Agente de Resposta Vale Crédito. Na descrição, seja específico sobre o escopo: “responde mensagens enviadas à caixa de atendimento a associados da Cooperativa Vale Crédito”. Essa descrição não é decorativa, ela influencia como o modelo interpreta a intenção da conversa e ajuda a evitar que o agente tente responder assuntos fora do domínio dele.

Depois, escreva instruções detalhadas sobre o formato da resposta. Isso é o que separa um e-mail que parece profissional de um e-mail que parece gerado por robô. Um conjunto de instruções que funciona bem:

  • Responder como se estivesse escrevendo um e-mail de volta ao remetente
  • Ser claro e direto, sem incluir informação que não foi pedida
  • Abrir com “Olá, (Nome do Associado),” em parágrafo separado. Se não houver nome identificável, usar “Olá,”
  • Fechar com a assinatura “Esta é uma resposta automática gerada por inteligência artificial”, também em parágrafo separado, para deixar claro ao associado que não houve intervenção humana naquela resposta
  • Usar tags HTML apenas para parágrafos e quebras de linha, nunca para negrito, itálico ou sublinhado
  • Usar listas com marcadores em vez de tabelas HTML, porque tabelas quebram feio na maioria dos clientes de e-mail
  • Não escrever como IA: nada de emojis, nada de travessão, texto direto como uma pessoa escreveria

Essa última instrução parece cosmética, mas tem peso institucional. Um associado que recebe uma resposta cheia de emojis ou com o tom genérico de chatbot perde confiança na cooperativa mais rápido do que perderia com uma resposta simplesmente mais lenta.

Passo 2: Construir a base de conhecimento de perguntas frequentes

Crie uma biblioteca de documentos no SharePoint e, dentro dela, um documento Word com perguntas e respostas no formato pergunta seguida de resposta, cobrindo os temas que mais chegam na caixa de atendimento: horários das agências, documentação para abertura de conta, prazos de análise de crédito, canais de atendimento, política de portabilidade salarial, o que for relevante para a operação da cooperativa.

No Copilot Studio, vá até a aba de conhecimento e escolha carregar arquivo do SharePoint. Selecione o documento e confirme. O arquivo aparece na lista de conhecimento com status “Pronto” assim que o agente termina de indexá-lo.

Aqui está o ponto que costuma ser ignorado e que em uma cooperativa é inegociável: vá até as configurações do agente e desative permitir respostas sem fundamentação (allow ungrounded responses) e usar informações da web. Sem essa dupla desativação, o modelo pode complementar respostas com conhecimento genérico da internet ou até inventar informação quando a base de conhecimento não cobre a pergunta. Em atendimento financeiro, isso é risco real de compliance. Um agente que “acha” uma taxa ou inventa um prazo de análise de crédito é pior do que nenhum agente.

Passo 3: Conectar dados que mudam com frequência via Excel

Perguntas frequentes cobrem informação estática, mas taxas de produtos de crédito mudam periodicamente e não fazem sentido dentro de um documento Word que alguém precisa lembrar de atualizar. Para esse tipo de dado, o caminho é uma planilha Excel estruturada como tabela, também salva na biblioteca do SharePoint, com colunas como Produto, Modalidade, Taxa ao Mês e Prazo Máximo em Meses.

No menu de ferramentas do agente, adicione a ação do conector Excel Online (Business) chamada Listar linhas presentes em uma tabela. Aponte para o arquivo e a tabela corretos. No campo de descrição do parâmetro de entrada Filter Query, escreva uma instrução para o modelo compor a consulta OData sozinho, algo como:

Compor uma consulta de filtro OData para restringir os produtos retornados:
Produto eq '(Nome do Produto)'

O nome do produto é a linha de crédito oferecida pela cooperativa. Em "crédito consignado INSS", 
consignado INSS é o nome do produto. Se o usuário escrever errado ou usar sinônimo, 
corrija para o nome exato cadastrado na tabela.
Exemplo: "consignado inss" vira "Consignado INSS"

Esse tipo de instrução dentro da descrição do parâmetro é o que faz o agente lidar com digitação incorreta e variações de linguagem sem exigir um dicionário de sinônimos configurado à parte. É Power Fx implícito guiando um parâmetro de API, não é código, mas funciona como uma camada de normalização de texto.

Passo 4: Testar no chat antes de expor ao e-mail

Abra a janela de teste do Copilot Studio e simule perguntas reais antes de conectar o gatilho de e-mail. Pergunte a taxa de um produto específico e o horário de uma agência na mesma mensagem. O comportamento esperado é o agente acionar a ferramenta de Excel para a taxa e buscar na base de conhecimento para o horário, depois combinar as duas informações em uma única resposta formatada.

Esse teste isolado no chat é o momento certo para ajustar as instruções de formatação, porque depurar formatação de e-mail depois que o gatilho está ativo é bem mais lento. Erros comuns aparecem aqui: o agente inclui informação não pedida, ou ignora a instrução de saudação, ou usa uma tabela HTML mesmo tendo sido instruído a não usar. Ajuste as instruções, teste de novo, só avance quando o comportamento estiver estável.

Passo 5: Configurar o gatilho de e-mail

Na aba de visão geral do agente, seção de gatilhos, adicione um novo gatilho. Se a caixa de atendimento for uma mailbox compartilhada, o que é o cenário mais comum em cooperativas, use o gatilho quando um novo e-mail chega em uma caixa de correio compartilhada. Se for uma caixa pessoal, use o gatilho equivalente sem o parâmetro de mailbox compartilhada.

Preencha o endereço da mailbox de origem e a pasta, normalmente Inbox, e crie o gatilho. Depois, edite o gatilho diretamente no Power Automate e configure a opção de dividir por valor (split on value). Sem essa configuração, o fluxo processa um lote de e-mails de uma vez em uma única execução, o que quebra a lógica de resposta individual. Com o split on configurado, cada e-mail recebido dispara sua própria execução do fluxo.

Na ação que envia o prompt para o agente (Send a prompt to the specified Copilot for process), o campo de mensagem precisa receber o corpo do gatilho convertido em texto, porque o agente não processa dados do tipo objeto diretamente no campo de mensagem:

string(triggerBody())

Esse detalhe evita um erro silencioso comum: o fluxo dispara, mas o agente recebe um objeto malformado e responde com algo genérico ou vazio, sem indicar claramente onde está o problema.

Passo 6: Remover citações da resposta

Quando o agente responde usando a base de conhecimento, ele naturalmente inclui marcadores de citação, do tipo [1], que fazem sentido em uma interface de chat mas não têm utilidade nenhuma dentro de um e-mail, porque o destinatário não consegue clicar ou visualizar a referência.

Para remover isso, crie um novo tópico chamado Resposta Gerada por IA com o gatilho “AI Response Generated”. Esse gatilho intercepta a resposta do modelo antes que ela seja enviada, permitindo alterar o texto. Defina a variável de continuidade da resposta como falsa para impedir o envio automático, e então limpe o texto com uma fórmula Power Fx antes de enviá-lo você mesmo:

Trim(
  With(
    {
      CleanedFooter: First(Split(System.Response.FormattedText, "[1]:")).Value
    },
    Substitute(
      Substitute(
        Substitute(
          Substitute(
            Substitute(
              Substitute(
                CleanedFooter, "[1]", ""
              ), "[2]", ""
            ), "[3]", ""
          ), "[4]", ""
        ), "[5]", ""
      ), "[6]", ""
    )
  )
)

A fórmula faz duas coisas em sequência: primeiro corta o texto no ponto onde começa o rodapé de citações (se não houver citação, o texto inteiro é preservado), depois remove qualquer marcador inline de [1] a [6] que tenha sobrado no meio do corpo da resposta.

Passo 7: Enviar como e-mail ou como chat, dependendo do canal

O mesmo tópico precisa decidir se a resposta vai como e-mail ou como mensagem de chat, dependendo de qual canal originou a conversa. Isso importa porque durante os testes você continua usando a janela de chat, e não quer que toda resposta de teste dispare um e-mail real.

Faça isso lendo a variável ChannelData com uma estrutura YAML que descreve os campos esperados do gatilho do Power Automate:

kind: Record
properties:
  attachmentSizes:
    type:
      kind: Table
  clientActivityID: String
  enableDiagnostics: Boolean
  testMode: String
  triggerTest:
    type:
      kind: Record
      properties:
        flowId: String
        flowRunId: String
        payload: String
  trigger:
    type:
      kind: Record
      properties:
        connectorDisplayName: String
        connectorIconUri: String
        displayName: String
        id: String
        triggerType: String
        version: String

E outra estrutura para interpretar o corpo original do e-mail recebido, guardado na última mensagem processada:

kind: Record
properties:
  attachments:
    type:
      kind: Table
  body: String
  bodyPreview: String
  conversationId: String
  from: String
  hasAttachments: Boolean
  id: String
  importance: String
  internetMessageId: String
  isHtml: Boolean
  isRead: Boolean
  receivedDateTime: String
  subject: String
  toRecipients: String

Com esses dois objetos interpretados, a ação de responder ao e-mail original consegue montar o campo de destinatário, o assunto e o corpo com base em dados reais do e-mail recebido, e a lógica condicional do tópico decide se manda pela ação de e-mail ou apenas exibe a mensagem no chat de teste.

Passo 8: Publicar e testar de ponta a ponta

Salve e publique o agente. Envie um e-mail de teste para a caixa de atendimento simulando uma dúvida real de associado, com pergunta sobre taxa de produto e outra sobre horário de agência na mesma mensagem. O fluxo deve disparar, o agente deve acionar a ferramenta de Excel e a base de conhecimento, formatar a resposta segundo as instruções definidas no passo 1, remover as citações, e enviar de volta ao remetente original.

Onde isso pode falhar e por que

Três problemas aparecem com frequência em implementações reais desse padrão e vale antecipar cada um.

O primeiro é o campo de ID da mensagem original na ação de resposta. Esse valor precisa vir corretamente do corpo interpretado do gatilho, e um erro de mapeamento nessa etapa faz a ação de resposta falhar silenciosamente no Power Automate mesmo com o teste do agente mostrando sucesso. Vale sempre checar o histórico de execuções do flow, não só o resultado do teste dentro do Copilot Studio.

O segundo é a divergência entre o texto testado no chat e o texto que efetivamente chega por e-mail. Isso costuma acontecer quando a assinatura de resposta automática configurada nas instruções do agente é sobrescrita ou removida em algum ponto do tópico de interceptação de citações. Vale testar o tópico de remoção de citações isoladamente antes de assumir que o problema está nas instruções gerais.

O terceiro, e o mais importante para uma cooperativa, é de natureza regulatória e não técnica. Um agente desse tipo nunca deve responder sobre saldo de conta, posição de investimento, dados cadastrais específicos de um associado ou qualquer informação que exija autenticação e verificação de identidade. O escopo correto é informação de produto e institucional, pública por natureza. Para tudo que envolve dado pessoal de associado protegido pela LGPD, o desenho correto passa por outro fluxo, com autenticação prévia e, idealmente, revisão humana antes do envio.

Licenciamento e escala

Cada execução desse agente consome mensagens dentro do plano de Copilot Studio da organização, seja via licença por usuário ou via capacidade paga por mensagem. Uma caixa de atendimento com volume alto de e-mails repetitivos pode gerar um custo relevante rapidamente, e isso precisa entrar na conta antes de decidir o escopo do agente. Faz sentido começar restringindo o agente às perguntas de maior volume e menor risco, medir o consumo real por algumas semanas, e só depois expandir o escopo de conhecimento e ferramentas conectadas.

Onde isso se encaixa na operação de uma cooperativa

Esse padrão de agente resolve bem a fatia de atendimento que é repetitiva, factual e de baixo risco: horário de funcionamento, taxas públicas de produtos, documentação necessária, canais de contato. Ele não substitui o atendimento humano para negociação de crédito, renegociação de dívida ou qualquer interação que exija julgamento e autenticação. A arquitetura certa trata o agente como um filtro de primeiro nível, que absorve o volume repetitivo e libera a equipe para o que realmente exige uma pessoa.

Montar essa arquitetura corretamente, com os controles de governança certos entre conhecimento, dados sensíveis e canais de envio, é o tipo de decisão que vale desenhar com cuidado antes de publicar. Se sua cooperativa está avaliando esse caminho, a Trinapse ajuda a desenhar esse desenho de arquitetura desde o primeiro agente.

Ver mais artigos

Entre em Contato

Vamos juntos transformar sua dor
em solução!

#moveFast