Você recebe e-mails que contenham informações que você precisa processar manualmente? No vídeo de hoje, eu vou demonstrar para vocês como realizar a extração dessas informações de forma automatizada. Olá, sejam todos bem vindos!
Meu nome é o Wolenberg, e no vídeo de hoje vou demonstrar para vocês o processo de extração de conteúdo do corpo de e-mail. Imagine um cenário onde você recebe diversos e-mails diários com informações como notas fiscais, sistemas financeiros, informações de dados coletados por terceiros dentro de sua caixa do Outlook. O processo de criação irá extrair essa informação de um simples corpo de e-mail e transformá- lo, por exemplo, em uma tabela de Excel.
Com isso, fazendo o aproveitamento daquela informação de maneira dinâmica, trazendo para vocês a melhor performance possível e sem a utilização de nenhum código. Fique comigo até o final do vídeo e acompanhe o nosso processo de criação. Agora vamos iniciar o estudo de caso, explicar o meu cenário a vocês para que vocês entendam melhor o uso da ferramenta.
No meu caso, um exemplo que eu criei aqui hipotético, eu estou recebendo diversos e-mails, no mesmo no caso de um sistema que eu construí e realização de reembolso despesas onde me informam algumas informações chave. Então o nome do usuário, a descrição da despesa, a data, a categoria e o seu valor estão contidas no texto dentro do corpo do meu e-mail. Então com isso irei utilizar o Power Automate para fazer a extração e a leitura desse e-mail.
Então ele primeiro faz uma leitura do simples texto, transformando esse texto em texto que vem em HTML, dentro do conteúdo do e-mail ao texto simples, para que o GPT consiga fazer uma instrução, um prompt de comando via GPT e no final fazer a extração daquilo construindo uma tabela. O meu exemplo será uma tabela em formato CSV e pode ser utilizada perfeitamente dentro de um arquivo Excel. Terminando todos esses processos de receber o e-mail, pode ser em diversos cenários, pode ser a utilização de notas fiscais, notificações sobre novos produtos cadastrados, notificações sobre rastreio de produtos ou do sistema financeiro, como é o meu exemplo.
. . No meu caso, eu irei usar a modelagem de exemplo de utilização de modificações de custos por um setor financeiro, mas poderia ser qualquer ambiente que convém para fazer a sua extração.
E por último, após feito a análise e extração de um conteúdo em um texto não formatado, porque esse texto não vem tabela, não tem formatação, ele foi feito exclusivamente como um texto simples dentro do e-mail, eu consigo obter o resultado e tabela de extração utilizando então, por exemplo, um Excel para facilitar a nossa padronização, leitura e ordenação de arquivos. Então isso é muito utilizado em setores quando você precisa extrair dados de e-mails disparados automáticos para outros sistemas, quando você precisa extrair algumas informações relevantes daqueles emails, no caso, utilizando somente as palavras chaves dentro do corpo do e-mail e agrupando isso dentro de um arquivo, por exemplo CSV, Tabela do Excel. Iremos ver tudo isso aqui na nossa construção.
Está bom? Estamos aqui na nossa parte inicial, bem no nosso make. powerautomate.
com e vamos criar um novo fluxo, tá bom? Esse fluxo será de maneira automatizada, onde iremos coletar respostas de e-mail toda vez que ele chegar em uma determinada caixa inbox podemos fazer esse filtro e vamos iniciar ele aqui no fluxo de nuvem automatizado. Vou dar um nome a esse fluxo, vou chamar de 'Extrair dados do e-mail via GPT.
' O gatilho dele vai ser toda vez que eu receber um e-mail. Então vamos procurar aqui o gatilho do Outlook, quando um e-mail é sinalizado, quando um novo email é recebido, é esse aqui que me interessa, vou fazer a seleção do gatilho e iniciar o meu fluxo com algumas configurações iniciais. O meu fluxo foi carregado, vou fazer um pequeno filtro aqui que ao invés de ser a minha pasta inbox do Outlook, eu vou selecionar uma pasta que eu faço somente para testes individuais dentro do meu próprio Outlook, eu criei uma pasta chamada 'Self Tests', então vou selecionar, toda vez que cai um e-mail nessa pasta ele irá ser direcionado para o gatilho desse fluxo.
Está bom? O gatilho desse fluxo será acionado a partir do instante que eu receber um e-mail nessa caixa específica que eu selecionei aqui no conector do, 'quando um novo e-mail é recebido do Power Automate' utilizando o conector do Outlook. Vamos criar uma nova etapa, e essa nova etapa aqui vai ser justamente a parte de converter o conteúdo HTML que vem dentro de um e-mail, do corpo do e-mail em texto, o que eu quero é transformar isso em texto simples, aqui depois o GPT faça a análise do conteúdo dentro daquele texto.
Então vou filtrar aqui inicialmente a opção HTML e eu vou ter que essa função de content conversion HTML em texto, está em versão prévia, mas já está funcionando normalmente pra todo público. Todos usuário do Power Automate. Ele vai pedir simplesmente o conteúdo, o documento em HTML a ser convertido em texto sem formatação.
Nesse caso, o único parâmetro que eu vou passar aqui é o próprio corpo do e-mail, então eu vou selecionar aqui o corpo da mensagem, que já é um arquivo HTML e nada mais. Isso aqui vai funcionar pra mim como uma conversão em texto simples, como a função prevê que exista dentro desse conector, dentro da utilização de conversão de HTML em texto. Pronto, pessoal, agora a gente já fez a conversão do texto em HTML.
E vem a parte mais importante, que é justamente a integração com GPT. Nessa parte aqui você vai ter que efetuar literalmente o prompt. Então vamos procurar aqui uma nova etapa e vamos filtrar aqui por GPT.
Dentro dessas etapas eu tenho que criar um texto com um GPT que também está em versão prévia, porém isso já está funcionando para o público de uma maneira geral, assim como a conversão do HTML em texto. Então a gente vai ter que criar um prompt, o que é que eu sugiro para você, 'Forneça instruções detalhadas sobre o texto que deseja que o modelo crie ou use um modelo. ' Primeiro eu vou construir em inglês, eu vou passar as instruções em inglês, porque ele funciona melhor em inglês e pode tentar utilizar em português, mas é um prompt, ele vai fazer o cenário que você deseja ou não.
Eu vou passar algumas instruções para ele em inglês nesse prompt e logo após ele vai fazer exatamente o que a gente previu ou fazer algum ajuste aqui no prompt para que ele possa remover a informação da maneira desejada. Tá bom? Então, nessa parte é justamente o que eu vou começar a explicar.
Por exemplo, 'extraia a categoria', então eu posso dizer categoria, já que está em português, eu posso colocar entre aspas a "Categoria da despesa", o que o GPT vai fazer, vai procurar exatamente esse nome, no meio do texto simples. E aí eu posso colocar os outros campos que me interessa, 'e e usuário e mais. e usuário.
. . ' Que mais?
Descrição da despesa. Na verdade não tá Descrição da despesa Vamos corrigir aqui. 'e o usuário que mais que temos ali naquele texto?
'Data, descrição da despesa, categoria da despesa categoria da despesa encontre o número do valor em reais e escrever do mesmo jeito, no seguinte e-mail, pronto, eu fiz isso em totalmente linguagem natural, então não usei nenhum código, falei pra ele os campos que eu queria extrair daquele texto simples que foi convertido agora em HTML para texto, e agora sim, com esse prompt aqui eu posso ir otimizando ele e já testar, ver o que acontece daqui pra frente, qual é o resultado que ele consegue fazer com essa análise. Tá bom? Vamos lá, vamos criar o prompt aqui com essa primeira parte inicial.
Extrair, testar, provavelmente não vai encontrar nada, porque ele não tem nada aí no corpo, não tem nada carregado, ele vai dar um erro e não vai encontrar nada. Ok, ele já deu um teste aqui, onde uma descrição da despesa compra de material de escritório, usuário, João, Data 10/05/2020. Então ele já está basicamente no formato que eu espero.
A gente tem que na verdade agora fazer com que ele leia o que está aqui no corpo do e-mail e não um texto aleatório que ele criou, porque o GPT, se ele não encontrou atualização nenhuma, ele cria um texto aleatório. Vamos especificar mais coisas aqui nesse prompt, por exemplo, use o formato CSV para sua resposta, ou seja, eu quero, estou especificando ao ponto que eu quero um arquivo CSV como resposta e não simplesmente do jeito que está. 'Adicione uma quebra de linha no final do seu arquivo CSV e uma nova coluna chamada 'comentário' e coloque alguns insights sobre o campo, descrição da despesa e mais uma parte de instrução em linguagem natural para o nosso GPT.
Agora vamos fazer uma tratativa, porque pode ser que um caia um e-mail, incorreto, ou o não gere o valor que eu esperava dentro desse prompt. . .
Vamos fazer umas tratativas de que, se der erro, faça isso, se não encontrar o arquivo, faça isso. . .
a gente também pode fazer isso. Linguagem natural dentro do GPT, tá bom? 'Se o texto abaixo é pouca ou algumas poucas palavras, ou parecer que o texto é um placeholder, não é nada demais, responder: Desculpe, não consegui extrair essa informação.
' Isso aqui é um 'se', tá pessoal? Literalmente o 'se' eu estou fazendo dentro de um prompt de comando, então se você nunca viu isso, não está tão acostumado a ver lógica de programação, etc. Dê uma olhadinha nas condicionais operadores lógicos, mas o que você está utilizando aqui é a linguagem natural.
"Se você não encontrar isso, faça aqui, se não. . .
" Ainda tem a opção do 'se não' eu posso usar a linguagem natural aqui, posso falar: 'Otherwise, de outra maneira, responda com a informação extraída'. Informação extraída da onte? Aqui eu digo que vai ser o começo do texto, aqui eu vou ter o final no arquivo de texto.
E aqui eu botei o final do texto. Só falta o conteúdo dinâmico, que vem justamente do meu HTML convertido em texto. Agora nessa parte, o que eu pego é esse 'conteúdo do texto sem formatação', é isso aqui que eu quero.
Tá pronto, o nosso prompt, está bem completinho, eu poderia fazer mais observações, mais coisas, mais tratativas, mais avaliações, mas eu acho que vocês entenderam a ideia. A ideia é tentar extrair de um texto simples informações chaves, palavras chaves que eu já defini aqui dentro dessa parte aqui com palavras, coloquei o negrito propositalmente como o Usuário, Descrição da despesa, Categoria da despesa, valor e data. Isso foi um exemplo simples, poderia ser qualquer outro no ambiente de vocês.
Voltamos aqui para o nosso prompt e vamos criar o prompt. Vamos testar, e vocês vejam agora que eu referenciei o conteúdo do texto sem formatação e a resposta que ele me dá, é 'Desculpa, não consegui extrai essa informação. ' Ou seja, inclusive fiz uma tratativa de não encontrar valores.
Então aqui ele já está me falando que não encontrou o valor. Extrai a descrição da despesa e usuário e data e categoria da despesa. Encontre o número de valor no seguinte e-mail.
Use uma tabela CSV formatada como sua resposta. Adicione uma quebra de linha no final do seu arquivo CSV. Crie uma nova coluna chamada Comentário e coloque alguns ensaios ideias sobre a descrição da despesa.
Se o texto abaixo for menor que algumas palavras, ou parecer um placeholder, responda 'Desculpa, não consegui extrai essa informação' De outra maneira, pegue a informação extraída, pegue o início do texto, o conteúdo do texto e final do texto. Agora vamos fazer um teste real de um realmente conteúdo. Se tudo der certo, eu vou querer uma nova etapa, porque eu vou querer justamente exportar a resposta do GPT ou exportar para um CSV, então vou gerar um Excel da minha vida aqui, qualquer coisa para poder ficar dentro do meu contexto aqui, desse cenário de extrair informação.
Então vou usar o 'Criar arquivo' criar um arquivo CSV dentro do meu OneDrve por exemplo, posso usar o OneDrve for Business para isso. O próximo passo agora é criar um arquivo no meu OneDrve, na pasta que eu direcionar para isso e criar também. Então vou selecionar uma pasta qualquer aqui do meu OneDrve, e selecionar essa que se chama PowerApps, por exemplo, vou chamar da minha pasta Power Apps, o nome do arquivo vai ser despesas extraídas, .
CSV, é importante colocar um . CSV, aqui para eu saber que isso aqui é minha despesa que foi extraída do texto do e-mail, no caso, e o conteúdo do arquivo é simplesmente o texto e gerado pelo GPT. Vou pegar o texto que foi gerado pelo GPT, colocar aqui como o conteúdo do arquivo, somente isso, vejam que é um fluxo de uma, duas, três, quatro etapas muito simples, nenhum código, inclusive com formatação condicional, etc, mas nenhum código foi utilizado aqui.
Não fiz nenhuma expressão, nada do tipo e vamos ver agora na prática ele funcionando. Bom, agora vamos para a parte de testar a nossa automação. Com o nosso Power Automate criado aqui com essas pequenas etapas de extração de texto GPT, vamos clicar aqui no 'Testar', vocês podem observar que ele dá um pequeno aviso aqui, tá?
De criar o texto com GPT. É um aviso, não chega a ser um erro, não precisa se preocupar com isso. O único detalhe é que ele diz que a ação de criar texto com GPT não tem uma ação de aprovação do conteúdo depois dela.
É sugerivel que, você faça uma aprovação, algum humano aprove o texto gerado pelo GPT pra não ocorrer nenhuma falha de interpretação ou algo do tipo, mas isso é um opcional. Nesse caso, ao adicionar uma ação inicial e aguardar a aprovação de texto após criar o texto. Nesse caso, a gente tá só extraindo o trecho de e-mail.
Um cenário simples não precisa ser tão complexo, mas se for fazer, post em mídias sociais algo do tipo. . .
Você quer utilizar diretamente o conteúdo extraído do GPT, é recomendado que passe por uma aprovação no caso, por alguma pessoa humana lendo o conteúdo e depois sim, aprovando ele para ser postado em diversos locais. Bom, o caso da gente é mais simples, eu vou só fazer o teste aqui manual e ele vai salvar e testar e pedir que eu faça agora para ver funcionando, envie um novo e-mail para sua caixa de entrada. Se vocês lembram, é um e-mail padrão que está aqui de reembolso e ele foi feito pelo nosso aplicativo, então dentro do aplicativo fiz um serviço de enviar um e-mail confirmando com a despesa foi cadastrada e após esse e-mail cai na minha caixa, ele dispara o fluxo do GPT, então vou colocar aqui.
Para quem não viu, eu criei esse aplicativo e ele está na nossa playlist, eu criei esse aplicativo a partir de um papel e um lápis, fazendo um sistema de solicitação de reembolso, com comprovantes, tudo bonitinho. . .
Pra quem não viu a criação desse aplicativo, recomendo que assista o vídeo. Vai estar algum card por aqui, em algum lugar, assistam e observem a criação desse aplicativo. Por enquanto eu só vou fazer o uso comum dele que é colocar aqui, 'solicito reembolso de minhas despesas com alimentos durante a minha viagem.
' Isso aqui é o suficiente. Um texto simples vai ser feito a análise lá dentro do GPT. Vou colocar aqui qualquer data pode ser retroativo, pode ser data atual.
Vou colocar aqui um valor 258,50 centavos, a categoria poderia ser qualquer um. Vou colocar alimentação e dados bancários para essa rotina, não interessa. E comprovante também não.
Isso aqui ficou para outra rotina no aplicativo. Vou enviar a solicitação e aguardar que a solicitação me notifique por e-mail. Vai chegar um email, vai chegar nessa pasta aqui, Self Tests que eu coloquei pra vir diretamente para essa pasta.
Depois que for feito o registro no aplicativo, salvar no SharePoint, o registro da despesa, eu vou ser notificado com a nova despesa e aqui todos os campos lá que eu preenchi também vão ser destacados aqui nesse corpo de e-mail e vai vim pelo aplicativo aí também todos os dados ok. Novo registro despesa. Acabou de chegar, uma nova despesa foi cadastrada pelo usuário Wolenberg, descrição da despesa: "Solicito reembolso para.
. . " aquilo tudo que eu escrevi, a data do CEP, a categoria da despesa e alimentação, o valor 258,50, exatamente como colocamos no nosso aplicativo.
Isso também fez disparar o meu fluxo. Meu fluxo está em execução aqui agora, ele entendeu que chegou um novo e-mail na minha caixa selecionada e ele já deu execução. Com isso, vamos entender aqui o que foi que ele fez nessa execução individual.
Então pessoal, podemos observar agora que foi executado o nosso fluxo, então quando o e-mail for recebido na minha pasta de Self tests, que é a pasta que eu estou agora, atualmente, ele converte o conteúdo de HTML do texto em HTML simples, então um texto simples ele converte o HTML do e-mail em texto simples. Então podemos ver que a entrada do HTML do no corpo do e-mail e a resposta em texto simples aqui abaixo, conteúdo e texto sem a formatação. Exatamente o conteúdo que a gente colocou lá, o usuário reembolsou esse preço.
Pode ver que mesmo dando destaque as palavras usuário, data, despesa, valor. . .
Isso indifere para o GPT. Eu fiz isso mais pra ilustrar para vocês mesmo aqui no caso que são os campos chave, está no corpo do email, mas para o GPT indefere porque eu utilizei o nome de campos para fazer a seleção de criar o texto com GPT. Então o texto foi criado.
Ele achou aqui o usuário, a descrição da despesa, a data, a categoria da despesa, o valor e um comentário. Tem até o comentário aqui, vamos ver como é que ele fez isso. Ele terminou, concluiu.
Criou um arquivo, . CSV. O arquivo está dentro da minha pasta do OneDrve, com o nome 'Despesas extraídas.
CSV. Eu tenho esse despesa que foi outro teste, e tem as despesas extraídas, que foi o que eu criei agora. Podemos abrir aqui e ver que ele criou uma planilha em Excel e está me dando, na verdade um arquivo CSV, que o Excel lê dessa forma, o Excel aqui pode ler com dificuldade, porque ele está em inglês e tem alguns caracteres especiais que não é reconhecido no inglês.
Eu posso simplesmente fazer o download do arquivo e abrir o meu Excel desktop mesmo, tá bom? Pra facilitar o processo de entendimento. Nesse caso eu vou utilizar aqui dados de teste txt, csv e vou conectar com o arquivo que eu acabei de fazer o download.
Coisas extraídas vou carregar ele aqui para tela carregando já, são poucos arquivos, é só pra ilustrar mesmo. Ele encontrou aqui coluna um, coluna dois. Tem alguns problemas, tá vendo?
Na leitura, na largura fixa, delimitado a vírgula, no caso, agora sim, vírgula. Ele encontrou aqui algumas coisas e vamos carregar. Bom, tem algumas melhorias, por exemplo, de posicionamento, ele achou aqui no comentário que seria o valor que veio logo após a virgula porque eu utilizei virgula.
Nesse caso o mais ideal seria ponto, mas vocês podem ver que ele trouxe o usuário, a descrição da despesa, a data, a categoria, um valor que nesse caso seria o 50, faltou somente o comentário, que se eu abrir aqui o arquivo puro, o CSV puro, sem adição nenhum, vocês podem ver que o comentário existe. Tá, na verdade ele não achou a colunpor causa da vírgula e ele diz 'Essa despesa parece ser relacionada a uma viagem, possivelmente para fins de trabalho. ' Isso aqui foi um texto aleatório gerado pelo próprio gerador do GPT um texto de comentários com isso, ele trouxe pra gente o valor baseado na minha resposta na extração de arquivo vou fazer o mesmo processo novamente.
Por exemplo, vou mudar o texto e falar outra coisa, falar em valor para pagar a multa no estacionamento do shopping na cidade, por exemplo, mudei totalmente o contexto. Vou mudar a data, vou mudar o valor também, vou colocar um valor inteiro pra não ter problema na vírgula, vou colocar R$350, eu poderia trabalhar essa questão na formatação aqui no Power Apps, mas não é o caso. Vou colocar que foi problema de transporte e vou enviar novamente a solicitação.
Vamos ver mais uma execução para ver se realmente funciona tudo isso aqui, foi para cá agora, cada um na sua casa deve aparecer melhor formatado. Eu poderia ajustar isso também dentro do meu prompt lá da execução do Power Automate, então vamos aguardar o e-mail chegar, o Power Automate também vai aguardar essa execução nessa leitura, chegou o e-mail, chegou uma nova despesa do usuário Wolenberg, aqui a descrição valor para pagar a multa de estacionamento do shopping na cidade. Data 20/07, deixei a mesma data, categoria, a despesa transporte e o valor 350, dessa vez sem casa decimal pra gente ver se ele funciona.
Se ele consegue compreender a maneira correta, ele está em execução no momento. O chat GPT trabalhando na conversão, na extração do trecho foi feita a extração vai estar dentro do mesmo arquivo que eu coloquei na mesma pasta lá. Agora ele já colocou cada coisa no seu campo.
A descrição, a despesa, falou para pagar a multa, o usuário a data, a categoria, o valor que agora vence e o comentário. Essa despesa pode estar vinculada ao usuário por usar transporte público. O que ele acha?
A parte que o chat GPT julga a sua despesa. Nesse caso vou fazer o download de novo. Desculpa desse arquivo aqui do arquivo de despesas extraídas e vou usar no Excel.
No caso o Excel desktop. Vocês vão ver que ficam mais fácil inserir dados aqui do que trabalhar com o que ele vem se informar aqui. No caso, ele vai trabalhar com dados e system CSV, despesas extraídas e no caso um que eu baixei novamente.
Vamos lá, agora sim ele encontrou a virgula no carregar ele traz no formato mais amigável, então. Descrição da despesa fala pra pagar a multa na opacidade. Usuário lembrar que a data limite do CEP categoria Transporte o valor 350 é o comentário que foi feito pelo GPT.
Essa despesa pode ser evitada se o usuário optar por um transporte público. É uma boa sugestão. Talvez o GPT da falando se o cara vai de ônibus ou vai de Uber, ele não tem essa despesa com multas de transporte particular.
É uma boa maneira da gente encerrar o nosso vídeo de hoje. Espero que vocês tenham curtido o nosso conteúdo. Deixem que seus comentários, sua curtida, compartilhe esse conteúdo, se foi relevante para vocês e nos vemos nos próximos vídeos.
Até breve!