I have a process that needs to be run across every element of a list, doing specific things (mostly sending emails) based on several different fields of that item. This operation will always be done on all items in the list simultaneously. Code is not an issue because that kind of element has already been implemented elsewhere in the system, where one-per-item is not feasible.

I'm stuck at the decision of how many workflows to use for the system. I can either setup a workflow on a single "index" item that iterates across all of the items in the list, or I could setup multiple workflows that run on every single list item, each indepedently handling their own item.

Are there significant upsides or downsides to one of the approaches versus the other? Is one or the other more flexible? Are there strain issues I should be worried about? Or does it mostly boil down to how many things I want to be monitoring for errors?

I'm aware that under normal circumstances, a timer job would be a wise move for a periodic email system. I'm under the impression, however, that timer jobs cannot be easily or readily configured by users in the UI, and this needs to be flexible in both what is done and how often it triggers. In some of the site collections, this will be entirely manual in operation - so I'd much prefer an option that allows me the freedom to trigger it at will.

If I'm mistaken in my understanding that timer jobs cannot accomplish the above needs of flexibility and easy on-demand override, then please let me know. Otherwise, I'd prefer an understanding about whether there's any significant differences between one-on-all versus one-on-each, or if it really doesn't matter in that choice.

  • When do you send emails? When an item changes? or periodically?
    – Shoban
    Apr 12, 2011 at 17:48
  • @Shoban Periodically. These are manually triggered workflows.
    – Grace Note
    Apr 12, 2011 at 17:49

3 Answers 3


If this is just for sending emails and for all list items I would consider a timer job, it's much easier to control these and you can also schedule them to run periodically if needed.

Edit: Yup, there is no OOTB UI for timer jobs configuration and I understand your concern about that. If you want to have the UI flexibility than you should probably go for one workflow per each item, however there are workflow capacity limits that you need to be aware of! From my experience SharePoint workflows are great as long as you are using them within these limits and for stuff they should be used for. My professional opinion is: don't use them for this scenario :)

  • I appreciate the nudge towards a more efficient solution for the general situation, but unless my understanding is in error (which is plausible), I don't believe timer jobs contain the full flexibility and ease of modification I'll need for this and any future features that will mimic this functionality. Please correct me if I'm wrong.
    – Grace Note
    Apr 12, 2011 at 19:09
  • Coded workflows also not flexible. You can't iterate whole list with SPD workflows only.
    – gandjustas
    Apr 12, 2011 at 19:24
  • @gandjustas I don't use SharePoint Designer.
    – Grace Note
    Apr 12, 2011 at 19:24
  • Edited my answer. Apr 12, 2011 at 19:26
  • 1
    This might help if you go with Timer jobs: stackoverflow.com/questions/1137985/…
    – Kit Menke
    Apr 12, 2011 at 19:32

Timer job will bu suitable for you, not a workflow.

  • you can iterate through a whole list with SPD workflows (I agree that it's more complicated than a single item workflow).
    – Christophe
    Apr 13, 2011 at 3:59

Why not create a site-level workflow that is triggered via an event receiver or something? That way you don't have to decide on which item triggers the flow, a decission which is likely to be wrong always.

  • This is how the one-on-all workflow would function, yes.
    – Grace Note
    Apr 13, 2011 at 12:18

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.