SharePoint 2013 : How to Start Workflow on a List Item using Workflow Instance Service

We are here in the Fourth and Final Post in the Series of Four articles on Workflow Services.

Last three posts in this series can be reached out at the below links:

  1. SharePoint 2013 : Introduction to Workflow Services API
  3. SharePoint 2013 : How to Add Workflow Associations to a List using Workflow Subscription Service

This article will take you through to the automation steps of another more common requirement i.e. “Starting a Workflow on any List Item Programmatically”.

In order to automate this task we can leverage Work Instance Service.

Assuming that you are following me all along the previous three articles of this series, and you are already aware of that we have a List with the name “Workflow Testing” in the Child Site which we had created in one of the earlier posts of this series.

We also got a Workflow Definition “Workflow on Orders in Parent Site” Copied to this Child Site and published in context of “Workflow Testing” List.

Now let see how we can start the workflow on any desired list item programmatically using “Workflow Instance Services”.

For this demo lets consider a target item “Test Item 3” in “Workflow Testing” List on which we need to start the workflow, as shown below:


In order to trigger the Workflow Start process, we have got a super simple UI with one HTML button “Start Workflow” as shown below:


Now next thing is to get into the code line by line to understand the logic behind this implementation:

1.Specify the Workflow Definition ID which needs to be started on the list item

2.Specify the List ID to which this workflow is associated


3.Instantiate the List Object by calling “getById” method

4.Instantiate the List Item Object by calling “getItemById” method

5.Instantiate Service Manager Object as earlier

6.Query all the available Subscriptions for the Workflow Definition based on Definition ID specified in Step 1 using Workflow Subscription Service


7.For a specific Subscription call “startWorkflowOnListItem” function of Workflow Subscription Service by passing following parameters to it:

  1. Workflow Subscription Object
  2. List Item ID
  3. Initiation Parameters: This is applicable only when the Workflow is expecting any Initializing Parameters in the Workflow Definition, else we can pass an empty object to the function as shown below.


With this we are done with code development.

Now click on the HTML Button to test the code and if the code execution succeed you will get an Alert saying “Workflow Started” as shown below:


In order to test the implementation from UI, we need to browse the “Workflow Testing” list and look for the target item which is “Test Item 3” in our case.

Look for the Workflow Status column for this item to see if the Workflow status has been updated as shown below:


Click on the workflow status to see full history of workflow execution to ensure that all operations are executed as expected.


Hope you enjoy this series on Workflow Services.

Please share your feedback if you find it helpful.


SharePoint 2013 : Introduction to Workflow Services API


  1. Create Workflows
  2. Edit Workflows
  3. Start Workflows
  4. Stop Workflows
  5. List Workflows
  6. Copy Workflows from one site to another
  7. Associate Workflows to lists




  1. Workflow Instance Service
    1. Can be used to Query Workflow Instances
    4. Can be used to Communicate existing Instances
      1. To Cancel Workflow
      2. To Terminate Workflow
      3. Publish Custom Events
  2. Workflow Subscription Service
    1. Can be used to Query Workflow Associations
    2. Can be used to Create Workflow Associations
  3. Workflow Deployment Service
    1. Can be used to Query Workflow Definitions
    2. Can be used to Validate Workflow Definitions
    3. Can be used to Create Workflow Definitions
    4. Can be used to Validate Workflow Definitions
  4. Workflow Interop Service







Click Ok to save the Workflow definition.



Check for the errors

Save the workflow

Publish the workflow as shown below:




Now go to any list and add this workflow to the list




Just create it and save it, that’s all.





The simple HTML that bring this button up is as follows




  1. JQuery.js
  2. MicrosoftAjax.js
  3. SP.Runtime.js
  4. SP.js
  5. SP.Core.js
  6. SP.WorkflowServices.js


Then proceed with the code as follows:


  1. Initialize Context Variable
  3. Initialize Workflow Deployment Service Instance


  1. Get Handle on Workflow Definitions Collection
  2. Get Current Workflow Definition
  3. Retrieve Workflow Properties from Workflow Definition




  1. Workflow ID
  2. Workflow Display Name
  3. Workflow Description
  4. Workflow Published Status



  1. Click Button
  2. Site URL for which the Workflow Definitions are listed
  3. Workflow definition details


You can visit the next post in this series:
