Power Automate - Extract Text Values from Email!
HTML-код
- Опубликовано: 8 фев 2025
- Learn how to extract text values from emails using Power Automate. With this flow you can even achieve system integrations that would otherwise be impossible without API.
Expressions used:
Split Body Text: split(body('Html_to_text'),outputs('EnterKey'))
Compose: Name: last(split(outputs('Split_Body_Text')[6],': ')) (Where "6" equals the row of the output array of the value you want to extract)
🚀 More Power Automate videos here: • Power Automate
✨ Intro to Power Automate Cloud Flow series: • Intro to Power Automat...
🔗 Connect with me on LinkedIn: www.linkedin.com/in/jeremy-barden
🌐 For consulting and additional resources, visit: www.jeremybard...
Power Automate, Microsoft Power Automate, extract text from email, Power Automate email automation, email text extraction, automate email processing, Power Automate system integration, integrate systems without API, Power Automate tutorial, email automation workflow, extract values from email body, automate text extraction, Power Automate cloud flow, workflow automation, Microsoft Flow, Power Automate advanced tutorial, system integration with Power Automate, email content automation, Power Automate step by step, automate email text, Office 365 Power Automate, Power Automate examples, no API system integration, email data extraction, Power Automate use cases, Power Automate for emails, Power Automate integrations, automate workflows, Power Automate guide, Outlook, Microsoft Power Automate tips.
This is exactly what I needed to implement. Great tutorial. Thank you!
Thank you!! Glad it helped!
Thank you so much for this, I have watched heaps of videos trying to achieve this and yours was the clearest - I finally got the result I needed!
This is an amazing tutorial! Thank you!
Great Content! Warm Regards from Brazil! :)
Looking for the same content helped me a lot in my workplace, thank you!
Thank you, this is EXACTLY what I needed !
Man you saved my life ! thanks a lot very straightforward
Thanks so much for this - it all works as shown in the video!
Excellent content, thanks so much!
Awesome tutorial, thank you, this helped me!
Excellent method and tutorial; thank you so much 😊🙏
This is incredibly helpful, thank you so much! I have one question: I get automated emails that are formatted a little funny and I think it's messing with the text extraction a bit. Essentially, I'm still getting everything in the row, not just my wildcard info. The emails I get have a lot of empty space between the information type and the wildcard, and I'm wondering if that has anything to do with the issue. I appreciate your help!
Awesome video, thank you.🙂
Need a use case for this flow? Check out this video! ruclips.net/video/lAPLuHWH3JM/видео.html
Need help implementing this flow? Let’s connect! www.jeremybarden.com/automation-consulting
Expressions used:
Split Body Text: split(body('Html_to_text'),outputs('EnterKey'))
Compose: Name: last(split(outputs('Split_Body_Text')[6],': ')) (Where "6" equals the row of the output array of the value you want to extract)
On the other hand, if one is searching for a validation of true or false based on condition of a string presence in email body, afer the first compose, one can use a function like - contains(body('Html_to_text'),'search string') . This returns true when the search string is present. Like in my case I wanted to create a task in planner if there was a string in the text for specific subject from specfici sender.
Did this work for you?
I’ve been trying to do the same thing, but instead of returning “true” it just returns the function I typed in the input.
Great job!!
The expression - last(split(outputs('Split_Body_Text')[6],': ')) works great for pulling single lines, but how could you setup an expression to pull multiple line. For example, if line 6 was a section from an automated order email containing notes and the information could be anywhere from 1 line to 4 lines. Thank you for the help!
This is perfect. Thank you so much
When I open up the outputs of the split body text in the history, it only shows me the expression not the email text.
Thank you that is great, would like to know, how to save the results into a sharepoint list, is there already a fitting video? Thanks very much in advance 👍👍
Hi Thanks for watching! I do not have a video for that, but it should be possible using the SharePoint connector actions "Get list" and "Update items". These will allow you to put your results into a list!
THAK YOU!
Excellent
Can you tell me how to only strip out text between words? For example I just want the word 'Financial' to be the output result from a place in the body of the email that has '2022/23 FY Financial Control Audit'. When I use the 'Last' expression and Split Body Text like you showed, 'last (split(outputs('Split_Body_Text')[11],': ')), as an example, I get a full line of other data, including the word(s) I wanted.
Hi Rolando, I think abm has what you are looking for in this video: ruclips.net/video/62BB3rpe37g/видео.htmla
Hope this helps!
Thank you for the video, could you help me on the issues I am having. The EnterKey compose is not working for me, it is saying "This filed is required"
Hi, thanks for posting. As long as you are hitting the enter key in the compose action field, it should not give you an error. Can you post in PA community with a screenshot so we can see what you are seeing? Thank you!
How come the Compose Split Body Text is required? The input and output look identical in the test?
Amazing video. I have word document and want to copy in email body in same format as it is in word document. Is this possible in power automate?
Hi! Yes, this should be possible with a power automate cloud flow. I put it on my future tutorials list. In the meantime, you can try by using the get email, create file (such as word doc in SharePoint), and then if needed, a modify action(s) to correct any formatting issues.
Very helpful and have spent hours over the past few days trying to figure out how to do this exact function with no success until your video. Just out of curiosity, what is the point of the "EnterKey" action?
I am curious too lol
Hi thank you for posting. As I understand it, the EnterKey action is to identify new lines from the email body.
Somehow I'm getting an error in the 3rd compose action and I don't know why..
Error: Unable to process template language expressions in action 'Verfassen_2' inputs at line '0' and column '0': 'The template function 'output' is not defined or not valid.'.
I get the following error:
Unable to process template language expressions in action 'SplitBodyText' inputs at line '0' and column '0': 'The template language function 'split' expects its first parameter to be of type string. The provided value is of type 'Array'.
Any thoughts?
Sorry the late reply, if you haven't already, please post in Community with screenshots and feel free to tag me @Jibbs
What is the enter compose action doing? Thank you for this. Want to understand
Hi thank you for posting. As I understand it, the EnterKey action is to identify new lines from the email body.
@@jibbsautomations The EnterKey, as used, will add a space after each new line of text. This could be a recent update. It's a great video this is extremely helpful.
How do i use these text in creating a new record(Lead).?
/leads(output) - getting error as Bad error query syntax
(output) - URL not parsed due to an OData.
Thanks for this wonderful tutorial. My problem is when I compose for the Company name, I get this error: Property selection is not supported on values of type 'String'. I think its because my emails that I work with have pics, and Links. I cant seem to discard those, even if my first compose after the HTML_to_text function is a split function, essentially I get errors Whats a nifty way to remove all URLs after the Html_to_text function?
Hi, great question. I have not encountered this issue, so I would suggest posting over in the Community, if you haven't already. You'll likely get some good suggestions there!
I hope you see this in time, but I have the issue that all of the data is in one single line and I have a different output of data in every different e-mail
Depending on what you're doing, you may need to add line breaks (html) between the variables for each piece of data you're extracting. But if you're sending it off to a spreadsheet, I would dump it there as is, split and format the data in another sheet or range.
Hi, sorry the late response, if you are still looking for a solution, you could try this video by abm: ruclips.net/video/k6O3ZH71Jc0/видео.html Or this video by me which uses AI builder in the flow: ruclips.net/video/k6O3ZH71Jc0/видео.html
Hi! This is great content.
Similar to this, I wanted to create a flow as well to transfer a data from email and tranfer it to MS Excel. However, my data in the body of an email is in table form. Is there a way?
Hi! I havent tried this where the email body is a table. Do have any control over the email and can remove the table? If not, it might still be possible to capture the text, but you might have to play around with the expression first.
Did you figures it out?
Is there anyway to get a hold of you bewsides linked in? I don't have a premium linked in account so it won't let me message you.
@@timothyroberts80 hi! That's odd, LinkedIn should let you message anyone without premium. You can reach me at Jeremy@jeremybarden.com.
Hi! Thank you for this video, I'm doing the same steps but in the Compose step I get this error:
The input parameter(s) of action 'Compose' contain an invalid reference to 'Split_Body_Text'. Correct to include a valid reference to 'Split_Body_Text' for the input parameter(s) of action 'Compose'.
Not sure what I'm doing wrong?
Sorry the late reply. Usually I see this error when my action title is rewritten and subsequent steps using dynamic content are not automatically updated by PA to reflect this. That might not be what's happening to you, but if you haven't already, please post in Community with screenshots and feel free to tag me @Jibbs
What is the purpose of the EnterKey compose action?
I get the following error:
Unable to process template language expressions in action 'SplitBodyText' inputs at line '0' and column '0': 'The template language function 'split' expects its first parameter to be of type string. The provided value is of type 'Array'.
Any ideas?
@@pebkacliveu got any solution?
Hi! As I understand it, the EnterKey action is to identify new lines from the email body.
@@pebkaclive If you can post in the PA community with screenshots of your flow, we can help you out over there. Thank you!
@@jibbsautomationsI have tried this numerous times and getting the exact same error. Were you able to help resolve this?
For some reason nothing is showing when I do split body text. I run a test but it's giving me a value of n. I think the email is in a table instead of raw text. What should i do?
Hi, if you can post on Community with screenshots of your output, we can help you over there.
last(split(outputs('Split_Body_Text')[6],': '))
This works but , i wanto to get the output of the lines from 4 to 10 , what is the expression for that?
Hi, thanks for posting. You should just need the same expression but change the line (in my example "[6]") to whatever line number you need.
@@jibbsautomations but what if there is more than 1 line you are trying to get the output for? Something like last(split(outputs('Split_Body_Text')[6-10],': ')) where I want to get everything that is on lines 6-10
@@jcdjr87did you ever figure this out? That is exactly what I need to do?
Does this still hold up in the new power automate (with the AI tools)? Followed this exactly and flow fails at the first split action. Looks like no data is being composed. Thanks!
Same, i get the following error.
Unable to process template language expressions in action 'String_to_body_text' inputs at line '0' and column '0': 'The template language function 'split' expects its first parameter to be of type string. The provided value is of type 'NULL'.
Even gave me an error once where it said the type was Array.
@@jalalbehnam1901 well at least I know now that I'm not crazy! So what is the solution in this new AI environment? Really need to get this working. I'm wanting to send form data in a fixed format from a Wix site with an attachment, then parse and send data to sharepoint list
@@jalalbehnam1901 When I look at raw input/output from the body compose, there's nothing but as if it is empty html. So "type NULL" would then make sense right?
Hi, thanks for posting. I have several flows running these actions and they are holding up even after the UI update. When I edit these flows, I switch back to the classic UI. I havent tried creating a new flow with these actions in the new UI yet, but I plan to do so soon.
@@jalalbehnam1901 I was having this error. For me there was a "for each" loop around the Html to text with the EnterKey and first Split section sat outside this. Once i'd moved both of those within the "For each" loop as actions following the html to text, it worked.
I do not have any actions under 'Content Conversion' anyone know why?
Hi, were you able to find the action? Here's the documentation on the content conversion action: learn.microsoft.com/en-us/connectors/conversionservice/
If you are still not seeing the action, please post in Community with screenshots and feel free to tag me @Jibbs