cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Gautham001
Helper IV
Helper IV

Grouping of Mulltiple Rows

Hi , 

 

I'm updating a SQL DB with multiple rows at the same time which has the Same Requestor 

 

RequestorItemQuantity
PersonXApples10
PersonXOranges

20

PersonYBerries

30

PersonYAvocado40

 

In this example , i would need to trigger adaptive cards to teams , 2 cards since there are 2 different requestors.

 

1 to Person X and the other to Y. The content of the card is the items and quantity 

 

Also i need to use a scheduled flow to check the DB every 5mins(time can change).

 

So , i need to check the DB for new records every 5 mins(since the last flow ran) , and group them according to the user and send them notifications?

 

i'm struggling to query the records for every 5 mins , any help on how the flow would look like?

 

Thank you!

1 ACCEPTED SOLUTION

Accepted Solutions
Jronash
Impactful Individual
Impactful Individual

Your problem with email addresses in the second loop iteration is because you are using "Append to a string variable" to set null() instead of "Set variable"

 

Append adds the value to the end of the current variable.  So if your variable is currently 'email@email.com', and you append null to it, the new value is 'email@email.com(null)" (except of course you don't see null, because it's null).

 

If you change that append block to a Set variable block, it should solve that problem.

 

As for how I set quantity and item on my flow, I selected them from the dynamic content.  Just be sure to select them from the Filter Array output, not from your original data output.

 

If you don't see it there, you can always use an expression.  Assuming this is in the Apply to each block that is looping over your Filter Array output, and assuming your data is organized they way you have presented it here, you could access those values with these expressions:

item()?['quantity']
item()?['item']

 

View solution in original post

19 REPLIES 19
Jronash
Impactful Individual
Impactful Individual

I've seen this general problem pop up somewhat regularly, and I don't know of a quick fix, unfortunately.

 

Basically, what you're wanting to do is loop through each Requestor, grab their items, and send an adaptive card to each.

 

Easy enough, but how do you get the list of Requestors without including duplicates?  There's no built in way to do this, so we have to take a few steps to make it happen.  Here's how I would do it:

distinct.png

First, I create a variable with an empty array.  We're going to need this later.

 

Next I have a compose block with my data.  This is the data I'm using for this test:

[
 {
  "requestor": "a",
  "item": "apple",
  "quantity": 10
 },
 {
  "requestor": "a",
  "item": "orange",
  "quantity": 3
 },
 {
  "requestor": "b",
  "item": "banana",
  "quantity": 1
 },
 {
  "requestor": "b",
  "item": "apple",
  "quantity": 3
 }
]

 

