cancel
Showing results for 
Search instead for 
Did you mean: 
Reply

Create a new team from an email subject using power automate cloud flow

Hi,

 

New here and first post - please re-direct it if in wrong place.

 

I'm trying to create a new flow in Power Automate @PowerAutomate  that automates the creation of a new private MS Teams site related to an email subject when it's sent directly to me, I've managed to build out a simple flow to create the new team and it sends me a notification and test it successfully - All Good here. 

However I'm trying to create the team based on a specific part of the Subject line only -majority of which is from a templated email I receive but the "name" indicated in the subject line changes each time I get one of these emails and again this will be the new teams site name and I don't need all of subject line in full as the existing flow copies everything across.  There is no way for me to know what the team names will be in advance, I'll only know when the email is received. I can't seem to find a way to focus/pick out the do this - is it an expression (never used before) that will help here to remove all the rest of the text - again new and would appreciate any suggestions, Thanks!

3 ACCEPTED SOLUTIONS

Accepted Solutions

Dear @PowerPotential ,

in the "Compose-Length" action please put the following expression:

length(triggerOutputs()?['body/subject'])

MarconettiMarco_0-1661777278136.png

 

Please let me know if the issue is fixed.

 

If I have answered your question, please mark my post as Solved.

If you like my response, please give it a Thumbs Up.

 

I may not have all the answers, but I'm curious and passionate enough to keep looking for answers and to keep sharing them.

 

My blog site about Power Automate: https://powerautomatejoy.com/

 

BR,

Marco

 

View solution in original post

Hello @PowerPotential ,

so please follow these additional steps:

1. Add a "Compose" action providing this expression:

replace(outputs('Compose-GetName'),' ','')

MarconettiMarco_0-1661781217359.png

2. Add an "Apply to each" control, in the "Select an output from previous steps" field put the Attachments value grabbed from the trigger. Within the Apply to each loop add the following actions:

MarconettiMarco_1-1661781473326.png

3. Get attachments (V2):

MarconettiMarco_2-1661781498633.png

 

4. SharePoint Create file:

- Site address: put the custom value

MarconettiMarco_4-1661781571792.png

- Folder Path: type manually "Shared documents/General"

- File name: "Name" from the get attachments action

- File Content: "Content Bytes" from the get attachments action

MarconettiMarco_3-1661781525121.png

5. OneDrive "Create file":

- Folder Path: outputs from the "Compose-GetName" action

- File Name: "Name" from the get attachments action

- File Content: "Content Bytes" from the get attachments action

MarconettiMarco_5-1661781700616.png

 

Please let me know if the issue is fixed.

 

If I have answered your question, please mark my post as Solved.

If you like my response, please give it a Thumbs Up.

 

I may not have all the answers, but I'm curious and passionate enough to keep looking for answers and to keep sharing them.

 

My blog site about Power Automate: https://powerautomatejoy.com/

 

BR,

Marco

 

 

 

View solution in original post

Dear @PowerPotential ,

you should follow these additional steps:

1. Add a "Compose" action providing the following expression:

 

split(replace(triggerOutputs()?['body/toRecipients'],'MarcoMarconetti@powerautomatemark.onmicrosoft.com;', ''),';')

 

Please replace my email address with your

MarconettiMarco_0-1661840852121.png

2. Add a Teams member for each output got from the previous Compose action:

MarconettiMarco_4-1661841049049.png

 

Please let me know if the issue is fixed.

 

If I have answered your question, please mark my post as Solved.

If you like my response, please give it a Thumbs Up.

 

I may not have all the answers, but I'm curious and passionate enough to keep looking for answers and to keep sharing them.

 

My blog site about Power Automate: https://powerautomatejoy.com/

 

BR,

Marco

 

 

View solution in original post

19 REPLIES 19
MarconettiMarco
Super User
Super User

Hello @PowerPotential ,

indeed you don't already know which filters you want to apply. I mean, you don't know with which name, contained in the email subject, you'll have to generate the Teams site, right?

 

BR,

Marco

Hi Marco,

Thanks for your reply -  Yes, so for further background I receive a mostly templated email with the subject line something like "Confirmation of Resource - XXXXXXX"  where the XX's are the only bit that change in the subject line of each email that I receive  ( I never know what that will be in advance) and normally I'd be copying and pasting this manually into teams to create it (before discovering PA) -this part of XXX's is the bit I want to be the new teams name - the flow is currently just based on the below:

PowerPotential_0-1661766344349.png

- However the Teams Site is getting named the entire subject line "Confirmation of Resource - XXXXXXX"  which I understand the reason but is obviously not ideal - I'm not sure how I can get it to pick up on the XXX's only in the example and make that the team name instead? - is there a process/action that will allow me to either eliminate everything before xxx for example?
Thanks!

Hello @PowerPotential ,

if the email subject in most of cases is "standardized", let's follow these steps (in my case I've generated an instant flow, but the scenario can be applied to your):

1. Add a "Find text position" action:

- Text: your email subject;

- Search text: -

MarconettiMarco_0-1661768035088.png

