Everyone’s given good advice, but let me walk you through the complete solution since this is a common compliance gap.
First, you need to understand that Power Platform approval actions operate independently from D365’s native audit framework. Here’s how to properly bridge that gap:
Step 1: Create Custom Audit Entity in Dataverse
Create a new table called ‘Quote Approval Audit’ with these key fields:
- Quote Reference (lookup to msdyn_quote)
- Approval Stage (choice: Sales Manager, Finance Director, VP)
- Approver (lookup to systemuser)
- Decision (choice: Approved, Rejected, Delegated)
- Timestamp (datetime)
- Comments (text)
- Quote Amount (currency - for context)
Enable auditing and change tracking on this entity:
AuditEnabled: true
ChangeTrackingEnabled: true
IsAuditEnabled: true
Step 2: Modify Your Power Automate Flow
After each approval action in your flow, add a ‘Dataverse - Add a new row’ step:
- Table: Quote Approval Audit
- Map all fields from the approval response
- Include the approval outcome and approver details
This ensures every approval stage writes an immutable audit record.
Step 3: Configure Compliance Report Data Sources
Your compliance reports need to query the new audit table. If you’re using Power BI:
- Add the Quote Approval Audit table as a data source
- Join with msdyn_quote on Quote Reference
- Create visuals showing approval timeline, approver hierarchy, and decision patterns
If using D365 reporting, create a new report configuration that includes your custom entity.
Step 4: Dataverse Audit Settings Verification
Go to Power Platform admin center → Environments → Your environment → Settings → Audit settings. Ensure:
- Start Auditing is enabled
- Audit user access is enabled
- Your Quote Approval Audit entity appears in the audited entities list
Step 5: Testing and Validation
Create a test quote and run it through all approval stages. Then verify:
- Each stage creates a record in Quote Approval Audit
- Audit history shows all changes (check the entity’s Audit History)
- Compliance reports display all approval stages with timestamps
This approach gives you complete audit trail visibility while maintaining Power Platform’s flexibility. The custom audit entity becomes your single source of truth for compliance reporting, and because it’s in Dataverse with full audit enabled, you meet SOX requirements for immutable records.
One additional recommendation: implement a scheduled Power Automate flow that runs daily to verify audit completeness - check for any quotes with approvals but missing audit records. This catches any gaps before they become compliance issues.
This draft is based on general Microsoft Dynamics 365 knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.