Hello.
I need Power Automate to generate a dynamic email recipient list based on MS Form responses using a SharePoint list as the email key. Here is an excel representation of my SharePoint List:
With a couple of exceptions, all of the the choice options listed in the SharePoint list match the Form answer options - the answer options are compiled from both single-select and multiple-select choice questions in the Form.
What actions do I need to use to have Power Automate create a string of emails (from the person field) based on Form responses using the choice field to determine who should be included?
The Exceptions
The second is more of a stretch goal:
Please let me know if any additional details are needed.
@tbrock_troc You need a way to cross-reference the choices in the SP list against the choices made in your MS Form. You shouldn't focus on the order output as the order of the choices in SP can also be different and you don't want to rely on always requiring the categories to be in a specific order.
To better understand the logic you'll use, create a new flow and use a Manual trigger. We're just going to focus on returning the contacts based on the category selection.
Add a Compose action to store an array of categories. They can be in any order. The syntax of the array is square brackets with each category between single quotes.
Add an Initialize variable action to your flow. You'll use this variable to collect the email addresses.
Add a Get Items action. It's always best practice to filter out your items form our SP list. In my case, I'm only going to return items where the Category isn't empty.
Whenever I use a Filter Query in a Get Items action, I always like to return the count of items returned in a Compose action. This is helpful when building a flow and can also be used to troubleshoot your flow.
Insert a Compose action. Add an Expression. Use the length() function.
Select the Dynamic content tab and insert the value dynamic content from the Get Items action into the length() function.
Run a test. Verify the output of the Compose action. If the Compose action isn't outputting the number of items expected, you'll need to adjust your Filter Query. If your SP List has more than 100 items, you'll need to toggle on pagination and set a threshold.
Add an Apply to Each action to loop through each Category. You can add a Compose action inside the Apply to Each action to output the Current Item (aka current category being looped through. This action is optional, however it can help you to better understand the logic of your flow.
Since you've already returned the list of SP Items using the Get Items action (outside of the loop) you want to utilize the Filter Array action to filter out those items. To learn more about the Filter Array action, check out the YT Tutorial I've linked at the bottom of this post.
In the From field, insert the value dynamic content from the Get Items action. In the first value field, insert the dynamic content of your category column. Hover over the dynamic content label and take note of the text between the single quotes.
The output of the multi-choice column is an array, it needs to be converted to a string so that we can use the contains operator to check if the string for the current category that is being looped through. For that, you'll need to use an expression.
Remove the dynamic content label from the first value field and insert an expression. Use the join() function. The join() function takes two parameters. An array and a separator.
join([array],[separator])
The array will be the category column. Use the item() function , add a question mark then the text between two quotes from earlier. In my case it's:
item()?['Category']
It'll be different in your case.
Add a Comma after the closing square bracket and insert a separator between single quotes. It can be a semi-colon, pipe, comma etc. Whichever you choose. I'll use a comma.
Change the operator to contains.
In the second value field, insert the Current Item dynamic content or in my case, (since I've used the Compose action to store the Current Item, I'll just use the output from the Compose action above.
Whenever I use a Filter Array action, I always like to return the count of items returned in a Compose action. This is helpful when building a flow and can also be used to troubleshoot your flow. Insert a Compose action. Add an Expression. Use the length() function.
Select the Dynamic content tab and insert the body dynamic content from the Filter Array action into the length() function.
Run a test. Verify the outputs of the Compose action. In this case the current category being looped through is Category 1. The Filter Array action has returned 7 items. When I cross-reference this number against my SP list, it shows that there are 7 SP Items assigned to Category 1.
.... more to come.
To learn more about how to use the Filter Array action, please refer to this YT Tutorial: Are you using the Microsoft Power Automate Filter Array Action wrong?
In this video tutorial I’ll show you 3 practical ways to use the Filter Array action and how to use it properly.
1️⃣ Cross-Referencing Data
2️⃣ Filtering by Key
3️⃣ Substring Matching
Did you know that the Condition action has a limit of 10 conditions? Although it might look like the Filter Array action can only accept one condition—this is not true. By using the advanced mode you can enter multiple conditions into a Filter Array action with an expression.
IN THIS VIDEO:
✅ 3 Ways to Use the Filter Array Action
✅ How to use the Scope Action to Group Actions
✅ How to Check the Number of Items returned from a Filter Array Action
✅ How to Cross-Reference Data in Excel with a SharePoint List
✅ How the Filter Array Action Works
✅ How to Access the Dynamic Content from a Filter Array Action
✅ How to Filter Items by a Key
✅ How to Filter Items by Matching a Substring
✅ How to Use Multiple Conditions in a Filter Array Action
Hi @creativeopinion ... first off, thank you for the detailed response.
First note - I did not see the YT link you referenced in the post, perhaps you are including it in the follow-up message.
I successfully completed all of the steps laid out - for the most part it was successful. The final Return Filter Array Item Count step ran and completed successfully, however 3 of the 22 categories have counts off by +1 in the flow:
Internal Account
One of the categories is basically an internal account and is named after our client - we have 10 contacts that have this category however the flow is counting 11 items.
Not sure if it matters, but my SP List email key has 3 columns - Person, Category and Company. The person and category columns are noted in my original post and the company is whether the contact works for my organization or the for the client.
The "internal category" and "client name" are exactly the same - it would look something like Person1 below:
Of the 10 contacts with the internal account category, 1 also has the client name as the company - is it double counting this person?
My guess at what is happening...
When the "Client Name" option was added to the first compose step to create the array, I am assuming it picks up the "Client Name" reference everywhere it exists in the SP list. Even though the filter array step is run against the category column, the person is included because their category is also "Client Name".
EDIT - I edited my SP list and it disproved my hypothesis. See my follow-up comment.
Best Buy
I suspect the issues with the 2 other categories are related to one another and the fact we have multiple options for Best Buy:
The flow counted one additional item for "Best Buy Core" (4 instead of 3) and "Best Buy Premium" (3 instead of 2) however calculated the correct number of items for "Best Buy Core & Best Buy Premium" (3).
This is how my SP is set up for these categories:
Best Buy Core - should be Person1, Person3 and Person4 however the flow counts 4 items
Best Buy Premium - should be Person1 and Person2 however the flow counts 3 items
Best Buy Core & Best Buy Premium - should be Person1, Person2, Person3 and the flow counts 3 items (correct)
I suspect it is including "Best Buy Core & Best Buy Premium" in both the "Best Buy Core" and "Best Buy Premium" counts due to the partial matches.
Is there a way to force the flow to recognize exact text so that "Best Buy Core & Best Buy Premium" is counted individually apart from "Best Buy Core" or "Best Buy Premium"?
Background note - the "Best Buy Core & Best Buy Premium" exists as an answer option in the Form because branching from questions with multi-select answer options is not possible in basic Forms. We had to set it up as a single-select to enable branching. I added it to my SP list as a category option because it is a unique answer option in our Form.
Thanks again!
Regarding the internal account - I think my initial suspicion is incorrect.
I thought that the company column was generating the extra item however I updated the client company name in the company column to an acronym that doesn't match the category at all and the flow is still counting 11 items despite there only being 10.
With that said, I realized we have the following categories with the client name referenced - one being the internal account and the other being a product category:
This now seems very similar to the Best Buy situation noted above where the flow is counting items that contain the text at all as opposed to matching exact text.How much of this has to do with using "contain" vs "is equal to" in the filter array step?
EDIT - I changed it from "contains" to "is equal to" and test it however the flow counted 0 items.
@tbrock_troc Apologies, I forgot to include a link to the YT Tutorial—the prev post has been updated with that info.
Can you show a screenshot of your flow as is. When you use the is equal to operator. The values must be an exact match. Because you are taking the multi-choice selections and converting it from an array to a string, you need to use the contains operator. The equals to operator will always return no results.
Keep in mind, there is still more that has to be done. In this part of the flow the Apply to Each action is looping through each selection made to see which SP items contain that item being looped through. So although you may see a count returned, you have to remember that you will need a away to combine all SP items.
We haven't done that yet. So if you press the NEXT button in the Apply to Each action, the numbers outputted from the Compose action should add up to the correct number of SP items. Hope I'm making sense.
@creativeopinion wrote:@tbrock_troc Apologies, I forgot to include a link to the YT Tutorial—the prev post has been updated with that info.
Thank you - I will check it out.
@creativeopinion wrote:Can you show a screenshot of your flow as is. When you use the is equal to operator. The values must be an exact match. Because you are taking the multi-choice selections and converting it from an array to a string, you need to use the contains operator. The equals to operator will always return no results.
Yeah - I tested it out and found out quickly it did not work. After thinking about it, I suspected that it had to do with the fact we're looking for a phrase within an array and an "exact match" would ostensibly be the whole array.
Here is my flow - I am building the exact flow you have outline from scratch, just using my SP List that I had created:
@creativeopinion wrote:Keep in mind, there is still more that has to be done. In this part of the flow the Apply to Each action is looping through each selection made to see which SP items contain that item being looped through. So although you may see a count returned, you have to remember that you will need a away to combine all SP items.
Understood.
@creativeopinion wrote:We haven't done that yet. So if you press the NEXT button in the Apply to Each action, the numbers outputted from the Compose action should add up to the correct number of SP items. Hope I'm making sense.
I think I understand. The numbers being output in the compose step match for 19/22 category cases so, logically, the flow is working.
I believe the issue with the 3 items has to do with the name of one category name being included in another category names resulting in an additional item being counted - the issues are happening with:
The "internal account" issue can probably be solved in a basic way by editing the category and MS Form answer options to remove client name - "Accessory" instead of "Client Name Accessory".
The Best Buy situation will need to be solved for...
I included the combined "Best Buy Core & Best Buy Premium" as a category option in SP List because it is a specific (unique) answer option in my MS Form assuming I would need to have each answer option in the SP list in order to map the Form responses.
With that said, is it better for my SP List to only have the individual "Best Buy Core" and "Best Buy Premium" as category options and use the power automate to split "Best Buy Core & Best By Premium" answer option into the separate parts ("Best Buy Core" and "Best Buy Premium") when selected in the Form?
Thanks again @creativeopinion!
@tbrock_troc Each category should be a single option. In your case, I would have:
As separate choices. As long as your MS Form outputs Best Buy Core and Best Buy Premium as separate options.
Are these assigned as categories as well? How do these selections relate to your MS Form?
Hi @creativeopinion - thanks for the quick response!
@creativeopinion wrote:@tbrock_troc Each category should be a single option. In your case, I would have:
- Best Buy Core
- Best Buy Premium
As separate choices.
Got it.
@creativeopinion wrote:As long as your MS Form outputs Best Buy Core and Best Buy Premium as separate options.
My form has these 3 answer options:
The combined option is due to limitations in basic Forms - we need to be able to trigger child questions (branching) which is not possible for question set for multi-select answer options and we need to be able to be able choose the Best Buy options either separately or together.
@creativeopinion wrote:Are these assigned as categories as well? How do these selections relate to your MS Form?
- Client Name
- Client Name Accessory
Yes - generically, these are both assigned categories and here is how they relate to our Form:
(The form answer options and list category options use my client's company name - I am just using a generic "client name" reference for this post.)
The resulting email recipient list should include the corresponding account management recipients and the corresponding product management recipients.
I think the easiest solution here is to just edit the "Client Name Accessory" to just "Accessory" to avoid the client name from being used in more than one category.
I'll put together a flow chart to give you can get a better idea of my specific situation.
Here is a flow chart of our form and the questions that determine the resulting recipient list (account & product management)
Addendum - it is probably worth noting the following:
Since we do not have any child questions triggered (branched) from the account question in audits, we are able to use multi-select with just two Best Buy options:
However Events do have child questions triggered from the account question and Best Buy is the anomaly in that it has different account teams depending on if Core or Premium - so, our event account question is set up as as a single select:
Since the Events account question is a single select, does this make the output a string?
If it is a string, is it possible to 'split' the "Best Buy Core & Best Buy Premium" answer option into the two separate terms ("Best Buy Core" and "Best Buy Premium") to be added to the array search (filter?) when that option is selected?
I updated my SP list:
This has resolved the count issues I was experiencing - the flow accurately counts the associations for each of the 21 categories.
Regarding the Best Buy situation and given the structure/limitations of our Form, I was thinking perhaps the following updates would help get rid of the combined "Best Buy Core & Best Buy Premium" option:
My flow in the end would just need to have some sort of conditions or parallel action trees using filters to create the recipient list from the correct question for each of the following scenarios:
Hi @creativeopinion ...just wanted to ping you. I know you're super active on the forums so probably get a ton of notifications.
I am still struggling to connect the dots in terms of where to go.
I can't tell if I should be using a "Select" action somewhere (or where to use it) to map the SP Email Key or if I should be going from the Filter Array into an HTML table.
The closest I got was creating an HTML table and setting the string variable, but I am getting the whole person-type field contents in the HTML table and not just the emails.
Any additional assistance is greatly appreciated!
@tbrock_troc Sorry I needed time to think about the logic. I don't believe you need any parallel branches. In your case I don't think it's necessary. You just need to collect the results of these questions into an array.
Then you can use a Filter Array action to filter out the recipients from your SP list. Let me know if I'm making sense or if you need further clarification.
Hi @creativeopinion - no worries, appreciate the response. Thank you.
I would not be surprised to find out that there is a way to create the array from whichever of the pertinent questions contains information without requiring conditions. Based on my inexperience, I probably approach everything from the path of least resistance - I figured I would be able to use conditions within my flow as long as I learned how to:
So I had visualized something along the lines of this since they are more or less mutually exclusive scenarios (noting there are a lot of missing specific steps required in an actual flow)
With all of that said, I'm actually pretty interested in learning the rest of the flow you were starting to show me - I think a lot of it aligns with my actual need (filtering SP list, taking resulting email addresses, adding to string variable) and I think the rest of it will prove to be a good learning experience.
While we contemplate the logic of final need, can you show me how to finish out the steps from the filter query onward?
My most recent half-step forward was being able to find and partially isolate the email address information, however it's still not the correct final format for an email recipient string.
I added a Select steps ahead of and behind the Filter Array step - the output from the first Select is the Filter Array input and the Filter Array output is the input to the second Select. Here is the flow:
Here is the result at the final compose step pictured - it created the following for each of the groups in my array:
{"Email":"person1@email.com"};{"Email":"person2@email.com"};{"Email":"person3@email.com"};{"Email":"person4@email.com"};{"Email":"person5@email.com"};{"Email":"person6@email.com"};{"Email":"person7@email.com"};{"Email":"person8@email.com"};{"Email":"person9@email.com"};{"Email":"person10@email.com"};{"Email":"person11@email.com"}
So, basically, I have 20 or so arrays that look like this - I need to still combine them all into a string variable without all of the extra characters.
Thanks again for your time.
Progress update...
I have now been able to isolate the email address data and combine all of the filtered groupings back together into a single string. However, there are two things I would like to correct:
The string variable output is basically:
person1@email.com; person2@email.com; person3@email.com; person4@email.com; person5@email.com; person6@email.com; person7@email.com; person8@email.com.com; person9@email.com; person10@email.com; person11@email.comperson1@email.com; person2@email.com; person3@email.com; person4@email.com; person5@email.com; person6@email.com; person7@email.com; person9@email.com; person10@email.com; person11@email.comperson12@email.com; person13@email.comperson14@email.com; person15@email.com; person16@email.comperson15@email.com; person22@email.comperson12@email.com; person21@email.com; person22@email.comperson12@email.com; person17@email.comperson16@email.comperson18@email.com; person19@email.com; person20@email.comperson18@email.com; person20@email.comperson18@email.comperson26@email.com; person24@email.com; person25@email.comperson26@email.com; person24@email.com; person25@email.comperson26@email.com; person24@email.com; person25@email.comperson26@email.com; person24@email.com; person25@email.comperson27@email.com; person30@email.com; person23@email.comperson27@email.com; person30@email.com; person23@email.comperson28@email.com; person31@email.com; person29@email.comperson28@email.com; person31@email.com; person29@email.comperson28@email.com; person31@email.com; person29@email.comperson32@email.com
The duplicates are obvious and I have bolded the instances where I believe the filtered groups were merged together without a delimiter between them.
@tbrock_troc Instead of joining the email addresses and using an append to string variable you should use the union() function. The union() function will merge two arrays and remove any duplicates in the process. Outside of the Apply to Each action you can then use the join() function in an expression or use the Join action to convert the array of email addresses to a string.
Hi @creativeopinion ... thanks for the response and sorry for the delay in mine. The past month has been crazy between travel, meetings and I lost my dog so it's been a bit difficult to get my head back in the game.
I replaced the append to string variable with the union() function and a join() outside of the 'Apply to Each' - here was the output:
["person1@email.com","person2@email.com","person3@email.com","person4@email.com","person5@email.com","person6@email.com","person7@email.com","person8@email.com","person9@email.com","person10@email.com","person11@email.com"]; ["person1@email.com","person2@email.com","person3@email.com","person4@email.com","person5@email.com","person6@email.com","person7@email.com","person9@email.com","person10@email.com","person11@email.com"]; ["person12@email.com","person13@email.com"]; ["person14@email.com","person15@email.com","person16@email.com"]; ["person15@email.com","person17@email.com"]; ["person12@email.com","person19@email.com","person17@email.com"]; ["person12@email.com","person18@email.com"]; ["person16@email.com"]; ["person20@email.com","person31@email.com","person32@email.com"]; ["person20@email.com","person32@email.com"]; ["person20@email.com"]; ["person21@email.com","person22@email.com","person23@email.com"]; ["person24@email.com","person25@email.com","person26@email.com"]; ["person27@email.com","person28@email.com","person29@email.com"]; ["person30@email.com"]
Compared to the output I had with the 'Append to String Variable', the result seems a mix of both steps forward and backward:
As I understood your direction, the union() function should remove duplicates within the array however, from what it looks like, my steps just lined up the filtered groupings one after the other.
Do I need to append an array variable with the filtered groupings before using the union function?
@tbrock_troc Can you share a screenshot of your flow in the Classic Designer? I believe you need to adjust the logic a bit. It would be helpful to see what your flow currently looks like.
@creativeopinion ...absolutely.
Detailed
JSON Schema:
*Note - I was unable to call up the 'Apply to Each' output in the Join action outside of the 'Apply to Each' step. I think I also had issues with the compose function so I created a Union function inside of the 'Apply to Each' and dragged it outside of the 'Apply to Each'
Please let me know if you'd like to see the test outputs for any of the steps.
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!
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
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.
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