web
You’re offline. This is a read only version of the page.
close
Skip to main content
Community site session details

Community site session details

Session Id :
Power Pages - Power Apps Portals
Unanswered

Get AD-users from other lists with power Automate

(0) ShareShare
ReportReport
Posted on by

Hi everyone,

 

I’m building a small task management setup using Microsoft Lists and Power Automate.

  • In my main list (“Task Manager”), I assign tasks either to a single person or to a team.

  • There’s a Yes/No column (Individual Assignment) to control that logic.

  • When Yes, the flow sends an email to the selected person (works perfectly).

  • When No, the flow should find the corresponding team from another list (“Responsibilities”) and update the Assigned To field with all team members from that list’s Person column.

The problem:

When the flow tries to copy those users into the Assigned To field, it fails with

“User value is invalid (400)”.
It looks like Power Automate doesn’t accept the Person objects pulled from one list to populate another — even though both columns are “Person or Group” types.

What I’ve tried:

  • Using Claims and Email properties from the Person objects.

  • Building an array of claims manually:

    {"Claims": "i:0#.f|membership|user@domain.com"}
  • Using Select/Join to combine emails.

  • Rebuilding the flow in the new designer.

Nothing seems to fix the error unless I manually select the users in the destination list.

What I need help with:

  • Correct way to transfer a Person/Group field between two SharePoint lists in Power Automate.

  • Is this a known limitation when working with lists outside a full SharePoint site (e.g., personal lists)?

  • Any working example or expression that handles this correctly?

 

Thanks in advance for any guidance or examples!

Categories:
I have the same question (0)
  • Suggested answer
    Jerry-IN Profile Picture
    267 on at
    Get AD-users from other lists with power Automate
     
    The "User value is invalid (400)" error when updating SharePoint's multi-person "Assigned To" field with users from another list's Person column in Power Automate occurs because the dynamic Person objects aren't directly compatible between lists—Power Automate expects a Claims array in SharePoint's specific format (`[{"Claims": "i:0#.f|membership|user@domain.com"}]`) for multi-selection, and raw objects from "Get items" lack full resolution or claims IDs. This is a known limitation when lists are in different sites/tenants or personal lists (cross-context resolution fails); use the Office 365 Users connector to re-resolve users by email/UPN into proper Claims format. Here's the fix using array construction:
     
    Step-by-Step Flow Setup
    1. Trigger: "When an item is created or modified" on Task Manager list > Get "Individual Assignment" (Yes/No).
    2. Condition: If Yes, email single assignee (your working branch).
       - No: "Get items" from Responsibilities list > Filter by team match (e.g., OData: Team eq 'selected-team').
    3. Resolve Users to Claims (Key Step):
       - Inside Apply to each (for Responsibilities items):
         - Compose - Person Emails: `items('Apply_to_each')?['PersonColumn/Email']` (extract emails array).
         - Select: From array: Person Emails output > Map: Email (current item) > This creates email list.
       - Initialize Variable: Array type, Name: "ClaimsArray" (empty start).
       - For each email in Select output (Apply to each - Emails):
         - Get user profile (V2) (Office 365 Users connector) > User (UPN): Current item (email).
         - Compose - Claims Object: 
          
           {
             "Claims": "@{outputs('Get_user_profile_(V2)')?['body/userPrincipalName']}"
           }
           
         - **Append to array variable**: Variable: ClaimsArray > Value: Compose output (adds {"Claims": "user@domain.com"} objects).
       - This builds the required array, resolving users validly.
    4. Update Task Item:
       - Update item (Task Manager list) > ID: Trigger ID > Assigned To: Variable "ClaimsArray" (select "value" dynamic).
       - Advanced: Enable "Switch to input entire array" (icon next to field) for multi-person support.
    5. Error Handling:
       - Add Scope > Try: Above steps > Catch (Configure run after failed): Condition if Get user fails > Log email as invalid > Skip append.
       - Test: Use real emails; if 400 persists, verify users exist in source site's directory (personal lists can't resolve cross-site AD users).
    Notes
    - Limitation: Works within same tenant; for personal/cross-site lists, users must be site members or "Everyone" (use email resolution). Max 100 users per field.
    - Alternative for Bulk: Use HTTP "Send an HTTP request to SharePoint" (Site: Target site) > Method: POST > URI: `/_api/web/lists/getbytitle('Task Manager')/items({ID})/validateupdatelistitem` > Body: `{"formValues":[{"FieldName":"Assigned To","FieldValue":claimsArray}]}` (faster, no 400).
    - Testing: Create sample with 2-3 users from Responsibilities > Run flow > Verify Assigned To shows all (with photos/emails).
     
    This re-resolves to Claims format—test the Select/Append branch first. If helpful, accept the answer.
     
    Best Regards,  
    Jerald Felix
     

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Coming soon: forum hierarchy changes

In our never-ending quest to improve we are simplifying the forum hierarchy…

Chiara Carbone – Community Spotlight

We are honored to recognize Chiara Carbone as our Community Spotlight for November…

Leaderboard > Power Pages

#1
Jerry-IN Profile Picture

Jerry-IN 64

#2
Fubar Profile Picture

Fubar 46 Super User 2025 Season 2

#3
Michael E. Gernaey Profile Picture

Michael E. Gernaey 27 Super User 2025 Season 2

Last 30 days Overall leaderboard