Today I'm going to compare CRM 3.0 and CRM 4.0 workflows:
The web interface is much better designed than the previous one. As I wrote in my previous post, you have more space for description and you can add notes and attach files to the workflows. Moreover you can add a comment to every step of the workflow.
I will say it again. Major improvement was on the workflows in this version. Good job CRM team.
Major change has been made is at the basic workflow properties. No more sales process. Now workflow equals sales process. You can select multiple triggering events for a single workflow. These events are:
- Status change
- Attribute change (update)
Also you can set if this workflow can be run on demand (manually) and / or as a child workflow. For the update, you must choose which attributes trigger the workflow.
Actions are now called steps. So let's take a look at the actions ... uh err ... steps.
Create Activity=> Create Record - Not only activities. You can create any entity you want. Set their properties in a form.
- Send E-mail - This action stays. Again more flexible, again a form for new email opens. Templates stay - of course.
Create Note=> Create Record - Note is actually an entity.
entityrecord - Of course, this action stays. In version 3.0 you could update only one attribute, in version 4.0 a form opens and you update any attribute you want.
- Change status - Not only you can change status to a fixed value, now you can set it to a status of a related entity and even to a status of a previously created task.
entityrecord - Again a major improvement here. Not just to the Manager, User or Queue. You can use any dynamic value of related entities. And there's more: You can assign related records as well. This means that you can reassign previously created task to a different user or a queue. Post URL- This action was deprecated in version 3.0. There are several reasons I won't talk about them here. No more Post URL for you guys. Run Subprocess=> Start Child Workflow - Still here of course, but with improvements. You can start a workflow on any related entities.
- Stop Workflow - Previously you could define what to do with sub-workflows, but in this version you can just stop it and set the status of the workflow to Completed or Canceled. This is kinda logical, since you are starting subworkflows asynchronously and for other entities.
Call assembly- What happened to this guy? It is not in the list anymore... Can anyone help me with this? Can you call an external assembly from the workflow?
Some changes have been made on conditions as well:
- Check condition - This has been divided into three sub-elements: Check condition (if), Conditional branch (else if) and Default action (else). You can add as many else-ifs as you want. And of course you can check the values from related entities as well.
- Wait for timer - This has been mover to general wait conditions group.
- Wait condition - As before you can wait for changes in an entity or created activities. Now you can also check related entities. What is more. You can create more wait conditions, that are similar to the if - else if conditions. This is condition is called Parallel Wait Branch. Now you can wait for different conditions to appear and then execute the first one that is met. The others are ignored.
Timers - Create a wait condition and select Workflow - Timeout. You can use dynamic values as well.
Stages - There is no more difference between Sales process and Workflow rules. You can insert stages into normal workflows as well, although they are not displayed in the entity's status bar.
In Sales processes you can actually look at the workflows that are running on a specific entity and see where they are or what they are waiting for. Notice the green circle.
The same workflow status is available of you open a workflow from the list of workflows in the Settings area and open the workflow list. Every workflow has a list of all instances that were started. Just open an instance and see the status.
This post has been written solely on my own discovery of CRM 4.0 CTP3. I'm just writing what I discovered. Maybe I missed something. Maybe it is important. Please correct me if I'm wrong.