Right now I've created a few SharePoint Designer workflows in SharePoint 2007, I need to start them all up for each existing list item at (more or less) the same time. I'm not terribly worried about bandwidth as all of them will be waiting for a certain time to elapse on the list anyways (Pause until X Date and x is different for each item).

However is there a tool out there that can iterate through all the list items in a list and start workflows I specify? Or would I have to code this?

5 Answers 5


No need to introduce an app written by someone else to do this. It can all be done through the UI.

This is what I do for items I need to process in bulk with a workflow. Create a simple number column that acts as a trigger with a default value of 0. In my workflow, I put in an If trigger column = 1 do what I need it to do.

In datasheet view, I expose the trigger column, set it to 1 and fill it down, firing off the workflow for each item.

At that point the if trigger portion can be removed from the workflow or change the default value of the column to 1 and hide it. Then new items submitted will process normally.

  • I had to install this to enable Actions-> "Edit in DataSheet": microsoft.com/en-us/download/confirmation.aspx?id=23734
    – Kevin .NET
    Commented Sep 13, 2017 at 17:36
  • If you change the trigger so the wf fires on any change, you can change any value in datasheet/quickedit mode. No need to add conditional to wf because the change will fire it.
    – matt
    Commented May 31, 2019 at 13:17

I've done something similar using a custom timer job to trigger a workflow on each item in a list. The bit of code which does that looks like this:

using (SPSite siteCollection = new SPSite("...Site...")) 
    using (SPWeb site = siteCollection.OpenWeb("...SubSite..."))
        SPList taskList = site.GetList("...ListPath...");
        SPWorkflowAssociation workflowAssociation = 

        foreach(SPListItem item in taskList.Items)
            catch { ... }

I haven't used this tool before, however it may be what you are looking for:

http://spworkflowstarter.codeplex.com/ - Sharepoint Workflow Starter

According to is description, it can do what you are looking for.


Not sure about the tool John mentioned but you need to aware of SharePoint capacity limits when it comes to workflow. I cannot find the official information for SharePoint 2007, but as far as I remember it's the same as for SharePoint 2010. Official documentation states:

15 is the maximum number of workflows allowed to be executing against a content database at the same time, excluding instances that are running in the timer service. When this threshold is reached, new requests to activate workflows will be queued to be run by the workflow timer service later. As non-timer execution is completed, new requests will count against this threshold. This is limit can be configured by using the Set-SPFarmConfig Windows PowerShell cmdlet. For more information, see Set-SPFarmConfig. Note: This limit does not refer to the total number of workflow instances that can be in progress. Instead, it is the number of instances that are being processed. Increasing this limit increases the throughput of starting and completing workflow tasks but also increases load against the content database and system resources.

I have no idea what you are trying to do here, but you need to check this limit before you start your implementation. Maybe a custom timer job, or SharePoint Workflow Starter can workaround this limitation.

  • In a nutshell, what I'm doing is I've created a workflow for a list of projects. These projects have due dates and when the due date is passed, certain escalations need to happen. So I want to start the workflow so it can sit in suspense and wait for those due dates to happen (the list is already pre-populated). So they'd be stuck in the timer for some time (most of these dates are months ahead).
    – tekiegreg
    Commented Nov 29, 2011 at 19:29

I also had to run a workflow on several items in a list. In my case the workflow is triggered by changes to the items. To trigger the workflow, I used PowerShell to issue a "SystemUpdate" on each item. That will make the workflow run. The script is like this:

if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction     SilentlyContinue) -eq $null) 
    Add-PSSnapin "Microsoft.SharePoint.PowerShell"

$collection = 'XXX'
$site = '/YY/YY/YY/YY'
$list = 'ZZZ'

$spWeb = Get-SPWeb -Identity "https://$collection.QQQQ.dk$site"
$spList = $spWeb.Lists["$list"]
$spList.Items   | where {$_['ID'] -ge 50555} | ForEach-Object {
    write-host("Doing: " + $_['ID'])

I hope you can use this :-)

Regards Leif

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.