A weird post title I know..
One of the most confusing things in CRM is the State and Status (or Status Reason) of a record. These two things are very different in CRM, and it seems that the CRM UI itself often gets mixed up between the two.
When you create a new entity for example, the default label for the statecode field is Status, and for the statuscode field it is Status Reason.
When configuring a workflow, you can specify that it fires on after ‘record status changes‘:
Exactly what does this mean? Will the workflow fire when the record’s State (Active/Inactive) changes? Or will it fire when the record’s Status (‘sub-state’ within Active/Inactive) changes? Will it fire on both?
Well, as it turns out, this option will fire the workflow only when the record’s State changes. Enabling this option has the same effect as enabling the ‘record fields change‘ option and ticking the statecode field in the filter.
In fact, that’s exactly what CRM does behind the scene. Try this:
- Tick the ‘record status changes‘ option
- Tick the ‘record fields change‘ option. This enables the Select button to apply field filtering.
- Now click the Select button. You will see that the statecode field is selected by default.
- Untick the statecode field from the filter
- You will see that the ‘record status changes‘ option is now unticked
So in conclusion…
Even though the option say ‘record status changes‘, it really means on record state (Active/Inactive) changes. Misunderstanding this option can cause workflows to fire (or not fire) unexpectedly in your system.