Delete Dataverse Records in Batch Web API & Power Automate 2025

By
On:

Delete Dataverse Records in Batch Web API & Power Automate

In many business scenarios, large volumes of outdated, irrelevant, or temporary data accumulate in Dataverse tables (e.g., logs, test data, expired records). Manually deleting these records is time-consuming and error-prone.

Power Automate does not natively support batch deletion of records in a single action. Deleting records one by one using standard connectors can be slow and inefficient, especially for large datasets.

To efficiently delete multiple records from a Microsoft Dataverse table using Power Automate and the Dataverse Web API, in a way that is scalable, secure, and automatable.

  1. Manually trigger a flow
    • This is the starting point of the flow.
    • It requires a user to manually initiate the process, typically by clicking a button in Power Automate.
  2. Initialize variable
    • A variable named ItemCount is created.
    • Its type is set to Integer.
    • It is initialized with the value 1, which can be used later in the flow for counting or logic operations.
  3. Guid
    • This step uses the guid() function to generate a Globally Unique Identifier (GUID).
    • GUIDs are often used to uniquely identify items, such as records or transactions.
Delete Dataverse Records in Batch

4. List rows

  • Source TableEMP-Tests
  • Row Count: 1000
  • This step retrieves up to 1000 rows from the EMP-Tests table.
  • It’s typically used to fetch data that will be processed in subsequent steps.

5. Template (HTTP Batch Delete Request)

  • This step is structured as a batch HTTP request using the OData protocol.
  • It uses a changeset to group multiple operations (in this case, deletions).
  • The key part of the request is:
  • [editLink] is a placeholder that would be dynamically replaced with the actual URL of the row to delete.
  • This is a DELETE operation, meaning it removes the specified row from the data source.
--changeset_@{outputs('Guid')}
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: |ID|

DELETE |editLink| HTTP/1.1
Content-Type: application/json;type=entry

{}
Delete Dataverse Records in Batch

Step 6: Select

This step prepares a list of HTTP DELETE requests for each row retrieved earlier (from a “List rows” step, not shown in this image).

  • From:This generates a range of numbers from 0 to the number of rows retrieved — essentially iterating over each row.
  • Map:This replaces placeholders in a template:
    • editLink is replaced with the actual OData edit link for the row.
    • ID is replaced with a unique identifier (likely for tracking or logging).

This results in a list of formatted HTTP DELETE requests for each row.


🔹 Step 7: Invoke an HTTP request

This step sends a batch HTTP POST request to delete all the rows in one go.

  • URL:/api/data/v9.0/$batch This is the OData batch endpoint used in Microsoft Dataverse.
  • Headers:
  • Body: The body is a multipart message that includes:
    • batch boundary (--batch_Outputs)
    • changeset boundary (--changeset_Outputs)
    • The joined output of the Select step, which contains all the DELETE requests
    • Proper closing of the changeset and batch
Delete Dataverse Records in Batch

🔄 Purpose

To delete multiple rows from a data source (like Microsoft Dataverse or Excel) using a batch HTTP request, which is more efficient than deleting rows one by one.


🧩 Flow Steps Summary

  1. List Rows
    • Retrieves up to 1000 rows from a table (e.g., EMP-Tests).
    • These rows are the targets for deletion.
  2. Select
    • Iterates over each row.
    • Uses a template to generate a DELETE request for each row.
    • Replaces placeholders (editLinkID) with actual values from the row data.
  3. Invoke an HTTP Request
    • Sends a single batch POST request to the OData $batch endpoint.
    • Combines all DELETE requests into a multipart message.
    • Executes all deletions in one network call.

Here’s the visual flowchart of the Power Automate process for batch deleting rows. Let me know if you’d like to add conditions, filters, or logging steps to this flow!

✨ Thanks for reading! ✨

I hope you found this blog on the Microsoft Power Platform helpful! From Power Apps, Power Automate (Cloud & Desktop), Canvas Apps, Model-driven Apps, Power BI, Power Pages, SharePoint, Dynamics 365 (D365), Azure, and more, I cover a wide range of topics to help you harness these powerful tools. Don’t miss out on future tips, tutorials, and insights—hit that subscribe button to get the latest posts right to your inbox. 💌💬 I’d love to hear your thoughts! Drop a comment below with your questions, ideas, or feedback—let’s get the conversation started!🔗 Let’s connect and grow together!


Follow me, Ravindra Jadhav, on your favorite platforms for even more content and updates on Microsoft Power Platform and related technologies:

💼 LinkedIn – Let’s network and share ideas!

💻 GitHub – Explore my projects and code.

🐦 Twitter – Stay updated with quick tips and industry news.

📺 YouTube – Watch tutorials and deep dives on Power PlatformPower AppsPower Automate, and more! Let’s build something amazing together with Power Platform and Azure! 🚀 

  1. Batch Row Deletion Flow Dataverse
  2. Dataverse Batch Delete Automation
  3. Power Automate: Delete 1000 Rows Dataverse
  4. Delete Rows Using HTTP Batch Request of Dataverse
  5. Multi-Row Deletion via Web API Dataverse & Power Automate
  6. Automated Flow for Batch Deletion of Records Dataverse Table by Power Automate and Web APIs
  7. Power Automate Process to Retrieve and Delete Up to 1000 Rows in a Single HTTP Batch Request
  8. End-to-End Automation for Mass Record Cleanup Using Select and HTTP POST in Power Automate
  9. Flow to Dynamically Generate and Execute Batch DELETE Requests for Table Row Cleanup
  10. Efficient Data Management Flow for Bulk Deletion of Table Entries via OData Batch Endpoint
  11. Power Automate Workflow to Clean Up Table Records Using Template-Based HTTP Requests
  12. Automated Record Deletion Flow Using Select Mapping and Multipart HTTP POST to Dataverse
  13. Batch Processing Flow for Deleting Multiple Rows from a Data Source Using API Integration
  14. Dynamic Row Deletion Automation Using GUID Mapping and OData Batch Request in Power Automate

Delete Dataverse Records in Batch Web API & Power Automate 2025

Delete Dataverse Records in Batch Web API & Power Automate 2025

Delete Dataverse Records in Batch Web API & Power Automate 2025

Delete Dataverse Records in Batch Web API & Power Automate 2025

Delete Dataverse Records in Batch Web API & Power Automate 2025

Delete Dataverse Records in Batch

Delete Dataverse Records in Batch

  • Power Automate batch delete
  • Power Automate delete multiple rows
  • Power Automate HTTP request delete
  • Power Automate OData batch
  • Power Automate delete SharePoint items
  • Power Automate bulk delete flow
  • Power Automate REST API delete
  • Power Automate delete records from Dataverse
  • Power Automate batch endpoint
  • Power Automate delete 1000 items
  • How to batch delete items in Power Automate
  • Power Automate flow to delete rows using HTTP request
  • Efficient way to delete multiple records in Power Automate
  • Power Automate delete rows from Excel or SharePoint
  • Automate record deletion using OData API
  • Power Automate delete items using changeset
  • Power Automate flow for data cleanup
  • Power Automate delete records with GUID
  • Power Automate delete rows with Select and HTTP
  • Power Automate batch delete using template mapping

Delete Dataverse Records in Batch

Delete Dataverse Records in Batch

Delete Dataverse Records in Batch

Leave a Comment