Implementing Audit-Ready Status Transitions in Dataverse (Custom API + Guard Plugin Pattern)

Author: Forrest Zhang

Series: Audit-Ready Modernization – Implementation Track (Post A)

Designing Defensible Signature Experiences in Microsoft Power Pages

A risk-based blueprint for replacing PDF signatures in modern online intake portals

From One-Off Projects to Repeatable Platforms: Proving Impact with Metrics and Reusable Components

Author: Forrest Zhang

Series: Audit-Ready Modernization (Part 3 of 3)

RBAC That Scales: A Governance Model for Regulated Workflows (Role × Scope × Authority)

Author: Forrest Zhang

Series: Audit-Ready Modernization (Part 2 of 3)

Audit-Ready by Design: A Practical Framework for Modernizing Regulated Operations at Scale

Author: Forrest Zhang

Series: Audit-Ready Modernization (Part 1 of 3)

Dataverse Custom API vs. Classic Action

In Microsoft Dataverse / Dynamics 365 projects, we often need a clean way to implement “business operations” such as Submit, Approve, Reject, Close, Recalculate, or Validate. Two common options come up:
  • Custom API (modern, contract-based)
  • Classic Action (legacy process-based “Action”)

This article compares them in plain language, with real scenarios and governance considerations (security, auditability, and maintainability). It’s designed for solution architects, functional consultants, and makers who need to make the right platform choice, not just “get it working.”