Plug-ins and Workflow Extensions

What is a Plug-in?

A plug-in is custom compiled code (.NET Class) that you can use to modify the standard behavior of the CRM platform. You can register plug-in code against events that are triggered by various actions in CRM. The plug-in code runs in CRM server(s), either synchronously or asynchronously.

Jump to the following sections to learn more about plug-ins:

What is a Workflow Extension?

Before describing a workflow extension, you should know what a workflow extension is and what it provides.

A workflow can be defined as a unit of work that is executed asynchronously.  Workflows are geared to execute when CRUD operations occur on a record but they can also be set to run on demand.  This allows a user to execute a Workflow on any given record at any given time.

As with plug-ins, workflows are used to execute business processes.  The key difference is that with workflows a user’s interaction with CRM isn’t interrupted while the business process logic is executing.  Instead, the work is off loaded to a windows service known as the CRM Asynchronous Service in which it takes responsibility for executing the workflow.

A workflow extension is an extension of a workflow that is created by writing code.   This gives a developer more control of the actions that the business process requires since they can utilize programming to achieve what the CRM workflow designer doesn’t provide.

A workflow extension resides in a workflow.  It is configured as a step in the workflow using the workflow designer.

Continue reading for more in-depth information on creating workflow extensions.