Hi, Readers.
Dynamics 365 Business Central 2026 wave 1 (BC28.2) is generally available. More details: Cumulative Update Summary for Microsoft Dynamics 365 Business Central (June, 2026)
I will continue to test and share some new features that I hope will be helpful. In this post, I would like to talk about Use new APIs for analyzing approval workflows for auditors and IT staff.
Use new APIs for analyzing approval workflows for auditors and IT staff
Business value:
This feature enhances transparency and control by enabling secure, read-only access to approval workflows and user actions. Businesses can leverage these APIs to build advanced auditing and compliance reports in tools like Power BI, ensuring stronger governance and accountability. Additionally, integration with Microsoft Copilot Studio and MCP Server opens opportunities for intelligent automation and analytics, driving efficiency and insight. By isolating permissions for API access, organizations maintain robust security while empowering authorized teams to innovate confidently.
In this release wave, Microsoft is introducing read-only APIs on the (workflow) approval system.
I have exported the object list for all API page types and compared the code with BC28.1. Regarding the addition of approval workflows, here are the seven new APIs:
| ID | Name | Caption | Editable | PageType | APIVersion | EntitySetName | EntityName | SourceTable |
| 2145 | APIV2 – Workflows | APIV2 – Workflows | No | API | v2.0 | workflows | workflow | 1501 |
| 2146 | APIV2 – Workflow Resp. Options | APIV2 – Workflow Resp. Options | No | API | v2.0 | workflowResponseOptions | workflowResponseOption | 1523 |
| 2147 | APIV2 – Workflow Steps | APIV2 – Workflow Steps | No | API | v2.0 | workflowSteps | workflowStep | 1502 |
| 2148 | APIV2 – Workflow Approvers | APIV2 – Workflow Approvers | No | API | v2.0 | workflowApprovers | workflowApprover | 1573 |
| 30093 | APIV2 – Pstd. Approval Entries | APIV2 – Pstd. Approval Entries | No | API | v2.0 | postedApprovalEntries | postedApprovalEntry | 456 |
| 30094 | APIV2 – Approval Entries | APIV2 – Approval Entries | No | API | v2.0 | approvalEntries | approvalEntry | 454 |
| 30095 | APIV2 – Approval User Setup | APIV2 – Approval User Setup | No | API | v2.0 | approvalUserSetups | approvalUserSetup | 91 |
All of these belong to the API V2.0. More details: Endpoints for the APIs (V1.0, V2.0, Beta, custom, automation……)
Let’s look at a few simple examples.
APIV2 – Workflows: workflows
https://api.businesscentral.dynamics.com/v2.0/7e47da45-7f7d-448a-bd3d-1f4aa2ec8f62/Sandbox282/api/v2.0/companies(10a76dd9-a263-f111-ab09-7c1e524d5686)/workflows
Response:
{
"@odata.etag": "W/\"JzE5OzE3OTEzNDE5MjI1MzY2MTc4NTQxOzAwOyc=\"",
"id": "00c2e4be-9863-f111-ab09-7c1e524d5686",
"code": "MS-BPOAPW",
"description": "Blanket Purchase Order Approval Workflow",
"enabled": false,
"template": true,
"category": "PURCHDOC",
"lastModifiedDateTime": "2026-06-09T00:18:34.817Z"
}APIV2 – Workflow Resp. Options: workflowResponseOptions
https://api.businesscentral.dynamics.com/v2.0/7e47da45-7f7d-448a-bd3d-1f4aa2ec8f62/Sandbox282/api/v2.0/companies(10a76dd9-a263-f111-ab09-7c1e524d5686)/workflowResponseOptions
Response:
{
"@odata.etag": "W/\"JzIwOzE2NDc2MzExMzU2MzMxNTY5MjI2MTswMDsn\"",
"systemId": "f5c2e4be-9863-f111-ab09-7c1e524d5686",
"id": "4ec7d73d-bd06-484d-8223-00556d6cda81",
"type": "Response",
"generalJournalTemplateName": "",
"generalJournalBatchName": "",
"notificationUserId": "",
"notificationUserLicenseType": "Full User",
"responseFunctionName": "SENDAPPROVALREQUESTFORAPPROVAL",
"notifySender": false,
"linkTargetPage": 0,
"customLink": "",
"approverType": "Salesperson_x002F_Purchaser",
"approverLimitType": "Approver_x0020_Chain",
"workflowUserGroupCode": "",
"dueDateFormula": "",
"message": "",
"delegateAfter": "Never",
"showConfirmationMessage": false,
"tableNumber": 0,
"fieldNumber": 0,
"fieldCaption": "",
"approverUserId": "",
"responseType": "Not Expected",
"responseUserId": "",
"notificationEntryType": "New_x0020_Record",
"responseOptionGroup": "GROUP 2",
"lastModifiedDateTime": "2026-06-09T00:18:35.52Z",
"eventConditions@odata.mediaEditLink": "https://api.businesscentral.dynamics.com/v2.0/7e47da45-7f7d-448a-bd3d-1f4aa2ec8f62/Sandbox282/api/v2.0/companies(10a76dd9-a263-f111-ab09-7c1e524d5686)/workflowResponseOptions(f5c2e4be-9863-f111-ab09-7c1e524d5686)/eventConditions",
"eventConditions@odata.mediaReadLink": "https://api.businesscentral.dynamics.com/v2.0/7e47da45-7f7d-448a-bd3d-1f4aa2ec8f62/Sandbox282/api/v2.0/companies(10a76dd9-a263-f111-ab09-7c1e524d5686)/workflowResponseOptions(f5c2e4be-9863-f111-ab09-7c1e524d5686)/eventConditions"
}APIV2 - Workflow Steps: workflowSteps
https://api.businesscentral.dynamics.com/v2.0/7e47da45-7f7d-448a-bd3d-1f4aa2ec8f62/Sandbox282/api/v2.0/companies(10a76dd9-a263-f111-ab09-7c1e524d5686)/workflowSteps
Response:
{
"@odata.etag": "W/\"JzIwOzE0NTc4NTY1MjI1MDg0NTc0MTc4MTswMDsn\"",
"systemId": "01c2e4be-9863-f111-ab09-7c1e524d5686",
"id": 49,
"workflowCode": "MS-BPOAPW",
"description": "",
"entryPoint": true,
"previousWorkflowStepId": 0,
"nextWorkflowStepId": 0,
"type": "Event",
"functionName": "RUNWORKFLOWONSENDPURCHASEDOCFORAPPROVAL",
"argument": "b8a2ce43-066a-4972-8455-b88fbd7e0b43",
"sequenceNumber": 1,
"lastModifiedDateTime": "2026-06-09T00:18:34.7Z"
}APIV2 – Workflow Approvers: workflowApprovers
https://api.businesscentral.dynamics.com/v2.0/7e47da45-7f7d-448a-bd3d-1f4aa2ec8f62/Sandbox282/api/v2.0/companies(10a76dd9-a263-f111-ab09-7c1e524d5686)/workflowApprovers
Response:
{
"@odata.etag": "W/\"JzE5OzcxODQ2NDA3NDI4MzkwMzk5NzYxOzAwOyc=\"",
"id": "00000000-0000-0000-0000-000000000000",
"workflowCode": "MS-POAPW-01",
"workflowDescription": "Purchase Order Approval Workflow",
"category": "PURCHDOC",
"enabled": true,
"workflowStepId": 112,
"argumentId": "9c2dd4c5-05c6-4d9b-98b4-f1b9f101bf1f",
"approverType": "Approver",
"approverLimitType": "Direct_x0020_Approver",
"userGroupCode": "",
"userGroupDescription": "",
"userId": "00000000-0000-0000-0000-000000000000",
"userName": "",
"sequence": 0,
"lastModifiedDateTime": "0001-01-01T00:00:00Z"
}APIV2 – Pstd. Approval Entries: postedApprovalEntries
https://api.businesscentral.dynamics.com/v2.0/7e47da45-7f7d-448a-bd3d-1f4aa2ec8f62/Sandbox282/api/v2.0/companies(10a76dd9-a263-f111-ab09-7c1e524d5686)/postedApprovalEntries
Response:
{
"@odata.etag": "W/\"JzIwOzE3MzMwODU0ODcyOTYzNTA4NTE0MTswMDsn\"",
"id": "2e758099-7373-f111-8070-7c1e524b5e44",
"entryNumber": 1,
"tableId": 110,
"documentNumber": "102297",
"sequenceNumber": 1,
"senderId": "ADELEV",
"senderName": "Adele Vance",
"approvalCode": "MS-SOAPW-01",
"salespersonPurchCode": "JO",
"salespersonPurchName": "Jim Olive",
"approverId": "ADMIN",
"approverName": "YUN ZHU",
"status": "Approved",
"dateTimeSentForApproval": "2026-06-29T02:31:13.35Z",
"lastDateTimeModified": "2026-06-29T02:31:20.843Z",
"lastModifiedById": "ADMIN",
"comment": false,
"dueDate": "2026-06-29",
"amount": 3095.4,
"amountLCY": 3095.4,
"currencyCode": "",
"approvalType": "Approver",
"limitType": "No_x0020_Limits",
"availableCreditLimitLCY": 0,
"recordId": "Sales Shipment Header: 102297",
"delegationDateFormula": "",
"numberOfApprovedRequests": 1,
"numberOfRejectedRequests": 0,
"iterationNumber": 0,
"lastModifiedDateTime": "2026-06-29T04:32:56.967Z"
}APIV2 – Approval Entries: approvalEntries
https://api.businesscentral.dynamics.com/v2.0/7e47da45-7f7d-448a-bd3d-1f4aa2ec8f62/Sandbox282/api/v2.0/companies(10a76dd9-a263-f111-ab09-7c1e524d5686)/approvalEntries
Response:
{
"@odata.etag": "W/\"JzE5OzI5Njg1NzE3ODM3NjMzMDM5NDgxOzAwOyc=\"",
"id": "60b6e847-6273-f111-8070-7c1e524b5e44",
"entryNumber": 4,
"tableId": 38,
"documentType": "Order",
"documentNumber": "106031",
"sequenceNumber": 1,
"senderId": "ADELEV",
"senderName": "Adele Vance",
"approvalCode": "MS-POAPW-01",
"salespersonPurchaserCode": "",
"salespersonPurchaserName": "",
"approverId": "ADMIN",
"approverName": "YUN ZHU",
"status": "Rejected",
"dateTimeSentForApproval": "2026-06-29T02:28:59.08Z",
"lastDateTimeModified": "2026-06-29T02:29:04.087Z",
"comment": false,
"dueDate": "2026-06-29",
"amount": 2114.2,
"amountLCY": 2114.2,
"currencyCode": "",
"approvalType": "Approver",
"limitType": "No_x0020_Limits",
"availableCreditLimitLCY": 0,
"pendingApprovals": 0,
"recordIdToApprove": "Purchase Header: Order,106031",
"delegationDateFormula": "",
"numberOfApprovedRequests": 0,
"numberOfRejectedRequests": 1,
"relatedToChange": false,
"workflowStepInstanceId": "08ed9b27-1a03-42fc-9b9a-ab3560edddee",
"lastModifiedDateTime": "2026-06-29T02:29:04.087Z"
}APIV2 – Approval User Setup: approvalUserSetups
https://api.businesscentral.dynamics.com/v2.0/7e47da45-7f7d-448a-bd3d-1f4aa2ec8f62/Sandbox282/api/v2.0/companies(10a76dd9-a263-f111-ab09-7c1e524d5686)/approvalUserSetups
Response:
{
"@odata.etag": "W/\"JzIwOzEyODE2NDQzOTE0MjUxNTYxNzAwMTswMDsn\"",
"id": "50c966e5-6173-f111-8070-7c1e524d5e55",
"userId": "ADELEV",
"userFullName": "Adele Vance",
"salesPersonPurchaser": "",
"approverId": "ADMIN",
"salesAmountApprovalLimit": 0,
"unlimitedSalesApproval": false,
"purchaseAmountApprovalLimit": 0,
"unlimitedPurchaseApproval": false,
"requestApprovalAmountLimit": 0,
"unlimitedRequestApprovalAmount": false,
"substitute": "",
"email": "AdeleV@2qcj3x.onmicrosoft.com",
"phoneNumber": "",
"approvalAdmin": false,
"lastModifiedDateTime": "2026-06-29T02:26:38.16Z"
}Great. This allows for establishing security and auditing analytics and reporting outside Business Central—for example, creating reports with Power BI or agents with Microsoft Copilot Studio and MCP Server for Business Central.

Give it a try!!!😁
END
Hope this will help.
Thanks for reading.
ZHU




コメント