{Dynamics CRM} Control CRM 2013 Business Process Next Stage and Previous Stage flow using JScript.

Recently in our project we needed to restrict the business process flow from one stage to another depending on certain conditions. The problem was that OOB CRM 2013 does allow you to plugin your custom client side code when the “Next Stage” or the “Previous Stage” icons are clicked. You can obviously register Plugins and Workflows on the business process stage change but you cannot stop the change of stages using the same. Let’s see how we can achieve this.

Below is the screenshot of an example business process flow for opportunity entity. Let’s explore what CRM does here. I have opened Chrome Developer tools and trying to explore the HTML for business process flow. I have selected the ‘Next Stage’ button.

screen 9

The id of the div is “stageAdvanceActionContainer”.

So what we need to do is override the click event with our custom function and then if our condition meets we would call the OOB event handler. The code below does the same.

function  registerBusinessProcessEvents()


var originalNextStageHandler = $(“#stageAdvanceActionContainer”).data(“events”)[“click”][0].handler;


// unbind the original next event handler



$(“#stageAdvanceActionContainer”).click(function (e) {

// perform your custom logic here. If you want to move to the next stage just call the code below.


$.proxy(originalNextStageHandler, $(“#stageAdvanceActionContainer”))(e);





All you need to do is call the registerBusinessProcessEvents  function during the onload of the form.

Similarly the ID for the previous click handler is “stageBackActionContainer”. And you can handle it in the same manner as above.


Please note that is an unsupported customization and might not work if Microsoft decides to change the id of the div elements or the rendering model in future rollups.


Hope this helps!


About Debajit
I am a Dynamics CRM Most Valuable Professional (MVP) with 10 years of experience in Microsoft .NET Technologies and 7 years of dedicated experience in Microsoft Dynamics CRM. I have worked with companies like Microsoft, SanDisk, PwC, TMF Group and have extensive experience of implementing complex CRM solutions from both offshore and client side. Currently the face of with significant experience in delivering corporate training on Dynamics CRM and have already delivered multiple projects to client through Author of multiple tools on codeplex including the 'Role Based Views' and 'CRM-Sharepoint Metadata manager & Attachment Extractor' which are available for commercial use under For consulting/ training, drop me a note at or visit our website

9 Responses to {Dynamics CRM} Control CRM 2013 Business Process Next Stage and Previous Stage flow using JScript.

  1. I am unable to capture the default handler in MS CRM 2015 (below is the code), will there be any other approach?

    var originalNextStageHandler = $._data($(“#stageAdvanceActionContainer”)[0], “events”);

  2. Hi,

    I want to prevent opening a form on double clicking the record in a subgrid in ms crm 2011, can you please tell how to achieve this?
    How to interact with the oob event handler..any idea?

    • Debajit says:

      Hi Pavan,
      Thanks for reading my post.
      Would like to know here the requirement like why you want to block the the double click of the row of the subgrid? Perhaps we can have an alternative solution here.

      • pavan says:

        Hi Debajit,

        Sorry for my late response.I want users not to open the activity record in activity subgrid in a custom entity,which is of particular subject. But all users must be able to see all the records in all views…
        Only the owner can open the activity record and rest are restricted ….so i am checking for preventing form onload(oob)…Can you think on this tell me any other possible solution….


      • Debajit says:

        Hi Pavan,
        Since all users can see the activities the in the views, is there any harm if they can still open the activity and see it but only in read-only mode so that they cannot modify it?

  3. Pingback: Registering custom client handlers for your business process flow stage handlers –Dynamics CRM | Debajit's Dynamic CRM Blog

  4. Pingback: Debajit's Dynamics CRM Blog

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: