cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Jay15
Frequent Visitor

Flow: extract text from an email

Hi everyone,

 

I would need your help on this. I would like to extract specific texts from an email. 

 

What I extract should go in a table in excel. What is extracted should be what is below each name. This table has 3 columns named "Hello", "Hallo" and "Halo". 

 

Some emails that I receive contain the 3 categories and others only 2 of them. The order is always the same: Hello, Hallo and Halo. 

 

Email example:

Hello

Xxxxxxx

 

Hallo

Yyyyyyy

 

Halo

Zzzzzzzz

 

 

I've already created a flow ( email received --> html to text --> add new line in table) but I'm stuck when it comes to transferring those text to excel. 

 

I want the flow to understand that if "Hallo" is missing, it should go to the next one "Halo" and extract what is below. 

 

Thank you in advance for your help ND please let me know if you want me to clarify anything.

11 REPLIES 11

Are you able to show exactly what you would have in the email including other text before and after the content you provided? You mentioned a table, but the example looks like it's just a list of key/value pairs.


----------------------------------------------------------------------
If I've answered your question, please mark the post as Solved.
If you like my response, please consider giving it a Thumbs Up.
Jay15
Frequent Visitor

Well I would receive an email in outlook saying:

 

"Hi Jay,

 

Please add the following informations for each category in excel:

 

category 1:

 

Xxxxxxx

 

category 2:

 

Yyyyyyyyy

 

category 3:

 

Zzzzzzzz

 

Thank you for your help,

Best regards,"

 

 

And then the header of my table in excel contains:

 

(cell A1)"category 1", (cell B1)"category 2" and (cell C1)"category 3". 

 

And for each email that I would receive, it would add one new line. And also from time to time "category 2" could be missing in the email. I have used an expression that tells to extract the text between values and it worked. But somehow when the expression says extract the text between the value "category 1" and "category 2", if there is no "category 2" mentioned in the email take the text between "category 1" and "category 3", then there's a problem. 

 

For the text under "category 3", I would extract the text between "category 3" and "Thank you". This part at the end of the email is always the same. But I'm having a problem with the "category 2".

 

Let me show you the expression and flow later on today as I am not at home now. 

 

Hopefully you understand better my problem. Thank you again for your help and sorry if my explanation is a bit messy 😕

Hi again,

 

Here are some extra infos:

 

