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.
- 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.
- 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.
- A variable named
- 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.
- This step uses the

4. List rows
- Source Table:
EMP-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
{}

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:
- A batch boundary (
--batch_Outputs
) - A changeset boundary (
--changeset_Outputs
) - The joined output of the
Select
step, which contains all the DELETE requests - Proper closing of the changeset and batch
- A batch boundary (

🔄 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
- List Rows
- Retrieves up to 1000 rows from a table (e.g.,
EMP-Tests
). - These rows are the targets for deletion.
- Retrieves up to 1000 rows from a table (e.g.,
- Select
- Iterates over each row.
- Uses a template to generate a DELETE request for each row.
- Replaces placeholders (
editLink
,ID
) with actual values from the row data.
- 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.
- Sends a single batch POST request to the OData
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 Platform, Power Apps, Power Automate, and more! Let’s build something amazing together with Power Platform and Azure! 🚀
- Batch Row Deletion Flow Dataverse
- Dataverse Batch Delete Automation
- Power Automate: Delete 1000 Rows Dataverse
- Delete Rows Using HTTP Batch Request of Dataverse
- Multi-Row Deletion via Web API Dataverse & Power Automate
- Automated Flow for Batch Deletion of Records Dataverse Table by Power Automate and Web APIs
- Power Automate Process to Retrieve and Delete Up to 1000 Rows in a Single HTTP Batch Request
- End-to-End Automation for Mass Record Cleanup Using Select and HTTP POST in Power Automate
- Flow to Dynamically Generate and Execute Batch DELETE Requests for Table Row Cleanup
- Efficient Data Management Flow for Bulk Deletion of Table Entries via OData Batch Endpoint
- Power Automate Workflow to Clean Up Table Records Using Template-Based HTTP Requests
- Automated Record Deletion Flow Using Select Mapping and Multipart HTTP POST to Dataverse
- Batch Processing Flow for Deleting Multiple Rows from a Data Source Using API Integration
- 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