- Workflows can perform tasks such as updating data or sending email. They are triggered by saving records, creating records, or changing specific fields on a form, and once triggered, they run on their own in the background. As you can see in the example of How to Assign a Territory to a Lead in Dynamics CRM, you can even look up data in another entity.
- Plugins are separate .Net programs that respond to saving records or creating records. They can be set to run immediately on the screen or on their own behind the scenes depending on the need. Plugins are often used to do advanced tasks because they can be programmed to do anything within the limits of .Net and the SDK.
Does the user need to see the results before moving on?
Who will the maintenance fall to? Users or IT?
Does it need to be run on demand or only responding to system events?
- What is the relationship between the primary record and the records that need to be updated?
Workflows can update records with a N:1 relationship (a lookup on the record), but they cannot run on 1:N relationships (those on the left navigation or in a sub-grid). So using a workflow, you cannot automatically update all the contact addresses when the parent account address changes. But this can be done with a plug-in.
|Can Get External Data||No||Yes||Yes|
|Can Run As||User||User||CRM System|
|Nested Child Process||Yes||No||Yes|
|Executed After Saving||After||Before||After|
|Triggers||Create, Field Change, Status Change, Assign to Owner, On Demand||Field change or Form Load||Create, Field Change, Status Change, Assign to Owner, Delete|
For different cases when the user may need to walk through a process and make decisions, dialogs may instead be the right answer. To help make that decision, our blog on CRM Workflows and Dialogs: What's the Difference? provides great comparison.