Extraia informações de um e-mail com o Power Automate

Embora existam maneiras melhores de trocar informações entre vários sistemas, o e-mail é provavelmente uma das mais simples. Você envia um e-mail de um sistema para um endereço de e-mail específico, extrai as informações do corpo do e-mail e as armazena em outro lugar. No entanto, essa abordagem pode consumir muito tempo se for feita manualmente e não é muito divertida de fazer. E talvez nem seja necessário se você puder criar um fluxo do Power Automate para fazer isso por você.
Comece com a ação ‘HTML para texto’
Sempre comece com a ação ‘HTML para texto’ ao processar e-mails. O código HTML completo do e-mail pode ser bastante confuso e esta ação irá reduzi-lo a um texto simples. Tomemos como exemplo um e-mail que recebo com cada solicitação de consultoria.

A ação ‘HTML para texto’ pegará todo o e-mail e removerá todas as tags HTML para retornar o conteúdo do e-mail como texto simples.

Extraia as informações
Como agora é um texto simples, você pode processá-lo como qualquer outra string. Como você pode ver na imagem acima, os dados do meu e-mail são separados por uma linha vazia. Isso significa que o separador é um caractere de fim de linha no final da linha com texto e outro caractere de fim de linha para a linha vazia. Portanto, vou dividi-lo por dois caracteres de fim de linha.
split(body('Html_to_text'),decodeUriComponent('%0A%0A'))
O resultado é uma matriz simples com cada linha como um item separado. Como acontece com qualquer outro array, agora posso usar índices para escolher uma linha específica, por exemplo, 0 para obter o nome.
outputs('Compose')[0] -> Nome: ErickMas ainda é um pouco mais de informação do que preciso. Quero armazenar apenas o nome, sem a descrição ‘Nome:’. Vamos fazer outra divisão, desta vez no caractere ‘:’ e pegar apenas a 2ª parte, o próprio nome.
split(outputs('Compose')[0],':')[1] -> ErickA última etapa é remover quaisquer espaços potenciais no início ou no final do nome com a função trim(…).
trim(split(outputs('Compose')[0],':')[1])
Seguindo a mesma abordagem, apenas usando números de índice diferentes você pode extrair todas as partes do e-mail, uma por uma.
E se a posição da informação mudar?
Até agora existia a expectativa de que o e-mail tivesse uma estrutura fixa. Mas e se as posições puderem mudar? Se as informações estruturadas estão no final do e-mail e você não sabe quanto texto vem antes?
Não é grande coisa, desde que você tenha uma descrição para cada uma das linhas. Se for apenas o nome, sem a descrição ‘Nome:’, você está sem sorte. Não há nada para segurar. Mas se a linha do nome começar com ‘Nome:’, você poderá usar a ação ‘Filtrar matriz’ em vez do índice.
Use o e-mail analisado como entrada e filtre apenas os itens que começam com a descrição, neste caso ‘Nome:’.

Se a descrição for única (e deveria ser única), a ação ‘Filtrar matriz’ retornará apenas uma linha. Pegue-o e processe-o como acima – divida por ‘:’ e corte(…) os espaços ao seu redor.
trim(split(body('Filter_array')[0],':')[1])
Repita o mesmo ‘Matriz de filtros’ para identificar todas as linhas importantes, cada uma procurando um início de linha diferente, e extrair os dados.
Resumo
Embora este não seja um guia completo sobre como extrair informações de qualquer e-mail, pois cada e-mail é diferente, ele deve lhe dar uma ideia básica de como isso é feito no Power Automate. É muito processamento de texto. Livre-se das tags HTML, converta o e-mail em texto simples e analise-o. Podem ser muitas divisões e muitos filtros para obter as informações desejadas de e-mails complexos (por exemplo, com tabelas), mas se você seguir passo a passo você chegará lá (desde que haja algo para entender).
Entre em contato ainda hoje e veja como nossos especialistas em Power Automate podem ajudar o seu negócio.
Erick Alves de Moura é Head of Delivery e Arquiteto Principal da Trinapse, consultoria brasileira especializada em Microsoft 365. Acumula 14 anos de experiência em arquitetura e entrega de soluções sobre SharePoint, Power Platform, Microsoft Graph e Copilot, sempre em ambientes corporativos de grande porte.
Ver maisVer menos
Ao longo da carreira, conduziu migrações de SharePoint on-premises para o SharePoint Online, desenhou intranets corporativas, automatizou processos de negócio com Power Apps e Power Automate e, mais recentemente, projetou agentes de IA integrados ao Microsoft 365.
São projetos com milhares de usuários, regras de governança rígidas e integração com sistemas legados, o tipo de cenário em que a decisão de arquitetura importa mais do que a ferramenta.
Fluente em inglês, atende clientes globais e é o arquiteto responsável pela conta da Bayer nos Estados Unidos, no Brasil, atua junto a cooperativas de crédito, agronegócio e indústria, setores com forte exigência de conformidade e continuidade operacional.
Escreve no blog da Trinapse desde 2019. São mais de 240 artigos publicados sobre SharePoint, Modern Workplace, Copilot e agentes de IA, Power Platform e automação de processos, em dois formatos: tutoriais técnicos passo a passo e análises de decisão sobre arquitetura e adoção do Microsoft 365. Todo conteúdo nasce de projeto real entregue, não de documentação traduzida.