2. Add a "Compose" action in which provide the following expression:

length(triggerBody()['text'])

instead of "triggerBody()['text']", please add the Subject value grabbed from the dynamic content;

MarconettiMarco_1-1661768086324.png

3. Add a "Substring" action:

- Text: your email subject;

- Starting Position: the text position value got from the "Find text position" action;

- Length: add the following expression:

sub(outputs('Compose-Length'), body('Find_text_position'))

MarconettiMarco_2-1661768175858.png

4. Add a "Compose" action and put the following expression:

substring(body('Substring'),2,sub(length(body('Substring')),2))

MarconettiMarco_3-1661768299716.png

Then, you'll be able to use the Compose outputs as the Teams site name.

 

Here my output:

MarconettiMarco_4-1661768343347.png

 

MarconettiMarco_5-1661768359537.png

 

Please let me know if the issue is fixed.

 

If I have answered your question, please mark my post as Solved.

If you like my response, please give it a Thumbs Up.

 

I may not have all the answers, but I'm curious and passionate enough to keep looking for answers and to keep sharing them.

 

My blog site about Power Automate: https://powerautomatejoy.com/

 

BR,

Marco

 

 

 

 

Hi @MarconettiMarco  - Thanks you for your very detailed reply!

I was working my way through your steps however I'm now getting an error message against the "Substring" requesting a valid reference: " - see screenshot below:

PowerPotential_3-1661770042362.png

It's probably an easy fix but being new I don't know what I don't know.. I've pasted in the expressions as you've advised in your reply however  I only used the subject input for step2 as you advised and Not the expression you pasted unless I've confused that part? See screenshot

 

Thanks for your help with this!

 

 

Yes @PowerPotential ,

you have to rename the "Compose" action in "Compose-Length".

 

Please let me know if the issue is fixed.

 

If I have answered your question, please mark my post as Solved.

If you like my response, please give it a Thumbs Up.

 

I may not have all the answers, but I'm curious and passionate enough to keep looking for answers and to keep sharing them.

 

My blog site about Power Automate: https://powerautomatejoy.com/

 

BR,

Marco

@MarconettiMarco  - I've redone the flow and repasted the expression you advised above but still getting the same error as above sadly - if you could please take a look?

On another point, as part of replacing the manual tasks - usually this templated email that I receive will also have a PowerPoint .pptx attached with a standardised name and alongside creating a MS team with the XXX name as above - I also have to download and save this file manually to OneDrive for business - after having to create a new folder to store it in with the original name taken from the email subject "XXX" as mentioned above -is this a possibility also and having them running in parallel when this email is received? 

Really appreciate your help! 😊

Hello @PowerPotential ,

please rename all the actions like those in my screenshots, so that the flow will run successfully.

In regards of the second point, you should be able, in the same flow, to read the pptx name and create another Teams site.

 

Please let me know if the issue is fixed.

 

If I have answered your question, please mark my post as Solved.

If you like my response, please give it a Thumbs Up.

 

I may not have all the answers, but I'm curious and passionate enough to keep looking for answers and to keep sharing them.

 

My blog site about Power Automate: https://powerautomatejoy.com/

 

BR,

Marco

@MarconettiMarco  - I've gone through all of your steps and renamed as you have and also pasted in exactly as you've laid out and sadly I'm getting issues!  Please see the following error below - it was originally 2 errors in the Compose sections but down to just 1 as below:
PowerPotential_0-1661775342937.png

- Also, regarding the other point in my previous message above regarding the PPT attachment within the templated email- its not a new teams site I need for this but instead can this also be saved to OneDrive for business in parallel- in a new folder called the same "XXX" name taken from the email subject as it will also be the new MS teams name taken from the "XXX" name from the same email subject?  Thank You.

Hello @PowerPotential ,

please share the Substring action in edit mode.

 

BR,

Marco

 PowerPotential_0-1661776814032.png

@MarconettiMarco- Please see above as requested - can I  also check against step 2 in your previous instructions about using the subject as Dynamic content instead of the expression? I've ran it a few times with the expressions and dynamic content also unless I've picked that up incorrectly also?

PowerPotential_1-1661777017019.png

 


Thanks!

Dear @PowerPotential ,

in the "Compose-Length" action please put the following expression:

length(triggerOutputs()?['body/subject'])

MarconettiMarco_0-1661777278136.png

 

Please let me know if the issue is fixed.

 

If I have answered your question, please mark my post as Solved.

If you like my response, please give it a Thumbs Up.

 

I may not have all the answers, but I'm curious and passionate enough to keep looking for answers and to keep sharing them.

 

My blog site about Power Automate: https://powerautomatejoy.com/

 

BR,

Marco

 

Hi @MarconettiMarco  - Thank you for spending so much time on this - I did that before but it's now working successfully!🙂

Following up on and regarding my second related point now if you don't mind -Regarding the second part is there functionality to also download /save the PPT attachment from the original templated email that is received to save it to OneDrive for business but within a folder with the same name of the newly created team from the flow so they match and also upload this same PPT to the files section of the newly created team also? A lot of these actions are for back up/audit  purposes I've been requested to action them in triplicate!!

