Skip to main content
Power Automate
    • Connectors
    • Templates
    • Take a guided tour
    • Digital process automation
    • Robotic process automation
    • Business process automation
    • Process Mining
    • AI Builder
  • Pricing
  • Partners
    • Blog
    • Documentation
    • Roadmap
    • Self-paced learning
    • Webinar
    • Business process and workflow automation topics
    • Overview
    • Issues
    • Give feedback
    • Overview
    • Forums
    • Galleries
    • Submit ideas
    • User groups
    • Register
    • ·
    • Sign in
    • ·
    • Help
    Go To
    • Microsoft Power Automate Community
    • Welcome to the Community!
    • News & Announcements
    • Get Help with Power Automate
    • General Power Automate Discussion
    • Using Connectors
    • Building Flows
    • Using Flows
    • Power Automate Desktop
    • Process Mining
    • AI Builder
    • Power Automate Mobile App
    • Translation Quality Feedback
    • Connector Development
    • Power Platform Integration - Better Together!
    • Power Platform Integrations
    • Power Platform and Dynamics 365 Integrations
    • Galleries
    • Community Connections & How-To Videos
    • Webinars and Video Gallery
    • Power Automate Cookbook
    • Events
    • 2021 MSBizAppsSummit Gallery
    • 2020 MSBizAppsSummit Gallery
    • 2019 MSBizAppsSummit Gallery
    • Community Engagement
    • Community AMA
    • Community Blog
    • Power Automate Community Blog
    • Community Support
    • Community Accounts & Registration
    • Using the Community
    • Community Feedback
    cancel
    Turn on suggestions
    Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
    Showing results for 
    Search instead for 
    Did you mean: 
    • Microsoft Power Automate Community
    • Galleries
    • Power Automate Cookbook
    • Re: Batch Update SharePoint List With External Dat...

    Re: Batch Update SharePoint List With External Data

    12-27-2022 23:16 PM

    Super User takolota
    Super User
    599 Views
    LinkedIn LinkedIn Facebook Facebook Twitter Twitter
    takolota
    Super User takolota
    Super User
    • Mark as New
    • Bookmark
    • Subscribe
    • Mute
    • Subscribe to RSS Feed
    • Permalink
    • Print
    • Report Inappropriate Content

    Batch Update, Create, and Upsert SharePoint Lists

    ‎11-27-2021 04:55 PM

    SharePoint Upsert Thumbnail.jpg
    SharePoint Batch Update, Create, & Upsert Template

    (Also an option for full dataset synchronizations with the "Full Sync" template below) 


    Compared to the using the basic Apply to Each, Get items, & Update item approach on large amounts of data, this method requires a small fraction of the API calls towards the daily action limit and drastically reduces flow run-times.


    It's currently set to take data from any Excel sheet and update records in SharePoint with corresponding data. It works with any potential Power Automate data-source, including HTTP API GET requests, but Excel provides a simple example.

    Part of it works like a Vlookup function where it identifies if a row of updated data in Excel or another datasource matches another SharePoint key column and gets the SharePoint record ID for that match. Then it uses the batch update method to update those SharePoint records and it uses the batch create method to create new items for any records without a match.

     

    David Wyatt's Flow Optimization Post For Loading SharePoint Records: https://www.linkedin.com/pulse/top-5-ways-optimize-your-flows-david-wyatt/?trackingId=X9bMmnTZ2QBuu4...

     

    Microsoft Batch API Documentation: https://learn.microsoft.com/en-us/sharepoint/dev/sp-add-ins/make-batch-requests-with-the-rest-apis

     

    TachyTelic.Net Blog & Videos
    SharePoint Batch Create Flow
    Blog: https://www.tachytelic.net/2021/06/power-automate-flow-batch-create-sharepoint-list-items/ 
    Video: https://youtu.be/2dV7fI4GUYU

    SharePoint Batch Delete Flow
    Blog: https://www.tachytelic.net/2021/06/power-automate-delete-sharepoint-items/ 
    Video: https://www.youtube.com/watch?v=2ImkuGpEeoo

     

     

    Version 2.7 - Upsert

    -Includes a batch create segment to create an upsert capability. If anyone wants to only update records, then they can remove the Batch Create section. If anyone wants to only create records, then they can go to the GenerateSPData action, remove the expression for the ID field and insert the null value expression.

    -Further simplifies the set-up, removing the need to add any additional SharePoint Get items actions & removing the need for parallel branches.
    -Can now work on lists with a few million items without adding more actions or branches. It also implements a faster load method using the SharePoint HTTP action as described in point 5 of this article.
    -The batch loops have been changed from Do until loops to chunking into Apply to each loops so the batch actions can now run concurrently for additional speed. If you have many batches of data you want to process faster, you can try increasing the concurrency settings on the Apply to each loops containing the SendBatch actions.
    -The "setting" inputs action was moved to the top of the flow to help accommodate the new streamlined set-up.

    -A SP HTTP call now automatically fixes some issues with referencing the correct list name.

    -Faster list load time.

    -If you need to batch create &/or update hyperlink columns, check this post

    -Adds another HTTP call to get the site users into an object indexed/reference-able by email addresses & gives an example of how to use that to batch update a person column. Anytime the updated source dataset has a blank or an email value not found in the top 5000 site users, it will replace any person in that item with a null value.

     

    Updated set-up screenshots & instructions in this post: https://powerusers.microsoft.com/t5/Power-Automate-Cookbook/Batch-Update-SharePoint-List/m-p/2225500... 

     

    Full Sync V1.1 (Combined Upsert & Batch Deletion Sync)

    The SharePoint Batch Full Sync template pulls in all the SP List & Source data to perform a batch upsert. But then it also adds on a Batch Deletion Sync to find & delete all the records in the SP List that are not in the Source dataset.

    Now, this is initially set up to pull in all the datasource records for all batch actions in the same Do until Get source data loop. And that piece will be limited by the 100MB maximum message / variable size limits for Power Automate, so this Full Sync version will initially only work with datasources with a 100MB or less total size. But this is really only because I'm trying to keep the flow simpler for the majority of users who likely will not have datasources of many 100s of thousands of records.
    If you want to further push out against this 100MB limitation, then you will need to separate out the source get data for the batch upsert section from another source get data for the batch deletion sync section. So for the batch upsert section you can use a set-up like in the main batch upsert template where it loads records with all columns 100,000 at a time (or 100 or 5000 or whatever your source dataset per load limitations are) and runs the batch upsert on each source load before running the Do until loop again to get the next source load (which avoids holding anywhere near 100MB in memory at once because it is performing things one load at a time). Then the batch deletion sync section can use a different source get data set-up similar to the "Do until Get destination list IDs + keys" section of the templates where each loop can pull a load from the source dataset & then use a Select action to select only a few of the columns to pass on to the variable holding everything in memory. Since deletions only require the primary key values, you can set the Select to only get the primary key column from each source data load & pass that onto the "Source data outputs" / variable. A full listing of all the primary key values in your source dataset will be much smaller than all columns for the entire table, so that 100MB limit should then hold a few million records worth of the required primary key data to run the batch deletion sync process.

     

    Self Update (See the 1st comment below the main post for the zip download)

    The SharePoint Self Batch Update assumes you just want to perform simple updates using only the existing data in the list and removes all the actions related to comparing two datasets to find updates. This may be much easier to use if you just want to quickly do something simple like get all the items created in the past month and mark them all with a Complete status.
    But you will be limited to using just the data already in the list and any values you can manually input into the flow.

     

    Version 1.5 - Update

    This version makes it easier to handle cases where the list name may have changed since its creation and moves a few of the primary key column matching inputs to the 'settings' compose action so users don't have to look through & edit the more complicated expressions to set up the flow.

     

    The flow can easily expand to any size of SharePoint list by adding more Get items actions and batch update parallel branches. If speed is a concern for anyone, there are ways to make the Get items actions all load in parallel too (up to 50 branches). It's really only limited by how much effort people want to put into their flows & lists.

     

    Google Drive Link to Flow Zip Files: https://drive.google.com/file/d/10p7EB730xsEj-azVYuTIuu8dS0w-AflR/view?usp=sharing 

    Google Drive Link to Text File to a Scope Action Containing The Flow: https://drive.google.com/file/d/1BVGoeM5mykYlMobAyFkhuLRh3r7jMSLz/view?usp=sharing

     

     

    Version 1 - Update

    Version 1 Explanation Video: https://youtu.be/l0NuYtXdcrQ 

     

    Download The Template Batch Update Flow

    Google Drive Link to Flow Zip Files: https://drive.google.com/file/d/10gFkycdx6zpRfrI-s_jCDwIK6dpyyDqk/view?usp=sharing

    Google Drive Link to Text File to a Scope Action Containing The Flow: https://drive.google.com/file/d/1e6-INUykIT22ppVh5m4kxz8us_7qXy7q/view?usp=sharing


    Formulas For Random Number Columns
    SharePoint Rand1To50 Column Calculated Default Value Formula:
    =INT(INT(RIGHT(NOW(),2))/2)

    Excel Random Column Formula:
    =ROUNDDOWN(((Rand()*100)+1)/2, 0)

     

    watch?v=QCkjQy6sHZg

    SharePoint_Batch_Update_V1.5.zip
    SharePoint_Batch_Upsert_V2.7.zip
    SharePoint_Batch_Full_Sync_V1.1.zip
    Labels:
    • Labels:
    • Button flows
    • Scheduled flows
    • Solutions
    Message 1 of 236
    32,971 Views
    14 Kudos
    Reply
    • All forum topics
    • Next Topic
    • « Previous
      • 1
      • 2
      • 3
      • 4
      • 5
      • …
      • 24
    • Next »
    roverton
    roverton
    Frequent Visitor
    • Mark as New
    • Bookmark
    • Subscribe
    • Mute
    • Subscribe to RSS Feed
    • Permalink
    • Print
    • Report Inappropriate Content

    ‎11-18-2022 02:52 PM

    No errors, just the 204 no content on the results

     

    roverton_0-1668811869448.pngroverton_1-1668811948059.png

    roverton_2-1668812010824.pngroverton_3-1668812061643.png

     

     

    Message 31 of 236
    739 Views
    0 Kudos
    Reply
    takolota
    Super User takolota
    Super User
    In response to roverton
    • Mark as New
    • Bookmark
    • Subscribe
    • Mute
    • Subscribe to RSS Feed
    • Permalink
    • Print
    • Report Inappropriate Content

    ‎11-18-2022 02:59 PM

    @roverton 

    Thanks, can you show what the inputs are for the SendBatch action in the run?

    Message 32 of 236
    736 Views
    0 Kudos
    Reply
    roverton
    roverton
    Frequent Visitor
    In response to takolota
    • Mark as New
    • Bookmark
    • Subscribe
    • Mute
    • Subscribe to RSS Feed
    • Permalink
    • Print
    • Report Inappropriate Content

    ‎11-21-2022 06:28 AM

    I did not change it from what you had

     

    roverton_0-1669040923927.png

     

    Message 33 of 236
    727 Views
    0 Kudos
    Reply
    takolota
    Super User takolota
    Super User
    • Mark as New
    • Bookmark
    • Subscribe
    • Mute
    • Subscribe to RSS Feed
    • Permalink
    • Print
    • Report Inappropriate Content

    ‎11-21-2022 06:40 AM

    @roverton 

     

    No that’s the edit menu / action logic, when the flow runs what does the input or data look like going into the SendBatch action?

    Message 34 of 236
    725 Views
    0 Kudos
    Reply
    roverton
    roverton
    Frequent Visitor
    In response to takolota
    • Mark as New
    • Bookmark
    • Subscribe
    • Mute
    • Subscribe to RSS Feed
    • Permalink
    • Print
    • Report Inappropriate Content

    ‎11-21-2022 06:43 AM

    Here go

     

    roverton_0-1669041781439.png

     

    Message 35 of 236
    720 Views
    0 Kudos
    Reply
    roverton
    roverton
    Frequent Visitor
    In response to takolota
    • Mark as New
    • Bookmark
    • Subscribe
    • Mute
    • Subscribe to RSS Feed
    • Permalink
    • Print
    • Report Inappropriate Content

    ‎11-21-2022 06:59 AM

    I checked to see if the values were changing while getting the 204 no content error and to my surprise the field values are updating.

    Message 36 of 236
    710 Views
    0 Kudos
    Reply
    takolota
    Super User takolota
    Super User
    In response to roverton
    • Mark as New
    • Bookmark
    • Subscribe
    • Mute
    • Subscribe to RSS Feed
    • Permalink
    • Print
    • Report Inappropriate Content

    ‎11-21-2022 07:01 AM

    @roverton 

     

    Alright I see the body of the requests contains some kind of data, so it’s not sending a blank request.

     

    And reading into the HTTP status codes, it says a 204 response is a successful response, but the system doesn’t need to send any response back to the call / flow for it.

    Is the data successfully updated when you run this?

     

    Alternatively, some of these documents mention this may happen if someone is simultaneously editing the data. Does any user or program have the list up in edit mode or something while you run this?

     

    https://restfulapi.net/http-status-204-no-content/

    https://www.webfx.com/web-development/glossary/http-status-codes/what-is-a-204-status-code/

    https://blog.ploeh.dk/2013/04/30/rest-lesson-learned-avoid-204-responses/

    Message 37 of 236
    707 Views
    0 Kudos
    Reply
    roverton
    roverton
    Frequent Visitor
    In response to takolota
    • Mark as New
    • Bookmark
    • Subscribe
    • Mute
    • Subscribe to RSS Feed
    • Permalink
    • Print
    • Report Inappropriate Content

    ‎11-21-2022 07:06 AM

    I am the only one working on this. Yes, surprisingly the data is being updated. However the status code is states the 204 no content. 

    Message 38 of 236
    704 Views
    0 Kudos
    Reply
    rbn_nue
    rbn_nue Post Patron
    Post Patron
    • Mark as New
    • Bookmark
    • Subscribe
    • Mute
    • Subscribe to RSS Feed
    • Permalink
    • Print
    • Report Inappropriate Content

    ‎12-27-2022 10:50 PM

    Hi @takolota ,

     

    Great article. I was able to use this in one of my flows and it works fine. Is there anyway we can use the batch query to update person or group column in SPO?

     

    Thank you.

    Message 39 of 236
    605 Views
    0 Kudos
    Reply
    takolota
    Super User takolota
    Super User
    In response to rbn_nue
    • Mark as New
    • Bookmark
    • Subscribe
    • Mute
    • Subscribe to RSS Feed
    • Permalink
    • Print
    • Report Inappropriate Content

    ‎12-27-2022 11:16 PM


    If something like this can pull all the potential users, then it may be possible to create something similar to the item Id value lookup for the person Ids

    https://pankajsurti.com/2020/10/12/how-to-update-people-field-using-send-an-http-request-to-sharepoi...

    Message 40 of 236
    599 Views
    1 Kudo
    Reply
    • « Previous
      • 1
      • 2
      • 3
      • 4
      • 5
      • …
      • 24
    • Next »

    Power Platform

    • Overview
    • Power BI
    • Power Apps
    • Power Pages
    • Power Automate
    • Power Virtual Agents

    • Sign up free
    • Sign in

    Browse

    • Templates
    • Connectors
    • Partners

    Downloads

    • Mobile
    • Gateway

    Learn

    • Documentation
    • Learn
    • Support
    • Community
    • Give feedback
    • Blog
    • Pricing

    • © 2023 Microsoft
    • Contact us
    • Trademarks
    • Privacy & cookies
    • Manage cookies
    • Terms of use
    • Terms & conditions
    Consumer Privacy Act (CCPA) Opt-Out Icon Your Privacy Choices