Automatically updating Microsoft CRM records using Workflow

You do not always have to use scripts to automatically perform updates on your CRM records.  The Microsoft Dynamics CRM Workflow Manager allows you to check for conditions using the “wait” function to determine when a record should automatically be updated.  This can be quite useful if you have business rules that specify how a record should be updated when certain conditions are met. 

Scenario: Update the opportunity probability to 0% if the opportunity is put on hold.

Step 1: Create a new create workflow rule for the opportunity entity.

Step 2:  Insert a condition called “Wait for Conditions.”

Step 3: Select the “<<add conditions here>>” line and insert the condition called “Wait entity condition.”

Step 4:  Choose the field you are waiting to be updated/changed.  In this scenario we are looking for Status Reason = On Hold.

Step 5: Insert an action called Update Entity after the end wait statement (select the end wait statement and then click on the Insert Action link).

Step 6: Update the Probability field to 0%.

Step 7:  Save the rule once you are finished.

Step 8: Activate the rule.

Outcome: Once the rule is created it will be in effect for all future records saved to the CRM database (NOTE: It is important to understand that automated workflow rules, once created, will work on an ongoing basis and will not update existing records in the database).  In this specific scenario, any new opportunities will be monitored to check for the Status Reason field.  If the Status Reason value changes to “On Hold” the probability will automatically change to 0%.

Misc. Notes: Consider using the wait for condition when the business rule is a one-time update.  Remember that this sort of update takes place once the record has been saved (it is not a real-time update).  Leverage the “Wait for timer” for instances where you want to perform action after a given period of time.

Ryan Toenies
VP Infrastructure and CRM Solutions

Comments (7)

  1. We use Java Script for this functionality. We have multiple conditions. It dynamically updates the data and works great. May be wait condition needs a better example here.

  2. mMisha says:

    please provide some blog on migrating data into Microsoft CRM 3.0 from sql server 2005 automatically

  3. shashi says:

    Java script is good as long as the fields that need to be updated are on the form. workflow extends this by allowing you to update non form fields and also related entity fields.

  4. sranjan says:

    Java script is good as long as you are restricted for fields present on the form. Workflow extends the capability by allowing you to update any field on the entity and also fields on the related entity.

  5. CRM Rules says:

    What are the resource implications of this?  Isn’t there a workflow instance for every record created?  In a large and complex Service implementation, for example, you could have thousands of cases in many different states.  Wouldn’t the wait for put a burden on tracking a multitude of these wait state processes?

    Any thoughts?  A call out for On Update seems to be better where the call out would fire, complete by checking the condition and close out.  

    I can’t help but wonder about if such wait states will affect scalability and stability.

  6. Ahsan says:


    Can i have 2 conditions for a Wait workflow. I want to a wait work flow that activiates as soon as one of the two condtions occour.


      condition A Or Condtion B

    End Wait

  7. Jeremy says:

    Thanks for the post. I’ve started using some automated workflows in this way to make some record modifications, and the core stuff is working great.

    What I’m having trouble with is pretty trifling, but it still has me stuck. Is there a way to specify a newline in a Static Value? I’m trying to update a text field with an address, and I need the different parts on separate lines. I’ve tried the usual stuff (n, <br>, \n, rn, etc.) with no luck.

    Is there a way to do that?

Skip to main content