Quote approval audit trail missing in compliance reporting after workflow update

We recently updated our quote approval workflow in D365 Finance & Operations (10.0.41) using Power Platform integration. The workflow functions correctly and approvals are being processed, but we’re facing a critical issue with our compliance reporting.

The audit trail for approval stages is no longer appearing in our compliance reports. Our custom workflow has three approval stages (sales manager, finance director, VP approval for quotes over $100K), but only the final approval timestamp shows up in the audit logs.

When I check the Dataverse entity auditing settings, I can see the Quote entity is marked for audit tracking:


EntityName: msdyn_quote
AuditEnabled: true
TrackChanges: true

However, the intermediate approval stages aren’t being captured. Our compliance team needs complete visibility into who approved what and when for SOX audit requirements. Has anyone encountered this after migrating workflows to Power Platform? We need to configure proper audit logging for all approval stages.

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.

I’ve seen this before when migrating to Power Automate flows. The issue is that custom approval stages in Power Platform don’t automatically write to the D365 audit tables. You need to explicitly configure audit logging for each stage. Check if your flow is updating the approval history table correctly. Are you using the standard approval actions or custom HTTP requests to D365?

We’re using the standard Power Automate approval actions. The flow triggers correctly and sends approval requests to the right people, but I’m not sure if we’re explicitly writing to any audit tables. Should we be adding custom steps to log each approval stage separately?

Confirmed this resolves the compliance gap — once the custom Quote Approval Audit table with the msdyn_quote lookup was deployed, our Power Automate flows populated every approval stage accurately in Dataverse.

The problem is that Power Platform approval actions don’t natively integrate with D365’s compliance audit framework. You have two options: either add custom actions after each approval stage to write to a custom audit entity in Dataverse, or use D365’s native workflow engine which has built-in audit trail capabilities. The second option means reverting your Power Platform integration though. Another thing to check - are your compliance reports pulling from the right data source? Sometimes they’re configured to look at the old workflow tables.

I disagree with reverting to native workflows. Power Platform is the future direction for D365. Instead, create a custom Dataverse table specifically for approval audit logs. After each approval stage in your flow, add a ‘Create new row’ action to write the approval details (approver, timestamp, stage name, quote ID, decision). Then modify your compliance reports to pull from this custom audit table. This gives you full control over what gets logged and maintains Power Platform benefits.

Jennifer’s approach is solid, but make sure you’re also enabling change tracking on your custom audit table. For SOX compliance, you need immutable records. In Dataverse, go to the table properties and enable ‘Track changes’ and ‘Audit changes’. Also consider implementing a retention policy since audit data can grow quickly. We keep 7 years of approval history for regulatory requirements.