Difference Between Custom Workflow and Plugin

Difference Between Custom Workflow and Plugin:

  • When we are using Plugin we have a number of triggers availble (called as Steps/Message) to trigger the plugin execution,
  • Where Custom workflows are triggered by standard workflows available in CRM, that make the custom workflow triggers limited(Create, Update, Status Change, Delete and On assign).
  • Workflows and by extension, custom workflow activities, execute totally asynchronously.  Plugins can execute both asynchronously and synchronously.
  • Plugin overall execution time is lesser then workflows and if validations are required to be performed then plugins should be preffered.
  • Workflows can be manually executed, or automatically triggered by selected events.  Workflows can be limited to automatically execute within specific organizational scopes (ie. Org, BU, Parent and Child BUs, or for the Owner only).  Plugins are always triggered by the messages to which they’re subscribed, though some Messages allow limiting execution based on whether certain attributes have been passed into the Message.
  • Workflows can be turned off (by unpublishing).  Plugins are always on.  Custom workflow activities can be used in many Workflows.  Workflows can be developed through the Workflow design interface.  Plugins must be developed in Visual Studio.  Workflows do not require compiling (though custom workflow activities do).  Plugins and custom workflow activities must be compiled and deployed through processes external to CRM.

When speed of execution, security of process, and validity of data are integral, I choose Plugins.  When flexibility, functionality reuse, and optional user involvement are integral, I choose Workflows.


Difference between Asynchronous Plugin and Workflows in MSCRM

Difference between Asynchronous Plugin and Workflows in MSCRM

So many times I have been asked a question from my colleagues,

What is the difference between Async Plugin and Workflow, Since both are Asynchronous But What is the actual difference between them and When should i use Workflow and When should I use Async Plugin ?

Answer :

My Answer is always “Depends”, the right approach is determined by the Characteristics of the task that you are trying to accomplish.

Following Matrix show the difference between the same :

          Requirement Use Plug-in Use Workflow
Needs a synchronous action to happen before or after an event occurs


Need to perform a task that has to completed within 2 Sec

Yes               No
 The logic needs to be executed while offline Yes No
Needs elevation of privileges (impersonation)


Perform data operations on behalf of another system user

Yes No
Needs to execute on events other than assign, create, update, set state Yes No
The process/logic may take a long time to complete or will be a persistent process (multiple long running steps) No Yes
End users will need to modify the process logic             No Yes
                                         Child sub processes will be triggered No Yes