Now we use a select block to create a new array that only has the requestor information.  We set the From field to our Compose block with all the data, and map one column (requestor) to item()?['requestor], which is the requestor data in our Compose data block.

 

Now the output from the Select will look like this:

[
  {
    "requestor": "a"
  },
  {
    "requestor": "a"
  },
  {
    "requestor": "b"
  },
  {
    "requestor": "b"
  }
]

 

We've narrowed it down to the requestors, but we still have duplicates.  But now we can use the union() expression to remove any duplicates.  Only problem is that union() needs to have two arrays to compare.  This is where that empty array comes in.  We run union() and give it our array of requestors, and our blank array variable.  The expression looks like this:

union(body('Select'),variables('array'))

 

The output of that expression is:

[
  {
    "requestor": "a"
  },
  {
    "requestor": "b"
  }
]

 

That's what we want!  Now we can start an Apply to Each block based on this new array, and we'll know that it will only run once for each requestor.  We can use a filter block on your original data to return only the items associated with each user, and post your adaptive card to the appropriate place.

 

You also mentioned that you're having trouble querying your records every 5 minutes.  Can you say more about what problems you are running into?  How are you currently trying to make this happen, and how is it failing?

@Jronash  Brilliant , thanks for the clear explanation! 

But could you show what you mean by Applying a Apply to Each loop on a filter block on the original data. I tried it out but could not figure it out.

 

Querying records issue - I'm using a scheduled flow for every 5 mins.  Then i use a get rows function and under the filter query   
 I'm trying to subtract the TimeOfRequestSubmit -   TimeNow < 300s ( 5min) ? 

Don't think this logic is feasible , do you have a better approach?

 

Thank you for helping!

 

 

Jronash
Impactful Individual
Impactful Individual

Here's one way to handle the loop and filters.

apply.png

You start by creating an Apply to each block using the data from your union() expression.  It will loop once for each requestor.

 

Then you can use a Filter to select all of the items related to that requestor.  Set the From field in the Filter back to your complete data set.  Then you want to filter out only the items where the requestor matches the requestor in our current loop iteration.

 

To specify that we want to look in the requester column of the data, we use this expression:

item()?['requestor']

(or you may be able to just select it from dynamic data)

 

To specify that you want it to match the current requestor in our loop, you use this expression:

items('Apply_to_each')?['requestor]

 

I also added a Create HTML Table block just so I can show you the results when I run the flow. 

Iteration #1:

 

apply1.png

Iteration #2:

apply2.png

 

Can you post a screenshot of your database filter query?  Those can be tricky to get right.  Most likely you will have to create a timestamp that is five minutes in the past, and use an expression like [dateModifiedColumnName] ge [timestamp]

@Jronash  Please take a look at the flow i have created.

Gautham001_0-1603870956557.png  - I have a field called usersubmittime  , I haven't figured out the filter part since i don't have earlier steps to "pick" dynamic content.  

 

Gautham001_1-1603871378533.png - In your example you used sample data , but is this similar to what you meant?

 

Gautham001_2-1603872286706.png - I am not sure what to choose in the select and Filter array fields which are left blank.

 

Please guide me with the missing steps and fields and if anything i have done is incorrect!.

 

Thank you.

 

 

 

 

Jronash
Impactful Individual
Impactful Individual

I have found that trying to filter dates with the OData filter in the SQL connector is a huge pain and rarely works right.  It SHOULD work like this, but your mileage may vary.

 

First, I'd use the Get Past Time block to create a timestamp 5 minutes in the past.

 

Then, in your SQL filter, set it to

usersubmittime ge '[Past time]'

[Past time] is the time you can select from your dynamic content.

 

If that works, great!  If not, you can take a look around the web and you'll find lots of people who say they've found ways to make this work using a variety of different methods.  I haven't had much luck with any of them.

 

If you can make changes to the database itself, I often end up creating a stored procedure in the database itself that queries the data I want, and has a parameter for the time I want to query by.  Then I can call that stored procedure using 'Execute stored procedure (v2)', pass it the time, and get back the data I want.

 

For your filter - in the empty box, you want this expression:

items('Apply_to_each_2')?['RequestorName']

Items() references a collection, and you want to point to the collection in the current loop.  Your loop is named 'Apply to each 2', so in the expression that becomes items('Apply_to_each_2').  Then you need to tell it which column you want data from.  In your Select block, you named your column 'RequestorName', so you add the ?['RequestorName'] to the end of your expression.

@Jronash  Thank you so much for all the help again.

 

But i get this error.

 

Gautham001_0-1603965063177.png

 

The error - 

The execution of template action 'Filter_array' failed: The evaluation of 'query' action 'where' expression '@equals(items('Apply_to_each_3')?['RequestedFor'], 'items(''Apply_to_each_2'')?[''RequestorName'']')' failed: 'The template language expression 'equals(items('Apply_to_each_3')?['RequestedFor'], 'items(''Apply_to_each_2'')?[''RequestorName'']')' cannot be evaluated because property 'RequestedFor' cannot be selected. Array elements can only be selected using an integer index.'

And a quick question , 

 

Do i add more fields under RequestorName?

 

Like date location etc , and the process remains the same?

 

Gautham001_1-1603965092882.png

 

Thanks again.

 

 

Jronash
Impactful Individual
Impactful Individual

I think we need to back up a step. I made things confusing when I created my own data source rather than using the SQL connector like you are.  Here's what the entire process looks like using the SQL connector.  Now, I don't have a usersubmit column like you do, so I'm grouping things by marital status instead, but the process is the same. 

full1.png

 

As before, I start by creating an empty array.  Then I have my Get rows block to get all of the data I want to process.

 

Then I have my select block to focus in just on marital status.  In your case of course, this would be focused on the Requestor instead.  You don't want to add more columns to this select block, because the purpose is to create a distinct list of Requestors (or marital statuses) with no duplicates.  Adding more columns will likely add duplicates.

 

Then we have the compose block that uses union() to remove duplicates from our Select block output.

 

Then we have the Apply to each loop. It's looping over the data in the Compose block with the union() expression.

 

Next we have our filter.  We want the filter to look at ALL the data, which means that the From field and the left side of the filter need to both point back to our source - the SQL Get Rows block.  From should be Value from the Get Rows block, and the left side of the expression should be a column from the same block.  In my case it is marital_status, in your case it looks like it would be RequestedFor.

 

In the Right side of the expression, we need to refer to the current requestor (or marital status) in our newly created list with no duplicates.  We can't select this from the dynamic content, so we have to use an expression.  The expression in my case is

items('Apply_to_each')?['MaritalStatus']

You will have to modify this in your case.  'Apply_to_each' may have to be changed, depending on what your loop is called (it may be 'Apply_to_each_2' or 'Apply_to_each_3', but make sure it's pointing to the current loop).  And 'MaritalStatus' will need to be changed to whatever you named the column you created in your Select box.  From your screenshots, it looks like it would be 'RequestorName'.

 

I have three marital statuses in my data - single, married, and null.  So when I run this flow, my loop with iterate three times.  The first time it will give me all the records where the marital status is Single, the second time the records where the status is Married, and the third time the records where the status is Null.

 

Hope this helps.

 

@Jronash  

 

Worked like a charm!.

 

But how do i send emails to each requestor in the output of the filter array.

 

Example  { 
                   

RequestedFor : "PersonA", 
                       Item : "Apple"
                } , 
                      {

RequestedFor : "PersonB" , 
                        Item : "Oranges"

}

 

I need to send a email to both Persons here with the Item they chose.

 

In the "To" column of the email function i used the 

items('Apply_to_each')?['RequestorName'] , but i guess they need to be separated with ' ; ' ? Not sure how to display the content!

 

The Rest is working fine , thank you so much!

Jronash
Impactful Individual
Impactful Individual

If you want to use the RequestorName data in the To field, it needs to be an email address.  In your test data, you have "PersonA" and "PersonB".  In your actual data, are those email addresses rather than names?

@Jronash  ,  I do have a Email field which i can use instead of the name i guess. But how do i display content? 

 

 

Edit:  I tried out the email field and no luck.

 

Thank you.

Jronash
Impactful Individual
Impactful Individual

You can email the data in any number of ways... the easiest may be to use a Create HTML Table block and use your Filter Array block as the source. Then you can just take the output of the Create HTML Table block and put it in the email body (as long as your email block is also in your Apply to Each loop). As for the problems with your email field, you'll have to be more specific about what's not working.

@Jronash  , 

In a  ,  Example  { 
                   

RequestedFor : "PersonA", 
                       Item : "Apple"
                } , 
                      {

RequestedFor : "PersonB" , 
                        Item : "Oranges"

}

 

I want to send a email with content like "Hey PersonA , Here is your requested item : 'Apple' ". Similar for person B and every other person in the loop. The HTML Body block isn't similar to what i wanted.

 

Any suggestions on how i can get this? Thanks for all the help!

 

One of the issues i am having is when i select a field from dynamic content , the flow adds a apply to each loop.

 

Gautham001_0-1604273417105.png

 

Jronash
Impactful Individual
Impactful Individual

The first issue is that you are trying to insert data from your original SQL action.  That action still has ALL of the data in it, for all of the requestors, so you don't want to be using it to build your message.

 

Rather, you need to use the data from our Filter action.  The output from that action will only contain the data for the relevant person.

 

But you still have a second problem. 

 

In your original question, your data had multiple items for each requestor.  The problem we were solving is - How do you group all of these requests and send them all at once, so that the requestor doesn't get multiple emails, one for each request?  We want them to get ONE email that contains ALL of the requests, right?

 

Our solution was to create a Grouping function, so instead of one array with all the items in it, we now effectively have an array for each requestor, that contains ONLY their items.

 

The way you want to format your message (Hey PersonA , Here is your requested item : 'Apple'), you are acting as if the PersonA will only have 1 item.  But PersonA could have many items, and Flow knows this, so when you try to insert one of those values, Flow will automatically put it in a loop, because it knows that there could be more than one. 

 

Create HTML table gets around this by grouping all of PersonA's items into one output that can be displayed without a loop.  The disadvantage is that you have less control over the output.

 

If you want to have more control over the output, you're going to have to do something like create a string variable, loop through each of PersonA's items and append something like "You requested: Item" to your string variable.  Then, when you send the email, you can just use that variable.

 

You say you're new to Automate, and this is not a beginner-level flow that you're trying to build.  I'll try to explain things as best as I can, but until you have a better understanding of how Automate works with arrays vs individual items, this is going to be confusing for you.

 

Gautham001
Helper IV
Helper IV

Hey , @Jronash 

 

I wanted to use the second method you mentioned - If you want to have more control over the output, you're going to have to do something like create a string variable, loop through each of Person A 's items and append something like You requested: Item to your string variable.  Then, when you send the email, you can just use that variable.

 

I have created a string variable named Items Variable  , and created two append to string actions since i am not sure if i should create  a Apply _ to _ each loop before the filter array or after. Also i am not sure what the input to the apply to each loop would be , i am assuming it should be value , but i am not sure what to expression would be like to filter only Person A's items. Could you please show me how to carry out this process? 

 

Is there a way to dynamically filter each person's items? (In this scenario i have two people - Person A & B , but that is just an example , is there a way to make this dynamic? In a scenario of 10 people , i would like to create a Adaptive card for each member and send only their requested items. Is this possible?) .

 

 

Thank you so much for the continued help , this is the last puzzle in my flow , there won't be any more questions lol

 

This is my flow now , 

Gautham001_0-1604540791812.png

 

Is this the right way to use the string  append variable?

 

Gautham001_1-1604540832268.png

 

 

Jronash
Impactful Individual
Impactful Individual

One of my favorite things about Automate is that if you look at Run History, you can see the output of every single action.  This is a great way to see how you are transforming your data with the various actions and expressions that you are using.

 

One thing to remember is that once an action has completed, its output does not change.  So when you run Get Rows (v2) at the top of your flow, it gets all the rows for all the items and people.  If you use a Filter Array later on to filter those results down, it doesn't change the results of Get Rows (v2), instead, it creates its OWN output, containing a copy of any of the rows from Get Rows (v2) that matched your filter.

 

In your current flow, you are looping over the output from Get Rows (v2).  As you have already learned, this doesn't work for your purposes, because it loops over ALL of the rows, instead of selecting only the rows for a specific person.

 

If you run your flow the way it is and check the output of the various outputs, I think you will find that you already have what you need.  You ask if there is a way to filter each person's items.  That is what we are doing in the Apply to each block (the second one, at the end of your flow).  We are looping over each person in your data, and running a Filter Array to return just their items.  If you check the run history and look at the output from Filter Array, you will see that it contains only the items for the person in the current loop iteration. 

 

This means that the loop that you use to append to your string variable will need to be based on the output from the Filter Array block, not the Get Rows block.  It also means that your new loop will need to be built INSIDE the loop with the Filter Array block - where you currently have your Create HTML Table block.

 

After you have created your loop and appended all the values from Filter Array, you can send your Teams notification.  This will also need to be in the Apply to each loop (the one with the Filter Array block, not your new nested loop with the Append to String block).

 

You'll need to remember to reset your string variable back to blank at the end of the loop, so that it doesn't carry over data from one person to the next.

Hey @Jronash  , 

 

Thank you for the clear explanation which really helped out thoroughly.

 

I carried out the steps you mentioned in the last reply and i am very close but stuck with just one flaw which i am not able to solve myself.

 

Is this similar to what you meant ?

Gautham001_1-1605035891440.png

 

If this is what you meant , 

1. The body of the Filter array would return the entire record(all the columns in the row/record). I want to get only the Field Name "ApproveEmail" . Should i filter out the output of the filter array before adding them to string variable? Or is there any other way. I need this column because it stores the emails of the users the notfications gets sent to which i need to use in the team card action.

 

Should i use something like body('Filter_array')?['ApproverMail']     ? to get only the mail fields

 

2. If there are 3 different people in the output of the filter array , the string can have more than one different approver mail. Can i use that string variable in the teams card "To" Field. Because that action does not allow multiple users when used with multiple emails separated by " ; ".

 

Output of filter array in run history : 

Gautham001_2-1605036497224.png

As you see , the whole record is returned. Which is Perfect , but i want to know how to filter out only the "ManagerEmail"/"ApproverMail" field.

 

And if there's multiple values , i think the apply to each loop (3) -  in the pics i posted , should add all of them to the string variable.

 

Thanks for the continued help , really appreciate it.

 

 

 

 

 

 

 

 

 

Jronash
Impactful Individual
Impactful Individual

Here's how I would do it:

apply.png

Now originally, we were grouping by requestor name.  So in our first loop, we would have been looping over a list of names.  After we realized that we needed the email address in order to send the Teams notification, we talked about updating the flow so that it would group by the email address, not the name.  Did you make that change in your flow?

 

Assuming you did, here's the breakdown.

After the filter, we create a second Apply to Each.  This one is looping over the output of our Filter.  This isn't where you set the email address, this is where you create the body of the notification.  You can use dynamic content to create your message, but make sure you are using dynamic content that comes from the Filter array block.

 

That's all you want in your second loop.  Everything else should be back in the first loop.

 

Then I created a "Pretend this is a Teams Notification" block, just so you can see how I set those values.

 

For the To: field, I use the current ManagerEmail with the expression:

item()?['ManagerEmail']

This might be different in your flow.  The last time you posted that part of your flow, you were calling this 'RequestorName', and it was a name, not an email address.  If you don't remember, check your Select box.  Make sure the value on the right side points to the email address that you want to send the Teams message to, and make sure the name you typed on the left side is 'ManagerEmail' (or whatever you want to use).

 

For the message body, I use my text variable. 

 

After that, I have to reset the text variable so it won't include these results for the next message it sends.  I do this by setting the variable to null().

 

Here's what that block looks like when I run the flow.  I have two email addresses in my sample data, so it runs twice.  This is the first run:

 

loop2.png

 

This is the second:

loop1.png

Hey @Jronash  , 

Can you share the expression for the variables "quantity" & "Item" in your image.

 

I would need to group by "RequestorEmail" and later pick the "ManagerEmail" from the output of filter array (like you have done for quantity and item) and use that as the "To" email field in Teams Notification.

 

I carried out the steps you mentioned and it works like a charm for the first run ,

However the second run onwards the variable has 2 values of "ManagerEmail" , looks like the append to string variable with null should be applied earlier?


This is the flow i'm running now.

Gautham001_0-1605117087400.png - The expression for the variable "ManagerEmail" is , items('Apply_to_each_3')?['ManagerEmail'] , i am guessing this is wrong. Please correct if so.

 

Run History : 

Run 1 :

Gautham001_1-1605117295256.png

Works Fine 

 

Run 2 and onwards (IF Filter Array output has more than 1 distinct/unique emails)

 

Value is appended to the string variable.

 

Ex : If value in string variable is "email1@test.com" , the Teams Notification is sent to "email1@test.com"
Run 2 : String variable is "email2@test.com" , The Teams Notification is sent to email1@test.comemail2@test.com - how do i stop this?


Also just to be clear again , i wanted to group by "requestoremails"  and in the output of the filter block get the "ManagerEmail" of the records/items in the output of the Filter Array

 

Example : Output of filter array :

{
Item: A
Quantity : 1

RequestorEmail : abc@test.com

ManagerEmail : efg@test.com

}

{
Item: B
Quantity : 2

RequestorEmail : xyz@test.com

ManagerEmail : tyu@test.com

}

 

I want to pick up the 2 Manager emails and send the notifications for them , Like you have done for quantity and item.

 

Apologies For the unclear explaining earlier.

 

Thank you for your continued support , much appreciated.



 

 

 

 

 

Jronash
Impactful Individual
Impactful Individual

Your problem with email addresses in the second loop iteration is because you are using "Append to a string variable" to set null() instead of "Set variable"

 

Append adds the value to the end of the current variable.  So if your variable is currently 'email@email.com', and you append null to it, the new value is 'email@email.com(null)" (except of course you don't see null, because it's null).

 

If you change that append block to a Set variable block, it should solve that problem.

 

As for how I set quantity and item on my flow, I selected them from the dynamic content.  Just be sure to select them from the Filter Array output, not from your original data output.

 

If you don't see it there, you can always use an expression.  Assuming this is in the Apply to each block that is looping over your Filter Array output, and assuming your data is organized they way you have presented it here, you could access those values with these expressions:

item()?['quantity']
item()?['item']

 

Helpful resources

Announcements

Tuesday Tip: Getting Started with Private Messages & Macros

Welcome to TUESDAY TIPS, your weekly connection with the most insightful tips and tricks that empower both newcomers and veterans in the Power Platform Community! Every Tuesday, we bring you a curated selection of the finest advice, distilled from the resources and tools in the Community. Whether you’re a seasoned member or just getting started, Tuesday Tips are the perfect compass guiding you across the dynamic landscape of the Power Platform Community.   As our community family expands each week, we revisit our essential tools, tips, and tricks to ensure you’re well-versed in the community’s pulse. Keep an eye on the News & Announcements for your weekly Tuesday Tips—you never know what you may learn!   This Week's Tip: Private Messaging & Macros in Power Apps Community   Do you want to enhance your communication in the Community and streamline your interactions? One of the best ways to do this is to ensure you are using Private Messaging--and the ever-handy macros that are available to you as a Community member!   Our Knowledge Base article about private messaging and macros is the best place to find out more. Check it out today and discover some key tips and tricks when it comes to messages and macros:   Private Messaging: Learn how to enable private messages in your community profile and ensure you’re connected with other community membersMacros Explained: Discover the convenience of macros—prewritten text snippets that save time when posting in forums or sending private messagesCreating Macros: Follow simple steps to create your own macros for efficient communication within the Power Apps CommunityUsage Guide: Understand how to apply macros in posts and private messages, enhancing your interaction with the Community For detailed instructions and more information, visit the full page in your community today:Power Apps: Enabling Private Messaging & How to Use Macros (Power Apps)Power Automate: Enabling Private Messaging & How to Use Macros (Power Automate)  Copilot Studio: Enabling Private Messaging &How to Use Macros (Copilot Studio) Power Pages: Enabling Private Messaging & How to Use Macros (Power Pages)

Tuesday Tip: Subscriptions & Notifications

TUESDAY TIPS are our way of communicating helpful things we've learned or shared that have helped members of the Community. Whether you're just getting started or you're a seasoned pro, Tuesday Tips will help you know where to go, what to look for, and navigate your way through the ever-growing--and ever-changing--world of the Power Platform Community! We cover basics about the Community, provide a few "insider tips" to make your experience even better, and share best practices gleaned from our most active community members and Super Users.   With so many new Community members joining us each week, we'll also review a few of our "best practices" so you know just "how" the Community works, so make sure to watch the News & Announcements each week for the latest and greatest Tuesday Tips!   This Week: All About Subscriptions & Notifications We don't want you to a miss a thing in the Community! The best way to make sure you know what's going on in the News & Announcements, to blogs you follow, or forums and galleries you're interested in is to subscribe! These subscriptions ensure you receive automated messages about the most recent posts and replies. Even better, there are multiple ways you can subscribe to content and boards in the community! (Please note: if you have created an AAD (Azure Active Directory) account you won't be able to receive e-mail notifications.)   Subscribing to a Category  When you're looking at the entire category, select from the Options drop down and choose Subscribe.     You can then choose to Subscribe to all of the boards or select only the boards you want to receive notifications. When you're satisfied with your choices, click Save.     Subscribing to a Topic You can also subscribe to a single topic by clicking Subscribe from the Options drop down menu, while you are viewing the topic or in the General board overview, respectively.     Subscribing to a Label Find the labels at the bottom left of a post.From a particular post with a label, click on the label to filter by that label. This opens a window containing a list of posts with the label you have selected. Click Subscribe.     Note: You can only subscribe to a label at the board level. If you subscribe to a label named 'Copilot' at board #1, it will not automatically subscribe you to an identically named label at board #2. You will have to subscribe twice, once at each board.   Bookmarks Just like you can subscribe to topics and categories, you can also bookmark topics and boards from the same menus! Simply go to the Topic Options drop down menu to bookmark a topic or the Options drop down to bookmark a board. The difference between subscribing and bookmarking is that subscriptions provide you with notifications, whereas bookmarks provide you a static way of easily accessing your favorite boards from the My subscriptions area.   Managing & Viewing Your Subscriptions & Bookmarks To manage your subscriptions, click on your avatar and select My subscriptions from the drop-down menu.     From the Subscriptions & Notifications tab, you can manage your subscriptions, including your e-mail subscription options, your bookmarks, your notification settings, and your email notification format.     You can see a list of all your subscriptions and bookmarks and choose which ones to delete, either individually or in bulk, by checking multiple boxes.     A Note on Following Friends on Mobile Adding someone as a friend or selecting Follow in the mobile view does not allow you to subscribe to their activity feed. You will merely be able to see your friends’ biography, other personal information, or online status, and send messages more quickly by choosing who to send the message to from a list, as opposed to having to search by username.

Monthly Community User Group Update | April 2024

The monthly Community User Group Update is your resource for discovering User Group meetings and events happening around the world (and virtually), welcoming new User Groups to our Community, and more! Our amazing Community User Groups are an important part of the Power Platform Community, with more than 700 Community User Groups worldwide, we know they're a great way to engage personally, while giving our members a place to learn and grow together.   This month, we welcome 3 new User Groups in India, Wales, and Germany, and feature 8 User Group Events across Power Platform and Dynamics 365. Find out more below. New Power Platform User Groups   Power Platform Innovators (India) About: Our aim is to foster a collaborative environment where we can share upcoming Power Platform events, best practices, and valuable content related to Power Platform. Whether you’re a seasoned expert or a newcomer looking to learn, this group is for you. Let’s empower each other to achieve more with Power Platform. Join us in shaping the future of digital transformation!   Power Platform User Group (Wales) About: A Power Platform User Group in Wales (predominantly based in Cardiff but will look to hold sessions around Wales) to establish a community to share learnings and experience in all parts of the platform.   Power Platform User Group (Hannover) About: This group is for anyone who works with the services of Microsoft Power Platform or wants to learn more about it and no-code/low-code. And, of course, Microsoft Copilot application in the Power Platform.   New Dynamics365 User Groups   Ellucian CRM Recruit UK (United Kingdom) About: A group for United Kingdom universities using Ellucian CRM Recruit to manage their admissions process, to share good practice and resolve issues.    Business Central Mexico (Mexico City) About:  A place to find documentation, learning resources, and events focused on user needs in Mexico. We meet to discuss and answer questions about the current features in the standard localization that Microsoft provides, and what you only find in third-party locations. In addition, we focus on what's planned for new standard versions, recent legislation requirements, and more. Let's work together to drive request votes for Microsoft for features that aren't currently found—but are indispensable.   Dynamics 365 F&O User Group (Dublin) About: The Dynamics 365 F&O User Group - Ireland Chapter meets up in person at least twice yearly in One Microsoft Place Dublin for users to have the opportunity to have conversations on mutual topics, find out what’s new and on the Dynamics 365 FinOps Product Roadmap, get insights from customer and partner experiences, and access to Microsoft subject matter expertise.  Upcoming Power Platform Events    PAK Time (Power Apps Kwentuhan) 2024 #6 (Phillipines, Online) This is a continuation session of Custom API. Sir Jun Miano will be sharing firsthand experience on setting up custom API and best practices. (April 6, 2024)       Power Apps: Creating business applications rapidly (Sydney) At this event, learn how to choose the right app on Power Platform, creating a business application in an hour, and tips for using Copilot AI. While we recommend attending all 6 events in the series, each session is independent of one another, and you can join the topics of your interest. Think of it as a “Hop On, Hop Off” bus! Participation is free, but you need a personal computer (laptop) and we provide the rest. We look forward to seeing you there! (April 11, 2024)     April 2024 Cleveland Power Platform User Group (Independence, Ohio) Kickoff the meeting with networking, and then our speaker will share how to create responsive and intuitive Canvas Apps using features like Variables, Search and Filtering. And how PowerFx rich functions and expressions makes configuring those functionalities easier. Bring ideas to discuss and engage with other community members! (April 16, 2024)     Dynamics 365 and Power Platform 2024 Wave 1 Release (NYC, Online) This session features Aric Levin, Microsoft Business Applications MVP and Technical Architect at Avanade and Mihir Shah, Global CoC Leader of Microsoft Managed Services at IBM. We will cover some of the new features and enhancements related to the Power Platform, Dataverse, Maker Portal, Unified Interface and the Microsoft First Party Apps (Microsoft Dynamics 365) that were announced in the Microsoft Dynamics 365 and Power Platform 2024 Release Wave 1 Plan. (April 17, 2024)     Let’s Explore Copilot Studio Series: Bot Skills to Extend Your Copilots (Makati National Capital Reg... Join us for the second installment of our Let's Explore Copilot Studio Series, focusing on Bot Skills. Learn how to enhance your copilot's abilities to automate tasks within specific topics, from booking appointments to sending emails and managing tasks. Discover the power of Skills in expanding conversational capabilities. (April 30, 2024)   Upcoming Dynamics365 Events    Leveraging Customer Managed Keys (CMK) in Dynamics 365 (Noida, Uttar Pradesh, Online) This month's featured topic: Leveraging Customer Managed Keys (CMK) in Dynamics 365, with special guest Nitin Jain from Microsoft. We are excited and thankful to him for doing this session. Join us for this online session, which should be helpful to all Dynamics 365 developers, Technical Architects and Enterprise architects who are implementing Dynamics 365 and want to have more control on the security of their data over Microsoft Managed Keys. (April 11, 2024)       Stockholm D365 User Group April Meeting (Stockholm) This is a Swedish user group for D365 Finance and Operations, AX2012, CRM, CE, Project Operations, and Power BI.  (April 17, 2024)         Transportation Management in D365 F&SCM Q&A Session (Toronto, Online) Calling all Toronto UG members and beyond! Join us for an engaging and informative one-hour Q&A session, exclusively focused on Transportation Management System (TMS) within Dynamics 365 F&SCM. Whether you’re a seasoned professional or just curious about TMS, this event is for you. Bring your questions! (April 26, 2024)   Leaders, Create Your Events!    Leaders of existing User Groups, don’t forget to create your events within the Community platform. By doing so, you’ll enable us to share them in future posts and newsletters. Let’s spread the word and make these gatherings even more impactful! Stay tuned for more updates, inspiring stories, and collaborative opportunities from and for our Community User Groups.   P.S. Have an event or success story to share? Reach out to us – we’d love to feature you. Just leave a comment or send a PM here in the Community!

Exclusive LIVE Community Event: Power Apps Copilot Coffee Chat with Copilot Studio Product Team

We have closed kudos on this post at this time. Thank you to everyone who kudo'ed their RSVP--your invitations are coming soon!  Miss the window to RSVP? Don't worry--you can catch the recording of the meeting this week in the Community.  Details coming soon!   *****   It's time for the SECOND Power Apps Copilot Coffee Chat featuring the Copilot Studio product team, which will be held LIVE on April 3, 2024 at 9:30 AM Pacific Daylight Time (PDT).     This is an incredible opportunity to connect with members of the Copilot Studio product team and ask them anything about Copilot Studio. We'll share our special guests with you shortly--but we want to encourage to mark your calendars now because you will not want to miss the conversation.   This live event will give you the unique opportunity to learn more about Copilot Studio plans, where we’ll focus, and get insight into upcoming features. We’re looking forward to hearing from the community, so bring your questions!   TO GET ACCESS TO THIS EXCLUSIVE AMA: Kudo this post to reserve your spot! Reserve your spot now by kudoing this post.  Reservations will be prioritized on when your kudo for the post comes through, so don't wait! Click that "kudo button" today.   Invitations will be sent on April 2nd.Users posting Kudos after April 2nd at 9AM PDT may not receive an invitation but will be able to view the session online after conclusion of the event. Give your "kudo" today and mark your calendars for April 3, 2024 at 9:30 AM PDT and join us for an engaging and informative session!

Tuesday Tip: Blogging in the Community is a Great Way to Start

TUESDAY TIPS are our way of communicating helpful things we've learned or shared that have helped members of the Community. Whether you're just getting started or you're a seasoned pro, Tuesday Tips will help you know where to go, what to look for, and navigate your way through the ever-growing--and ever-changing--world of the Power Platform Community! We cover basics about the Community, provide a few "insider tips" to make your experience even better, and share best practices gleaned from our most active community members and Super Users.   With so many new Community members joining us each week, we'll also review a few of our "best practices" so you know just "how" the Community works, so make sure to watch the News & Announcements each week for the latest and greatest Tuesday Tips!   This Week's Topic: Blogging in the Community Are you new to our Communities and feel like you may know a few things to share, but you're not quite ready to start answering questions in the forums? A great place to start is the Community blog! Whether you've been using Power Platform for awhile, or you're new to the low-code revolution, the Community blog is a place for anyone who can write, has some great insight to share, and is willing to commit to posting regularly! In other words, we want YOU to join the Community blog.    Why should you consider becoming a blog author? Here are just a few great reasons. 🎉   Learn from Each Other: Our community is like a bustling marketplace of ideas. By sharing your experiences and insights, you contribute to a dynamic ecosystem where makers learn from one another. Your unique perspective matters! Collaborate and Innovate: Imagine a virtual brainstorming session where minds collide, ideas spark, and solutions emerge. That’s what our community blog offers—a platform for collaboration and innovation. Together, we can build something extraordinary. Showcase the Power of Low-Code: You know that feeling when you discover a hidden gem? By writing about your experience with your favorite Power Platform tool, you’re shining a spotlight on its capabilities and real-world applications. It’s like saying, “Hey world, check out this amazing tool!” Earn Trust and Credibility: When you share valuable information, you become a trusted resource. Your fellow community members rely on your tips, tricks, and know-how. It’s like being the go-to friend who always has the best recommendations. Empower Others: By contributing to our community blog, you empower others to level up their skills. Whether it’s a nifty workaround, a time-saving hack, or an aha moment, your words have impact. So grab your keyboard, brew your favorite beverage, and start writing! Your insights matter and your voice counts! With every blog shared in the Community, we all do a better job of tackling complex challenges with gusto. 🚀 Welcome aboard, future blog author! ✍️💻🌟 Get started blogging across the Power Platform Communities today! Just follow one of the links below to begin your blogging adventure.   Power Apps: https://powerusers.microsoft.com/t5/Power-Apps-Community-Blog/bg-p/PowerAppsBlog Power Automate: https://powerusers.microsoft.com/t5/Power-Automate-Community-Blog/bg-p/MPABlog Copilot Studio: https://powerusers.microsoft.com/t5/Copilot-Studio-Community-Blog/bg-p/PVACommunityBlog Power Pages: https://powerusers.microsoft.com/t5/Power-Pages-Community-Blog/bg-p/mpp_blog   When you follow the link, look for the Message Admins button like this on the page's right rail, and let us know you're interested. We can't wait to connect with you and help you get started. Thanks for being part of our incredible community--and thanks for becoming part of the community blog!

Launch Event Registration: Redefine What's Possible Using AI

  Join Microsoft product leaders and engineers for an in-depth look at the latest features in Microsoft Dynamics 365 and Microsoft Power Platform. Learn how advances in AI and Microsoft Copilot can help you connect teams, processes, and data, and respond to changing business needs with greater agility. We’ll share insights and demonstrate how 2024 release wave 1 updates and advancements will help you:   Streamline business processes, automate repetitive tasks, and unlock creativity using the power of Copilot and role-specific insights and actions. Unify customer data to optimize customer journeys with generative AI and foster collaboration between sales and marketing teams. Strengthen governance with upgraded tools and features. Accelerate low-code development  using natural language and streamlined tools. Plus, you can get answers to your questions during our live Q&A chat! Don't wait--register today by clicking the image below!      

Users online (6,637)