When you would need to develop a Custom Workflow Activity instead of using a standard Workflow or a Power Automate flow.
Use a Custom Workflow Activity when your process requires complex, highly specialized logic, such as advanced calculations or custom validations, that standard workflows or Power Automate can’t support. This includes scenarios needing custom system integrations (when no connector exists), high-performance processing, or advanced error handling—all limitations of standard workflows and Power Automate.
Describe the stages of the Plugin Execution Pipeline.
✅ Synchronous
❌ Asynchronous
✅ Synchronous
✅ Asynchronous
Difference between async and sync plugin
Post-Operation Retrieve Plugins: Sync vs Async
Sync (Synchronous)
Runs: After retrieve, before return
Modify returned entity: ✅ Yes
User waits: ✅ Yes
Uses: Field masking, dynamic values, logging/auditing
Async (Asynchronous)
Runs: After retrieve, after return
Modify returned entity: ❌ No
User waits: ❌ No
Uses: Logging, metrics, integration, heavy processing
Speed tip: Async feels faster because it runs in background; user isn’t blocked
Rule of thumb: If result affects user view → Sync; if background task → Async
When to use Business Rules vs Workflows vs Power Automate vs JavaScript vs Plugins vs Azure Functions
Business Rules – Ultra-simple logic
Use for basic field rules (show/hide, set required, default values). No code, runs fast, limited power.
Workflows (Classic) – Simple background automation (legacy)
Use only for existing systems that still rely on them. Being phased out—avoid for new builds.
Power Automate – Low-code process automation
Use for approvals, notifications, integrations, scheduled or event-based flows. Great for business users, not heavy logic.
JavaScript – Client-side, real-time UI logic
Use for form validation, dynamic UI behavior, instant user feedback. Runs in the browser.
Plugins – Server-side, transactional logic
Use for enforcing rules, validating/blocking data, syncing related records, or any logic that must always run regardless of how the record is changed.
Azure Functions – Heavy-duty server-side logic
Use for complex calculations, integrations, performance-critical logic, or reusable APIs. Best for scale and advanced scenarios.
Quick Rule of Thumb:
UI logic → JavaScript
Simple form rules → Business Rules
Process automation (async) → Power Automate
Always-run transactional logic → Plugin
Complex or cross-system logic → Azure Functions