Select to view content in your preferred language

Example Flow - Update a Record in a Feature Layer

127
5
Jump to solution
15 hours ago
AaronPDXPaul
Frequent Contributor

Does anyone have an example of a Flow that uses Update a Record in a Feature Layer?
No customization, just update a value from one field in a Sharepoint List.

The trick, I think, is in the Where Clause.
Getting a unique value in the List to match with a unique value in the Feature Layer.
We've tried many variations of text, numeric and so on, nothing works.

AaronPDXPaul_0-1756305793404.png

 

AaronPDXPaul_2-1756305832391.png

Thank you

 

0 Kudos
1 Solution

Accepted Solutions
VenkataKondepati
Occasional Contributor

Hi @AaronPDXPaul ,

Here’s a clean “no-customization” setup you can copy.  There are two ways: 

A) Simple text key

Prep

  • SharePoint List: add Single line of text column Unique_Field (use your Status if you want).

  • Feature Layer: add Text field Unique_Field (same name), ensure layer editing (Update) is enabled.

Flow (Power Automate)

  1. Trigger: When an item is created or modified (SharePoint).

  2. Action: ArcGIS → Update a record in a feature layer

    • Where clause:

       
      Unique_Field = '@{triggerOutputs()?['body/Unique_Field']}'

      (Strings need single quotes.)

    • Attributes: set fields you want to update, e.g.

       
      Status = @{triggerOutputs()?['body/Status']}
  3. Save → test by editing a SharePoint row whose Unique_Field matches a feature.

Notes

If your key is numeric, drop the quotes:

 
UniqueID = @{triggerOutputs()?['body/UniqueID']}
 
 
B) GlobalID key 

Prep

  • SharePoint List: add GUID column FeatureGlobalID (or Single line of text if you’ll paste GUIDs).

  • Feature Layer: use the built-in GlobalID field (ensure your layer has GlobalIDs enabled).

Flow

  1. Trigger: When an item is created or modified.

  2. Action: ArcGIS → Update a record in a feature layer

    • If your SharePoint GUID has no braces, add them:

       
      GlobalID = '@{concat('{', triggerOutputs()?['body/FeatureGlobalID'], '}')}'
    • If it already includes {}:

       
      GlobalID = '@{triggerOutputs()?['body/FeatureGlobalID']}'
    • Attributes: map fields to update (e.g., Status, LastEditor, etc.).

Tips

  • Don’t use OBJECTID as the key (it’s not stable across operations).

  • Test with one record first. In the Flow run history, check the ArcGIS action’s feature count updated.

  • If multiple features match (they shouldn’t), the action may fail—keys must be unique.

  • For bulk updates later, switch to Update records in a feature layer (batch) with the same WHERE logic.

That’s it. Start with A (text key) to prove the path, then switch to B (GlobalID) for production. If you paste your actual field names, I’ll hand you the exact WHERE line

View solution in original post

5 Replies
VenkataKondepati
Occasional Contributor

Use the ArcGIS Power Automate “Update a record in a feature layer” action and drive it with a WHERE clause that follows ArcGIS REST SQL. Pick one stable key shared between SharePoint and the feature layer (ideally GlobalID). Don’t use OBJECTID.

Flow outline

  1. Trigger: SharePoint “When an item is created/modified”.

  2. Action: ArcGIS → Update a record in a feature layer

    • Where clause examples:

    • String key: parcel_id = '@{triggerOutputs()?['body/ParcelID']}'

    • Numeric key: site_id = @{triggerOutputs()?['body/SiteID']} (no quotes)

    • GlobalID (GUID text in SharePoint): GlobalID = '{@{triggerOutputs()?['body/FeatureGlobalID']}}'

    • Date (if needed): edit_date >= DATE '2025-08-01'

  3. In the action’s Attributes section, set the field(s) to update from SharePoint dynamic content.

Tips

  • Ensure the key field is unique in the feature layer (GlobalID is safest).

  • If your GUID in SharePoint lacks braces, add them in the expression: concat('{', <guid>, '}' ).

  • For strings with quotes, wrap in single quotes; for numbers, no quotes.

  • If you’re updating many rows, use “Update records in a feature layer (batch)” and specify the unique ID field.