1. expression that worked: (takes the text between "category 1" and "category 2"

 

substring(join(body('HTML_zu_Text_1'), ''), add(indexOf(join(body('HTML_zu_Text_1'), ''), 'category 1'), 10), sub(indexOf(join(body('HTML_zu_Text_1'), ''), 'category 2'), add(indexOf(join(body('HTML_zu_Text_1'), ''), 'category 1'), 10)))

 

 

2. expression that did not work: (takes the text between "category 1" and "category 3", in case "category 2" is not in the email)

 

  • substring( join(body('HTML_zu_Text_1'), ''), add(indexOf(join(body('HTML_zu_Text_1'), ''), 'category 1'), 9), sub( coalesce( indexOf(join(body('HTML_zu_Text_1'), ''), 'category 2'), indexOf(join(body('HTML_zu_Text_1'), ''), 'category 3') ), add(indexOf(join(body('HTML_zu_Text_1'), ''), 'category 1'), 9) ) )

 

Sorry, a part of the screenshot is in german.

Screenshot_20231202-101724.jpg

This is how I would likely build the flow.

 

For this example, I've got the following Excel Table.

grantjenkins_0-1701510070465.png

 

See full flow below. I'll go into each of the actions.

grantjenkins_1-1701510123585.png

 

When a new email arrives is what you already have.

grantjenkins_2-1701510184266.png

 

Html to text converts the body of the email to text.

grantjenkins_3-1701510208280.png

 

Compose extracts the data we want using the following expression.

slice(
    outputs('Html_to_text')?['body'], 
    indexOf(outputs('Html_to_text')?['body'], 'Please add the following informations for each category in excel'), 
    indexOf(outputs('Html_to_text')?['body'], 'Thank you for your help')
)

grantjenkins_4-1701510317315.png

 

Filter array splits the data by new line and removes all empty rows, and skips the first row which is our "Please add the following...".

//From
skip(split(outputs('Compose'), decodeUriComponent('%0A')), 1)

//Condition
trim(item())

grantjenkins_5-1701510434042.png

 

Initialize variable creates a variable called categories of type object, and sets it to an empty object using an opening and closing curly brace {}.

grantjenkins_6-1701510487675.png

 

Apply to each iterates over the items two at a time using the chunk expression.

chunk(body('Filter_array'), 2)

grantjenkins_7-1701510544134.png

 

Compose Append appends each of the properties using the following expression.

addProperty(
    variables('categories'), 
    item()?[0], 
    item()?[1]
)

grantjenkins_8-1701510628614.png

 

Set variable sets the categories variable to the value in Compose Append.

grantjenkins_9-1701510691721.png

 

After the Apply to each, we have Add a row into a table using the following expressions.

variables('categories')?['category 1:']

variables('categories')?['category 2:']

variables('categories')?['category 3:']

grantjenkins_10-1701510757565.png

 

After the flow runs we will have a new row in our Excel table. If not all categories are present in the email then they will get an empty value.

grantjenkins_11-1701510958945.png


----------------------------------------------------------------------
If I've answered your question, please mark the post as Solved.
If you like my response, please consider giving it a Thumbs Up.

Thank you so much for your help. 

 

It looks good. 

 

Now it's a bit tricky because my power automate is in German and somehow I don't have the same way to write variables as you. I'll need to try it again as I've tried and I've got errors/synthax. 

I've just changed the language of my power automate in english but I've got an error. Im asking myself how is it possible? Ive followed your instructions... I need to check it again what I made wrong :

 

Screenshot_20231202-161900.jpg

InvalidTemplate

Unable to process template language expressions in action 'Compose' inputs at line '0' and column '0': 'The template language function 'indexOf' expects its first parameter to be of type string. The provided value is of type 'Null'.

Now everything is working except the step "apply to each".

 

Here is a screenshot:

 

Screenshot_20231202-211703.jpg

For your Compose, did you change it to match the actual content you expect in your email?

 

//Change the two sentences to match what is in your email.

slice(
    outputs('Html_to_text')?['body'], 
    indexOf(outputs('Html_to_text')?['body'], 'Please add the following informations for each category in excel'), 
    indexOf(outputs('Html_to_text')?['body'], 'Thank you for your help')
)

 


----------------------------------------------------------------------
If I've answered your question, please mark the post as Solved.
If you like my response, please consider giving it a Thumbs Up.
Jay15
Frequent Visitor

Actually I have adapted my email according to your code:

 

Please add the following informations for each category in excel

 

category 1:

 

Xxxxxxx

 

category 2:

 

Yyyyyyyyy

 

category 3:

 

Zzzzzzzz

 

Thank you for your help

 

 

here are some screenshots:

 

Screenshot_20231203-112315.jpg

Screenshot_20231203-112304.jpg

 Thank you again for your help. 

I've just found my mistake. I've chosen "compose" instead of "compose append". But the thing is, I cannot find "compose append". How is this possible? Any idea why ?

Compose Append is just a Compose that I renamed to Compose Append.


----------------------------------------------------------------------
If I've answered your question, please mark the post as Solved.
If you like my response, please consider giving it a Thumbs Up.

Helpful resources

Announcements

Community will be READ ONLY July 16th, 5p PDT -July 22nd

Dear Community Members,   We'd like to let you know of an upcoming change to the community platform: starting July 16th, the platform will transition to a READ ONLY mode until July 22nd.   During this period, members will not be able to Kudo, Comment, or Reply to any posts.   On July 22nd, please be on the lookout for a message sent to the email address registered on your community profile. This email is crucial as it will contain your unique code and link to register for the new platform encompassing all of the communities.   What to Expect in the New Community: A more unified experience where all products, including Power Apps, Power Automate, Copilot Studio, and Power Pages, will be accessible from one community.Community Blogs that you can syndicate and link to for automatic updates. We appreciate your understanding and cooperation during this transition. Stay tuned for the exciting new features and a seamless community experience ahead!

Summer of Solutions | Week 4 Results | Winners will be posted on July 24th

We are excited to announce the Summer of Solutions Challenge!    This challenge is kicking off on Monday, June 17th and will run for (4) weeks.  The challenge is open to all Power Platform (Power Apps, Power Automate, Copilot Studio & Power Pages) community members. We invite you to participate in a quest to provide solutions to as many questions as you can. Answers can be provided in all the communities.    Entry Period: This Challenge will consist of four weekly Entry Periods as follows (each an “Entry Period”)   - 12:00 a.m. PT on June 17, 2024 – 11:59 p.m. PT on June 23, 2024 - 12:00 a.m. PT on June 24, 2024 – 11:59 p.m. PT on June 30, 2024 - 12:00 a.m. PT on July 1, 2024 – 11:59 p.m. PT on July 7, 2024 - 12:00 a.m. PT on July 8, 2024 – 11:59 p.m. PT on July 14, 2024   Entries will be eligible for the Entry Period in which they are received and will not carryover to subsequent weekly entry periods.  You must enter into each weekly Entry Period separately.   How to Enter: We invite you to participate in a quest to provide "Accepted Solutions" to as many questions as you can. Answers can be provided in all the communities. Users must provide a solution which can be an “Accepted Solution” in the Forums in all of the communities and there are no limits to the number of “Accepted Solutions” that a member can provide for entries in this challenge, but each entry must be substantially unique and different.    Winner Selection and Prizes: At the end of each week, we will list the top ten (10) Community users which will consist of: 5 Community Members & 5 Super Users and they will advance to the final drawing. We will post each week in the News & Announcements the top 10 Solution providers.  At the end of the challenge, we will add all of the top 10 weekly names and enter them into a random drawing.  Then we will randomly select ten (10) winners (5 Community Members & 5 Super Users) from among all eligible entrants received across all weekly Entry Periods to receive the prize listed below. If a winner declines, we will draw again at random for the next winner.  A user will only be able to win once overall. If they are drawn multiple times, another user will be drawn at random.  Individuals will be contacted before the announcement with the opportunity to claim or deny the prize.  Once all of the winners have been notified, we will post in the News & Announcements of each community with the list of winners.   Each winner will receive one (1) Pass to the Power Platform Conference in Las Vegas, Sep. 18-20, 2024 ($1800 value). NOTE: Prize is for conference attendance only and any other costs such as airfare, lodging, transportation, and food are the sole responsibility of the winner. Tickets are not transferable to any other party or to next year’s event.   ** PLEASE SEE THE ATTACHED RULES for this CHALLENGE**   Week 1 Results: Congratulations to the Week 1 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge.   Community MembersNumber SolutionsSuper UsersNumber Solutions Deenuji 9 @NathanAlvares24  17 @Anil_g  7 @ManishSolanki  13 @eetuRobo  5 @David_MA  10 @VishnuReddy1997  5 @SpongYe  9JhonatanOB19932 (tie) @Nived_Nambiar  8 @maltie  2 (tie)   @PA-Noob  2 (tie)   @LukeMcG  2 (tie)   @tgut03  2 (tie)       Week 2 Results: Congratulations to the Week 2 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Week 2: Community MembersSolutionsSuper UsersSolutionsPower Automate  @Deenuji  12@ManishSolanki 19 @Anil_g  10 @NathanAlvares24  17 @VishnuReddy1997  6 @Expiscornovus  10 @Tjan  5 @Nived_Nambiar  10 @eetuRobo  3 @SudeepGhatakNZ 8     Week 3 Results: Congratulations to the Week 3 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Week 3:Community MembersSolutionsSuper UsersSolutionsPower Automate Deenuji32ManishSolanki55VishnuReddy199724NathanAlvares2444Anil_g22SudeepGhatakNZ40eetuRobo18Nived_Nambiar28Tjan8David_MA22   Week 4 Results: Congratulations to the Week 4 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Week 4:Community MembersSolutionsSuper UsersSolutionsPower Automate Deenuji11FLMike31Sayan11ManishSolanki16VishnuReddy199710creativeopinion14Akshansh-Sharma3SudeepGhatakNZ7claudiovc2CFernandes5 misc2Nived_Nambiar5 Usernametwice232rzaneti5 eetuRobo2   Anil_g2   SharonS2  

Check Out | 2024 Release Wave 2 Plans for Microsoft Dynamics 365 and Microsoft Power Platform

On July 16, 2024, we published the 2024 release wave 2 plans for Microsoft Dynamics 365 and Microsoft Power Platform. These plans are a compilation of the new capabilities planned to be released between October 2024 to March 2025. This release introduces a wealth of new features designed to enhance customer understanding and improve overall user experience, showcasing our dedication to driving digital transformation for our customers and partners.    The upcoming wave is centered around utilizing advanced AI and Microsoft Copilot technologies to enhance user productivity and streamline operations across diverse business applications. These enhancements include intelligent automation, AI-powered insights, and immersive user experiences that are designed to break down barriers between data, insights, and individuals. Watch a summary of the release highlights.    Discover the latest features that empower organizations to operate more efficiently and adaptively. From AI-driven sales insights and customer service enhancements to predictive analytics in supply chain management and autonomous financial processes, the new capabilities enable businesses to proactively address challenges and capitalize on opportunities.    

Updates to Transitions in the Power Platform Communities

We're embarking on a journey to enhance your experience by transitioning to a new community platform. Our team has been diligently working to create a fresh community site, leveraging the very Dynamics 365 and Power Platform tools our community advocates for.  We started this journey with transitioning Copilot Studio forums and blogs in June. The move marks the beginning of a new chapter, and we're eager for you to be a part of it. The rest of the Power Platform product sites will be moving over this summer.   Stay tuned for more updates as we get closer to the launch. We can't wait to welcome you to our new community space, designed with you in mind. Let's connect, learn, and grow together.   Here's to new beginnings and endless possibilities!   If you have any questions, observations or concerns throughout this process please go to https://aka.ms/PPCommSupport.   To stay up to date on the latest details of this migration and other important Community updates subscribe to our News and Announcements forums: Copilot Studio, Power Apps, Power Automate, Power Pages

Users online (1,537)