Hello @PowerPotential ,

so please follow these additional steps:

1. Add a "Compose" action providing this expression:

replace(outputs('Compose-GetName'),' ','')

MarconettiMarco_0-1661781217359.png

2. Add an "Apply to each" control, in the "Select an output from previous steps" field put the Attachments value grabbed from the trigger. Within the Apply to each loop add the following actions:

MarconettiMarco_1-1661781473326.png

3. Get attachments (V2):

MarconettiMarco_2-1661781498633.png

 

4. SharePoint Create file:

- Site address: put the custom value

MarconettiMarco_4-1661781571792.png

- Folder Path: type manually "Shared documents/General"

- File name: "Name" from the get attachments action

- File Content: "Content Bytes" from the get attachments action

MarconettiMarco_3-1661781525121.png

5. OneDrive "Create file":

- Folder Path: outputs from the "Compose-GetName" action

- File Name: "Name" from the get attachments action

- File Content: "Content Bytes" from the get attachments action

MarconettiMarco_5-1661781700616.png

 

Please let me know if the issue is fixed.

 

If I have answered your question, please mark my post as Solved.

If you like my response, please give it a Thumbs Up.

 

I may not have all the answers, but I'm curious and passionate enough to keep looking for answers and to keep sharing them.

 

My blog site about Power Automate: https://powerautomatejoy.com/

 

BR,

Marco

 

 

 

@MarconettiMarco  Thanks very much - it works 😊

I just have one more thing related to this flow  please - if I may? I can ask it as a separate question if needed on the forum but the above thread is for context.
- With the new Team Site created from the template email- I'd like to add those who are in the "To" list (office 365 email) to be added to the newly created team automatically - I've found the following options:

PowerPotential_0-1661788988897.png

- This fails adding people as it stops as I'm one of the first email address listed in the email's "To list" and I'm already the teams owner by default - I don't know how to exclude my email address from attempted to be added to the new site and to old add everyone else in the list as non owners... I've already googled this with no luck sadly, if you'd be able to give any suggestions, that would be great! Thanks!😊

Dear @PowerPotential ,

you should follow these additional steps:

1. Add a "Compose" action providing the following expression:

 

split(replace(triggerOutputs()?['body/toRecipients'],'MarcoMarconetti@powerautomatemark.onmicrosoft.com;', ''),';')

 

Please replace my email address with your

MarconettiMarco_0-1661840852121.png

2. Add a Teams member for each output got from the previous Compose action:

MarconettiMarco_4-1661841049049.png

 

Please let me know if the issue is fixed.

 

If I have answered your question, please mark my post as Solved.

If you like my response, please give it a Thumbs Up.

 

I may not have all the answers, but I'm curious and passionate enough to keep looking for answers and to keep sharing them.

 

My blog site about Power Automate: https://powerautomatejoy.com/

 

BR,

Marco

 

 

Hi @MarconettiMarco 

 

Excuse the delayed reply but just to say it's fixed and all working great and already making a big difference so far! 🙂

If I wanted to share this entire flow with colleagues so they can replicate everything - this is possible but I believe they would need to individually go into each step where my email address /OneDrive folder list is and then edit it to reflect their email etc each time and it'll then run successfully for them also or is there a way to generalise it so that it can easily be shared/replicated?

Hi @MarconettiMarco  Hope you're well?

I've tried to improve this step in the flow - once the team member is added to the Newly created teams site that's  flow-generated from the email received in the previous steps created above - I'm wanting to post a message in the new teams General channel (from me) to welcome the team member on board - I've done some digging for the "get user profile V2" option but there is no option to get the user id of the person who was just added but dynamic content only shows the selection of new team id and the flow fails? - I've included screenshots below:

PowerPotential_0-1662371594661.pngPowerPotential_1-1662371625884.pngPowerPotential_2-1662371652471.png


I hope you could kindly share your expertise on a way around this please?

Thank You! 🙂

@MarconettiMarco 

Hi Marco - so this part of the flow is now unexpectantly failing - I'm trying to get the attachments from the email added to this teams site list whenever it's newly created: 

One drive part is working fine - no issues 🙂

 

I was hoping to take this a step further and each time the new teams site is created I wanted them to have a pre-set list of specific named folders on both one drive and the newly created teams site's "general files"section - with the .ppt attachment saved in 1 specific folder in both onedrive/teams files for example  - this is to be used as a template for each site/back up created on both onedrive/teams going forward - flow screenshot attached: 

PowerPotential_4-1662372456522.png

 

I'd really appreciate your help with this if you can please give me some guidance? 

 

Thank You! 🙂

Helpful resources

Announcements
Power Automate News & Announcements

Power Automate News & Announcements

Keep up to date with current events and community announcements in the Power Automate community.

Community Calls Conversations

Community Calls Conversations

A great place where you can stay up to date with community calls and interact with the speakers.

Power Automate Community Blog

Power Automate Community Blog

Check out the latest Community Blog from the community!

Top Solution Authors
Users online (5,923)