Power Automate flow updating Dataverse record owner field

How to Display Record Owners in Power Apps Canvas Gallery (Without Trigger Loops)

I recently worked on a project to create a Canvas App that displays all tasks and projects at an organization in a gallery view. One seemingly simple requirement turned into an interesting learning experience: displaying who a record is assigned to.

The Challenge: Accessing the Owner Field

My first instinct was to use ThisItem.Owner in the gallery to display the record owner. However, I quickly discovered there’s no straightforward way to access the Owner field directly in a Canvas App gallery connected to Dataverse.

The Owner field is a polymorphic lookup (meaning it can reference either a User or a Team), and Canvas Apps don’t natively expand this relationship in gallery contexts without additional configuration.

The Initial Solution: Power Automate Flow

After consulting Copilot, I implemented the recommended approach:

  1. Created a new text column called “Assigned To” in my Dataverse table
  2. Built a Power Automate flow with a “When a row is added, modified or deleted” trigger (change type: Added or Modified)
  3. Configured the flow to update the “Assigned To” field with the record owner’s name whenever the record changed

This worked initially, but I soon noticed a critical issue: the flow was stuck in a trigger loop.

The Problem: Infinite Trigger Loops

Because my flow’s trigger was set to “Added or Modified” and the flow itself modified the record (by updating “Assigned To”), it would continuously re-trigger itself — creating an endless loop of flow runs.

Solution 1: Using a Service Account with a Condition

To break the loop, I implemented the following approach:

  1. Created a dedicated service account to run the flow
  2. Added a Condition control at the start of the flow
  3. Configured it to check: “Modified By is not equal to [Service Account]”
  • Yes path: Update the “Assigned To” field
  • No path: Exit gracefully

This worked well and successfully prevented the infinite loop. However, there was a minor inefficiency: the flow would still run twice for each actual modification:

  • Run 1: User modifies record → flow processes and updates “Assigned To”
  • Run 2: Service account modifies record → flow starts, evaluates condition, then exits

While this wasn’t a major issue in my development environment, it could impact costs in enterprise scenarios where organizations pay per flow run.

Power Automate flow updating Dataverse record owner field

Solution 2: Trigger Conditions (Community Feedback)

After sharing my approach on LinkedIn, several Power Platform professionals suggested a more efficient solution: using Trigger Conditions instead of in-flow conditions.

I implemented their recommendation by adding a Trigger Condition to my flow:

@not(equals(triggerOutputs()?['body/_modifiedby_value'], '[ServiceAccountGUID]'))

The result? The flow now skips execution entirely when the service account is the modifier, rather than running and then exiting. This prevents the unnecessary second flow run from consuming resources.

How to Implement Trigger Conditions

Here’s how to set this up in your own flows:

  1. Open your Power Automate flow
  2. Click the three dots (…) on the trigger action
  3. Select Settings
  4. Scroll to Trigger Conditions
  5. Click Add and enter:text
  6. @not(equals(triggerOutputs()?['body/_modifiedby_value'], 'YOUR-SERVICE-ACCOUNT-GUID'))
  7. Replace YOUR-SERVICE-ACCOUNT-GUID with your actual service account’s GUID

To find your service account GUID:

  • Navigate to Power Platform Admin Center → Environments → Your Environment
  • Go to Settings → Users + permissions → Application users
  • Locate your service account and copy the User GUID

Key Takeaways

  • Polymorphic lookups like Owner aren’t directly accessible in Canvas App galleries
  • Power Automate can sync owner information to a text field, but watch out for trigger loops
  • Service accounts combined with trigger conditions provide the cleanest solution
  • Community feedback matters — sharing your solutions can lead to even better approaches
  • In enterprise environments, optimizing flow runs can translate to real cost savings

What’s Next?

This experience reminded me of the value of continuous learning and community engagement in the Power Platform space. If you’re facing similar challenges or have alternative approaches, I’d love to hear from you!

Need help implementing Power Platform solutions? Contact Platform Pulse Solutions

Leave a Comment

Your email address will not be published. Required fields are marked *