If you share your key field names (SharePoint vs feature layer), I’ll hand you the exact WHERE clause and attribute mapping.

AaronPDXPaul
Frequent Contributor

This is awesome.

Rather than dissecting what I did.

Can you give direction on what to set up?
I'm just trying to get the logic to work, no customization.

Like a text field in the list called "Unique_Field"
Mine is really called "Status".

That would match with a Text field in the Feature Layer called "Unique_Field"
Or it can match with GlobalID if that is what works best.
In that case, I'd change the field type in the List to a GUID.

So, I don't have any specific fields needed or criteria to follow.
Just want to see it work for now, then I can redesign.

Thank you

0 Kudos
AkshayHarshe
Esri Contributor

@AaronPDXPaul Looking at your screenshot, are you updating an existing older flow? We updated the `Get data from feature layer action last release and it should include more options with different option names and placeholders, which I don't see. Try deleting and recreating the action. In Get data from feature layer action you can choose to use a `Where` clause but I think syntax should be something like 

ObjectID=1234

Or if you are using dynamic content then:AkshayHarshe_2-1756309729224.png

Here is a simple example. I agree with all the comments made by @VenkataKondepati this is basically what he mentioned in a flow just using OBJECTID which in my case is FID

AkshayHarshe_0-1756309475080.pngAkshayHarshe_1-1756309571138.png

Hope that helps. 

Thanks,
Akshay Harshe
VenkataKondepati
Occasional Contributor

Hi @AaronPDXPaul ,

Here’s a clean “no-customization” setup you can copy.  There are two ways: 

A) Simple text key

Prep

  • SharePoint List: add Single line of text column Unique_Field (use your Status if you want).

  • Feature Layer: add Text field Unique_Field (same name), ensure layer editing (Update) is enabled.

Flow (Power Automate)

  1. Trigger: When an item is created or modified (SharePoint).

  2. Action: ArcGIS → Update a record in a feature layer

    • Where clause:

       
      Unique_Field = '@{triggerOutputs()?['body/Unique_Field']}'

      (Strings need single quotes.)

    • Attributes: set fields you want to update, e.g.

       
      Status = @{triggerOutputs()?['body/Status']}
  3. Save → test by editing a SharePoint row whose Unique_Field matches a feature.

Notes

If your key is numeric, drop the quotes:

 
UniqueID = @{triggerOutputs()?['body/UniqueID']}
 
 
B) GlobalID key 

Prep

  • SharePoint List: add GUID column FeatureGlobalID (or Single line of text if you’ll paste GUIDs).

  • Feature Layer: use the built-in GlobalID field (ensure your layer has GlobalIDs enabled).

Flow

  1. Trigger: When an item is created or modified.

  2. Action: ArcGIS → Update a record in a feature layer

    • If your SharePoint GUID has no braces, add them:

       
      GlobalID = '@{concat('{', triggerOutputs()?['body/FeatureGlobalID'], '}')}'
    • If it already includes {}:

       
      GlobalID = '@{triggerOutputs()?['body/FeatureGlobalID']}'
    • Attributes: map fields to update (e.g., Status, LastEditor, etc.).

Tips

  • Don’t use OBJECTID as the key (it’s not stable across operations).

  • Test with one record first. In the Flow run history, check the ArcGIS action’s feature count updated.

  • If multiple features match (they shouldn’t), the action may fail—keys must be unique.

  • For bulk updates later, switch to Update records in a feature layer (batch) with the same WHERE logic.

That’s it. Start with A (text key) to prove the path, then switch to B (GlobalID) for production. If you paste your actual field names, I’ll hand you the exact WHERE line

AaronPDXPaul
Frequent Contributor

This is fantastic.
Esri support and myself independently followed your steps with success.

Something has changed in connecting the Unique ID's from 2022-23ish.

I have the same issue with all my connectors that used to work,
The logic is correct, no errors, but the List and REST aren't in sync.

I'll create a post for each Flow.

Thank you again,
Aaron

0 Kudos