CRM 4.0: Use JavaScript execute/call/launch CRM Workflow

Run a workflow through JavaScript

/* the function */

ExecuteWorkflow = function(entityId, workflowId)


var xml = “” +

“<?xml version=\”1.0\” encoding=\”utf-8\”?>” +

“<soap:Envelope xmlns:soap=\”\” xmlns:xsi=\”\” xmlns:xsd=\”\”>” +

GenerateAuthenticationHeader() +

” <soap:Body>” +

” <Execute xmlns=\”\”>” +

” <Request xsi:type=\”ExecuteWorkflowRequest\”>” +

” <EntityId>” + entityId + “</EntityId>” +

” <WorkflowId>” + workflowId + “</WorkflowId>” +

” </Request>” +

” </Execute>” +

” </soap:Body>” +

“</soap:Envelope>” +


var xmlHttpRequest = new ActiveXObject(“Msxml2.XMLHTTP”);

xmlHttpRequest.Open(“POST”, “/mscrmservices/2007/CrmService.asmx”, false);


xmlHttpRequest.setRequestHeader(“Content-Type”, “text/xml; charset=utf-8”);

xmlHttpRequest.setRequestHeader(“Content-Length”, xml.length);


var resultXml = xmlHttpRequest.responseXML;



/* call */

var theWorkflowId = “3FD2DD58-4708-43D7-A21B-F0F90A0AA9F2”;
//change to your workflow Id

ExecuteWorkflow(crmForm.ObjectId, theWorkflowId);

Author: Arvind Singh

Solution Architect with 15+ years of exp. Dynamics CRM, Power Platform, Azure which includes Solution, Design, Development, Deployment, Maintenance and support experience.

3 thoughts on “CRM 4.0: Use JavaScript execute/call/launch CRM Workflow”

  1. Thank you for writing and posting this tutorial. I created a custom button which needed to execute a workflow and this code did just that.


  2. Thank you for posting this code. Are you using it on an event or is it executed under a button? When using is on the OnChange event of an entity I get an error when loading the page.


Leave a Reply

Please log in using one of these methods to post your comment: Logo

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

Facebook photo

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

Connecting to %s

%d bloggers like this: