cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
PowerApps11
Responsive Resident
Responsive Resident

The best way Patch

Hi,
I wanted to put my app on to production but am still not confident to do it the reason is my patching is it correct or what is the best way to use it and better for performance wise also, at moment here is example my patch and it is working but takes time on run had to wait a bit? possible to improve performance and time shorten code? 

Set(gblTaskLS,
Patch(
        TaskLS,
        If(gblRecordState,
           Defaults(TaskLS),
           gblTaskLS),
        {
            Title: DataCardValue7.Text,
            Due: DataCardValue4.SelectedDate,
            TransType: DataCardValue12.Selected.Value,
            Notes:DataCardValue13.Text
        }
    ));
Patch(
        NotesTaskLS,
        Defaults(NotesTaskLS),
        {
            Title: gblTaskLS.Title,
            Due: gblTaskLS.Due,
            TransType: DataCardValue12.Selected.Value,
            Notes: gblTaskLS.Notes
        }
    ));
Patch(
        IssuesTaskLS,
        Defaults(IssuesTaskLS),
        {
            Title: gblTaskLS.Title,
            Due: gblTaskLS.Due,
            TransType: DataCardValue12.Selected.Value,
            IssueType: DataCardValue13.Selected.Value,
            Notes: gblTaskLS.Notes
        }
    ));
// and two more lists 

 

2 ACCEPTED SOLUTIONS

Accepted Solutions
poweractivate
Most Valuable Professional
Most Valuable Professional

@PowerApps11 

 

Example

 

Instead of

 

Patch(
        TaskLS,
        If(gblRecordState,
           Defaults(TaskLS),
           gblTaskLS),
        {
            Title: DataCardValue7.Text,
            Due: DataCardValue4.SelectedDate,
            TransType: DataCardValue12.Selected.Value,
            Notes:DataCardValue13.Text
        }
    ));

 

Write it like this instead

 

Patch
(
     TaskLS,
     {
         ID:If(gblRecordState,Blank(),gblTaskLS.ID),
         Title: DataCardValue7.Text,
         Due: DataCardValue4.SelectedDate,
         TransType: DataCardValue12.Selected.Value,
         Notes:DataCardValue13.Text
     }
)

 

If the above has any issue, it may not like when you try to Patch in Blank() values, check if turning on the formula-level error management setting helps with this?

 

1. Click Settings

2. Click Upcoming Features

3. Toggle the Formula-level error management setting to On

Then just close the modal, see if it works.

 

poweractivate_0-1664838760107.png

 

The idea of putting the If statement inside the ID value is so that you don't have to use Defaults, and don't have to re-declare the entire record. When the ID is Blank, a new record is created anyway, using what you already provided, whereas if the ID is not blank, what you provided will be used to modify the existing record with the primary key given (ID). In SharePoint List, the ID column is the primary key column, so use the ID to identify a record uniquely for Patch.

 

Try to use this above guideline in rewriting your other parts of the formula.

See if it helps @PowerApps11 

View solution in original post

poweractivate
Most Valuable Professional
Most Valuable Professional

@PowerApps11 If you still have slowdown after applying the above, I suspect it may be how you have done the app in general. For example, that fact that you set gblTaskLS and have the Patch functions inside may be indicative that you're doing it in a way that could be causing slowdowns. You could try and not use the variable at all and see if it helps. This may be difficult to do since you may be depending on the result of this variable currently.

 

If the above changes to Patch do not work, try eliminating your use of the Set function and eliminate the use of the variable entirely to see if something you're doing with the variable is causing a slowdown. It may be difficult for you to do this because it depends what you're trying to accomplish exactly. 

 

For example, if it's as simple as Patching directly from the datacards again directly to each List, try doing exactly that and don't use the variable at all.

 

//elsehwere in your app, have gblRecord just be the specific TaskLS record you want to change, or set it to Blank() if it should not be set at that moment.
Patch
(
        TaskLS,
        {
            ID: If(!IsBlank(gblRecord),gblRecord.ID,Blank())
            Title: DataCardValue7.Text,
            Due: DataCardValue4.SelectedDate,
            TransType: DataCardValue12.Selected.Value,
            Notes:DataCardValue13.Text
        }
    
);
If
(
    !IsBlank(gblRecord)
   ,Patch
   (
        NotesTaskLS,
        {
            Title: gblRecord.Title,
            Due: gblRecord.Due,
            TransType: DataCardValue12.Selected.Value,
            Notes: gblRecord.Notes
        }
    
   );
   Patch
   (
        IssuesTaskLS,
        {
            Title: gblRecord.Title,
            Due: gblRecord.Due,
            TransType: DataCardValue12.Selected.Value,
            IssueType: DataCardValue13.Selected.Value,
            Notes: gblRecord.Notes
        }
   )
)

 

See if this might help as well. The above version eliminates 2 unnecessary patch calls for new records

 

or try this version if you need to create everything even when it's a new Record - just reference the data cards yet again, it might be better that way:

 

//elsehwere in your app, have gblRecord just be the specific TaskLS record you want to change, or set it to Blank() if it should not be set at that moment.
Patch
(
        TaskLS,
        {
            ID: If(!IsBlank(gblRecord),gblRecord.ID,Blank())
            Title: DataCardValue7.Text,
            Due: DataCardValue4.SelectedDate,
            TransType: DataCardValue12.Selected.Value,
            Notes:DataCardValue13.Text
        }
    
);

Patch
(
        NotesTaskLS,
        {
            Title: DataCardValue7.Text,
            Due: DataCardValue4.SelectedDate,
            TransType: DataCardValue12.Selected.Value,
            Notes: DataCardValue13.Text
        }
    
);
Patch
(
        IssuesTaskLS,
        {
            Title: DataCardValue7.Text,
            Due: DataCardValue4.SelectedDate,
            TransType: DataCardValue12.Selected.Value,
            IssueType: DataCardValue13.Selected.Value, //???
            Notes: DataCardValue13.Text
        }
   )
)

 

In the above version, it raises some questions:

1. Why do you need to duplicate values across so many lists?

2. IssueType for IssuesTaskLS says DataCardValue13.Selected.Value which was in your original formula as well, but earlier in the same Patch sequence it was DataCardValue13.Text - why is that? The form can only be one or the other for DataCardValue13, right? So there may be an actual error there or the possibility for there to be one.

 

I think the duplication of the data across many Lists, especially with all Lists you provided appearing to have essentially almost identical schema and receiving almost identical data may be a sign that you should model the data differently on the SharePoint List side. If you need to duplicate everything so much, then you may be using Patch calls to multiple Lists unnecessarily, causing the slowdown also unnecessarily.  If that's the case then for what you need to do differently, that really depends what you actually want to do.

I am not sure the purpose of your given Lists TaskLS, NotesTaskLS, and IssuesTaskLS - they seem like duplicates of the same thing from the Patch formulas you provided, so I don't understand their purpose at all in the first place just from what you provided.

Just based on just what you provided I'd just remove all the other Lists and use just TaskLS, and then not Patch to any other List to make less Patch calls since I don't see a purpose for those Lists based on what you provided.

However, maybe those other Lists you are using do have a purpose - perhaps they have other columns that are important to you as well.

If so, then you might need to provide detail on a high level what exactly do you want to do?

 

I'd recommend modeling something like this

Instead of duplicating all the fields again, keep an ID of which TaskLS it is. Wait - you don't have to - it already has an ID out of the box!

Instead of duplicating the same columns and data in NotesTaskLS and IssuesTaskLS, just have one column called TaskLSID - or TaskID - or something like that - inside both Lists, and in it you can patch the ID of the TaskLS which contains the other information you need. Then you can always lookup the ID of the TaskLS even directly from NotesTaskLS and IssuesTaskLS.

 

However, this only makes sense if NotesTaskLS and IssuesTaskLS actually have any other columns at all to begin with besides the ones in TaskLS.

 

If NotesTaskLS and IssuesTaskLS really had no other columns, besides the same ones in TaskLS that you are trying to duplicate all the time in your Patch formulas to NotesTaskLS and IssuesTaskLS  as you gave them - then just delete these Lists altogether and don't bother patching to them, only patch to TaskLS then!

 

Similarly, you could just move all columns from NotesTaskLS and IssuesTaskLS  directly to TaskLS then remove both Lists NotesTaskLS and IssuesTaskLS

 

 

By the way, I wasn't sure if you were going to have more than one NotesTaskLS per TaskLS Record and more than one IssuesTaskLS per TaskLS Record.

 

If so, then these Patch statements don't look right at all, and the data model of your SharePoint Lists also does not look correct currently.

 

If you were trying to really do that (i.e. have one or more NotesTaskLS Records associated with a single TaskLS Record) you'll need to do something like what I was saying where you have a column called TaskID, so NotesTaskLS might have a TaskID column for example. So now zero, one, or more than one NotesTaskLS Records may have a TaskID that is the same across multiple  NotesTaskLS Records. So from any one NotesTaskLS you can always look up which specific TaskLS Record it is associated with using

 

LookUp(TaskLS,ID=myCurrentNoteRecord.TaskID)

 

If not associated with any Record, this above LookUp returns Blank(). If it is associated with a record, it always returns exactly one Record.

 

To get all the multiple NotesTaskLS attached to a particular TaskLS you can do this then: 

 

Filter(NotesTaskLS,TaskID=myCurrentTaskRecord.ID)

 

to get a Table of associated NotesTaskLS by the TaskLS Record's ID. 

When there are no matches, the Table should be Empty

 

And when you Patch to NotesTaskLS you should remember on new record creation to specify for TaskID column which Task it is (i.e. specify which record of TaskLS it is by its ID), so that later you can LookUp a Task from a Note, or use Filter to get all the Notes attached to a single Task.

 

See if it helps @PowerApps11 

View solution in original post

7 REPLIES 7
poweractivate
Most Valuable Professional
Most Valuable Professional

@PowerApps11 

The best way is to always use only 2 arguments to Patch, like this:

//To update an existing record
Patch
(
   YourDataSource
   {
       ID: YourID //PRIMARY KEY
       Field1: YourField1Contents
       Field2: YourField2Contents
   }
)

//To create a new record
Patch
(
   YourDataSource
   {
       //OMIT the primary key - leave it out - to create a new record
       Field1: YourField1Contents
       Field2: YourField2Contents
   }
)

See if it helps @PowerApps11 

poweractivate
Most Valuable Professional
Most Valuable Professional

@PowerApps11 

 

Example

 

Instead of

 

Patch(
        TaskLS,
        If(gblRecordState,
           Defaults(TaskLS),
           gblTaskLS),
        {
            Title: DataCardValue7.Text,
            Due: DataCardValue4.SelectedDate,
            TransType: DataCardValue12.Selected.Value,
            Notes:DataCardValue13.Text
        }
    ));

 

Write it like this instead

 

Patch
(
     TaskLS,
     {
         ID:If(gblRecordState,Blank(),gblTaskLS.ID),
         Title: DataCardValue7.Text,
         Due: DataCardValue4.SelectedDate,
         TransType: DataCardValue12.Selected.Value,
         Notes:DataCardValue13.Text
     }
)

 

If the above has any issue, it may not like when you try to Patch in Blank() values, check if turning on the formula-level error management setting helps with this?

 

1. Click Settings

2. Click Upcoming Features

3. Toggle the Formula-level error management setting to On

Then just close the modal, see if it works.

 

poweractivate_0-1664838760107.png

 

The idea of putting the If statement inside the ID value is so that you don't have to use Defaults, and don't have to re-declare the entire record. When the ID is Blank, a new record is created anyway, using what you already provided, whereas if the ID is not blank, what you provided will be used to modify the existing record with the primary key given (ID). In SharePoint List, the ID column is the primary key column, so use the ID to identify a record uniquely for Patch.

 

Try to use this above guideline in rewriting your other parts of the formula.

See if it helps @PowerApps11 

poweractivate
Most Valuable Professional
Most Valuable Professional

@PowerApps11 

 

For these 

 

Patch(
        NotesTaskLS,
        Defaults(NotesTaskLS),
        {
            Title: gblTaskLS.Title,
            Due: gblTaskLS.Due,
            TransType: DataCardValue12.Selected.Value,
            Notes: gblTaskLS.Notes
        }
    ));
Patch(
        IssuesTaskLS,
        Defaults(IssuesTaskLS),
        {
            Title: gblTaskLS.Title,
            Due: gblTaskLS.Due,
            TransType: DataCardValue12.Selected.Value,
            IssueType: DataCardValue13.Selected.Value,
            Notes: gblTaskLS.Notes
        }
    ));

 

Rewrite these as 

 

Patch(
        NotesTaskLS,
        {
            Title: gblTaskLS.Title,
            Due: gblTaskLS.Due,
            TransType: DataCardValue12.Selected.Value,
            Notes: gblTaskLS.Notes
        }
    ));
Patch(
        IssuesTaskLS,
        {
            Title: gblTaskLS.Title,
            Due: gblTaskLS.Due,
            TransType: DataCardValue12.Selected.Value,
            IssueType: DataCardValue13.Selected.Value,
            Notes: gblTaskLS.Notes
        }
    ));
poweractivate
Most Valuable Professional
Most Valuable Professional

@PowerApps11 If you still have slowdown after applying the above, I suspect it may be how you have done the app in general. For example, that fact that you set gblTaskLS and have the Patch functions inside may be indicative that you're doing it in a way that could be causing slowdowns. You could try and not use the variable at all and see if it helps. This may be difficult to do since you may be depending on the result of this variable currently.

 

If the above changes to Patch do not work, try eliminating your use of the Set function and eliminate the use of the variable entirely to see if something you're doing with the variable is causing a slowdown. It may be difficult for you to do this because it depends what you're trying to accomplish exactly. 

 

For example, if it's as simple as Patching directly from the datacards again directly to each List, try doing exactly that and don't use the variable at all.

 

//elsehwere in your app, have gblRecord just be the specific TaskLS record you want to change, or set it to Blank() if it should not be set at that moment.
Patch
(
        TaskLS,
        {
            ID: If(!IsBlank(gblRecord),gblRecord.ID,Blank())
            Title: DataCardValue7.Text,
            Due: DataCardValue4.SelectedDate,
            TransType: DataCardValue12.Selected.Value,
            Notes:DataCardValue13.Text
        }
    
);
If
(
    !IsBlank(gblRecord)
   ,Patch
   (
        NotesTaskLS,
        {
            Title: gblRecord.Title,
            Due: gblRecord.Due,
            TransType: DataCardValue12.Selected.Value,
            Notes: gblRecord.Notes
        }
    
   );
   Patch
   (
        IssuesTaskLS,
        {
            Title: gblRecord.Title,
            Due: gblRecord.Due,
            TransType: DataCardValue12.Selected.Value,
            IssueType: DataCardValue13.Selected.Value,
            Notes: gblRecord.Notes
        }
   )
)

 

See if this might help as well. The above version eliminates 2 unnecessary patch calls for new records

 

or try this version if you need to create everything even when it's a new Record - just reference the data cards yet again, it might be better that way:

 

//elsehwere in your app, have gblRecord just be the specific TaskLS record you want to change, or set it to Blank() if it should not be set at that moment.
Patch
(
        TaskLS,
        {
            ID: If(!IsBlank(gblRecord),gblRecord.ID,Blank())
            Title: DataCardValue7.Text,
            Due: DataCardValue4.SelectedDate,
            TransType: DataCardValue12.Selected.Value,
            Notes:DataCardValue13.Text
        }
    
);

Patch
(
        NotesTaskLS,
        {
            Title: DataCardValue7.Text,
            Due: DataCardValue4.SelectedDate,
            TransType: DataCardValue12.Selected.Value,
            Notes: DataCardValue13.Text
        }
    
);
Patch
(
        IssuesTaskLS,
        {
            Title: DataCardValue7.Text,
            Due: DataCardValue4.SelectedDate,
            TransType: DataCardValue12.Selected.Value,
            IssueType: DataCardValue13.Selected.Value, //???
            Notes: DataCardValue13.Text
        }
   )
)

 

In the above version, it raises some questions:

1. Why do you need to duplicate values across so many lists?

2. IssueType for IssuesTaskLS says DataCardValue13.Selected.Value which was in your original formula as well, but earlier in the same Patch sequence it was DataCardValue13.Text - why is that? The form can only be one or the other for DataCardValue13, right? So there may be an actual error there or the possibility for there to be one.

 

I think the duplication of the data across many Lists, especially with all Lists you provided appearing to have essentially almost identical schema and receiving almost identical data may be a sign that you should model the data differently on the SharePoint List side. If you need to duplicate everything so much, then you may be using Patch calls to multiple Lists unnecessarily, causing the slowdown also unnecessarily.  If that's the case then for what you need to do differently, that really depends what you actually want to do.

I am not sure the purpose of your given Lists TaskLS, NotesTaskLS, and IssuesTaskLS - they seem like duplicates of the same thing from the Patch formulas you provided, so I don't understand their purpose at all in the first place just from what you provided.

Just based on just what you provided I'd just remove all the other Lists and use just TaskLS, and then not Patch to any other List to make less Patch calls since I don't see a purpose for those Lists based on what you provided.

However, maybe those other Lists you are using do have a purpose - perhaps they have other columns that are important to you as well.

If so, then you might need to provide detail on a high level what exactly do you want to do?

 

I'd recommend modeling something like this

Instead of duplicating all the fields again, keep an ID of which TaskLS it is. Wait - you don't have to - it already has an ID out of the box!

Instead of duplicating the same columns and data in NotesTaskLS and IssuesTaskLS, just have one column called TaskLSID - or TaskID - or something like that - inside both Lists, and in it you can patch the ID of the TaskLS which contains the other information you need. Then you can always lookup the ID of the TaskLS even directly from NotesTaskLS and IssuesTaskLS.

 

However, this only makes sense if NotesTaskLS and IssuesTaskLS actually have any other columns at all to begin with besides the ones in TaskLS.

 

If NotesTaskLS and IssuesTaskLS really had no other columns, besides the same ones in TaskLS that you are trying to duplicate all the time in your Patch formulas to NotesTaskLS and IssuesTaskLS  as you gave them - then just delete these Lists altogether and don't bother patching to them, only patch to TaskLS then!

 

Similarly, you could just move all columns from NotesTaskLS and IssuesTaskLS  directly to TaskLS then remove both Lists NotesTaskLS and IssuesTaskLS

 

 

By the way, I wasn't sure if you were going to have more than one NotesTaskLS per TaskLS Record and more than one IssuesTaskLS per TaskLS Record.

 

If so, then these Patch statements don't look right at all, and the data model of your SharePoint Lists also does not look correct currently.

 

If you were trying to really do that (i.e. have one or more NotesTaskLS Records associated with a single TaskLS Record) you'll need to do something like what I was saying where you have a column called TaskID, so NotesTaskLS might have a TaskID column for example. So now zero, one, or more than one NotesTaskLS Records may have a TaskID that is the same across multiple  NotesTaskLS Records. So from any one NotesTaskLS you can always look up which specific TaskLS Record it is associated with using

 

LookUp(TaskLS,ID=myCurrentNoteRecord.TaskID)

 

If not associated with any Record, this above LookUp returns Blank(). If it is associated with a record, it always returns exactly one Record.

 

To get all the multiple NotesTaskLS attached to a particular TaskLS you can do this then: 

 

Filter(NotesTaskLS,TaskID=myCurrentTaskRecord.ID)

 

to get a Table of associated NotesTaskLS by the TaskLS Record's ID. 

When there are no matches, the Table should be Empty

 

And when you Patch to NotesTaskLS you should remember on new record creation to specify for TaskID column which Task it is (i.e. specify which record of TaskLS it is by its ID), so that later you can LookUp a Task from a Note, or use Filter to get all the Notes attached to a single Task.

 

See if it helps @PowerApps11 

Hi @poweractivate 
Thank you for you clear information , you right some of the patch statements was just copy not the actual the one using, wanted to know why taking time for the patching, put it looks as you said no need to use defaults that helped the speed also below helped me thank you so much.

ID: If(gblRecordState,Blank(),gblTaskLS.ID)

For sure you made me understand how to use patch correctly.
@poweractivate  in the come days will create new thread asking the best way to use ForAll and how to add ForAll a variable to reuse it like get all ID's just patched ForAll and attached them on to another list like notes.

Do you mind if I tag you?

 

poweractivate
Most Valuable Professional
Most Valuable Professional


@PowerApps11 wrote:

Hi @poweractivate 
ForAll and how to add ForAll a variable to reuse it like get all ID's just patched ForAll and attached them on to another list like notes.

Do you mind if I tag you?

 


You may tag me.

If you do not use the output table of ForAll, try not to use it at all.

Try not to use ForAll as a for loop.

In general use ForAll inside Patch,    do not use ForAll outside of Patch,

In general use Patch outside ForAll,  do not use Patch inside ForAll

it's better to Patch just once on a whole Table,

than patch multiple times inside a ForAll whose outer table is never being used.

 

You may give a specific example if you want of your use of ForAll so I can check it, the above advice may be hard to apply sometimes.

 

Here is a general advice I have for using Patch outside ForAll:

//usually bad
ForAll
(
   Patch
   (
      //BAD
   )
)

//usually good
Patch
(
   ForAll
   (
      //GOOD
   )
)

 

@poweractivate 
Yes I use 

Patch
(
   ForAll
   (
      //GOOD
   )
)

But hard to find how can I add variable inside the ForAll so I can reuse it and get the id's just just patched ForAll
for example my case 

Patch
NotesTaskLS,
ForAll(galMulti.AllItems,
        {
            Title: DataCardValue7.Text,
            Due: DataCardValue4.SelectedDate,
            TransType: DataCardValue12.Selected.Value,
            Notes: DataCardValue13.Text
        }
    
);
Patch
(
        IssuesTaskLS,
        {
            Title: DataCardValue7.Text,
            Due: DataCardValue4.SelectedDate,
            TransType: DataCardValue12.Selected.Value,
            IssueType: DataCardValue13.Selected.Value,
            TaskLSID: xxxxx.ID // i want the id of the NotesTaskLS
            Notes: DataCardValue13.Text
        }
   )
)

Is that looks right for you? or I need to do differently please?

Helpful resources

Announcements

Celebrating the May Super User of the Month: Laurens Martens

  @LaurensM  is an exceptional contributor to the Power Platform Community. Super Users like Laurens inspire others through their example, encouragement, and active participation. We are excited to celebrated Laurens as our Super User of the Month for May 2024.   Consistent Engagement:  He consistently engages with the community by answering forum questions, sharing insights, and providing solutions. Laurens dedication helps other users find answers and overcome challenges.   Community Expertise: As a Super User, Laurens plays a crucial role in maintaining a knowledge sharing environment. Always ensuring a positive experience for everyone.   Leadership: He shares valuable insights on community growth, engagement, and future trends. Their contributions help shape the Power Platform Community.   Congratulations, Laurens Martens, for your outstanding work! Keep inspiring others and making a difference in the community!   Keep up the fantastic work!        

Check out the Copilot Studio Cookbook today!

We are excited to announce our new Copilot Cookbook Gallery in the Copilot Studio Community. We can't wait for you to share your expertise and your experience!    Join us for an amazing opportunity where you'll be one of the first to contribute to the Copilot Cookbook—your ultimate guide to mastering Microsoft Copilot. Whether you're seeking inspiration or grappling with a challenge while crafting apps, you probably already know that Copilot Cookbook is your reliable assistant, offering a wealth of tips and tricks at your fingertips--and we want you to add your expertise. What can you "cook" up?   Click this link to get started: https://aka.ms/CS_Copilot_Cookbook_Gallery   Don't miss out on this exclusive opportunity to be one of the first in the Community to share your app creation journey with Copilot. We'll be announcing a Cookbook Challenge very soon and want to make sure you one of the first "cooks" in the kitchen.   Don't miss your moment--start submitting in the Copilot Cookbook Gallery today!     Thank you,  Engagement Team

Announcing Power Apps Copilot Cookbook Gallery

We are excited to share that the all-new Copilot Cookbook Gallery for Power Apps is now available in the Power Apps Community, full of tips and tricks on how to best use Microsoft Copilot as you develop and create in Power Apps. The new Copilot Cookbook is your go-to resource when you need inspiration--or when you're stuck--and aren't sure how to best partner with Copilot while creating apps.   Whether you're looking for the best prompts or just want to know about responsible AI use, visit Copilot Cookbook for regular updates you can rely on--while also serving up some of your greatest tips and tricks for the Community. Check Out the new Copilot Cookbook for Power Apps today: Copilot Cookbook - Power Platform Community.  We can't wait to see what you "cook" up!      

Tuesday Tip | How to Report Spam in Our Community

It's time for another 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!   Today's Tip: How to Report Spam in Our Community We strive to maintain a professional and helpful community, and part of that effort involves keeping our platform free of spam. If you encounter a post that you believe is spam, please follow these steps to report it: Locate the Post: Find the post in question within the community.Kebab Menu: Click on the "Kebab" menu | 3 Dots, on the top right of the post.Report Inappropriate Content: Select "Report Inappropriate Content" from the menu.Submit Report: Fill out any necessary details on the form and submit your report.   Our community team will review the report and take appropriate action to ensure our community remains a valuable resource for everyone.   Thank you for helping us keep the community clean and useful!

Community Roundup: A Look Back at Our Last 10 Tuesday Tips

As we continue to grow and learn together, it's important to reflect on the valuable insights we've shared. For today's #TuesdayTip, we're excited to take a moment to look back at the last 10 tips we've shared in case you missed any or want to revisit them. Thanks for your incredible support for this series--we're so glad it was able to help so many of you navigate your community experience!   Getting Started in the Community An overview of everything you need to know about navigating the community on one page!  Community Links: ○ Power Apps ○ Power Automate  ○ Power Pages  ○ Copilot Studio    Community Ranks and YOU Have you ever wondered how your fellow community members ascend the ranks within our community? We explain everything about ranks and how to achieve points so you can climb up in the rankings! Community Links: ○ Power Apps ○ Power Automate  ○ Power Pages  ○ Copilot Studio    Powering Up Your Community Profile Your Community User Profile is how the Community knows you--so it's essential that it works the way you need it to! From changing your username to updating contact information, this Knowledge Base Article is your best resource for powering up your profile. Community Links: ○ Power Apps ○ Power Automate  ○ Power Pages  ○ Copilot Studio    Community Blogs--A Great Place to Start There's so much you'll discover in the Community Blogs, and we hope you'll check them out today!  Community Links: ○ Power Apps ○ Power Automate  ○ Power Pages  ○ Copilot Studio    Unlocking Community Achievements and Earning Badges Across the Communities, you'll see badges on users profile that recognize and reward their engagement and contributions. Check out some details on Community badges--and find out more in the detailed link at the end of the article! Community Links: ○ Power Apps  ○ Power Automate  ○ Power Pages  ○ Copilot Studio    Blogging in the Community Interested in blogging? Everything you need to know on writing blogs in our four communities! Get started blogging across the Power Platform communities today! Community Links: ○ Power Apps  ○ Power Automate  ○ Power Pages  ○ Copilot Studio   Subscriptions & Notifications We don't want you to miss a thing in the community! Read all about how to subscribe to sections of our forums and how to setup your notifications! Community Links: ○ Power Apps  ○ Power Automate  ○ Power Pages  ○ Copilot Studio   Getting Started with Private Messages & Macros 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! Community Links: ○ Power Apps  ○ Power Automate  ○ Power Pages  ○ Copilot Studio   Community User Groups Learn everything about being part of, starting, or leading a User Group in the Power Platform Community. Community Links: ○ Power Apps  ○ Power Automate  ○ Power Pages  ○ Copilot Studio   Update Your Community Profile Today! Keep your community profile up to date which is essential for staying connected and engaged with the community. Community Links: ○ Power Apps  ○ Power Automate  ○ Power Pages  ○ Copilot Studio   Thank you for being an integral part of our journey.   Here's to many more Tuesday Tips as we pave the way for a brighter, more connected future! As always, watch the News & Announcements for the next set of tips, coming soon!

Hear what's next for the Power Up Program

Hear from Principal Program Manager, Dimpi Gandhi, to discover the latest enhancements to the Microsoft #PowerUpProgram, including a new accelerated video-based curriculum crafted with the expertise of Microsoft MVPs, Rory Neary and Charlie Phipps-Bennett. If you’d like to hear what’s coming next, click the link below to sign up today! https://aka.ms/PowerUp  

Top Solution Authors
Top Kudoed Authors
Users online (3,139)