I was asked to create a workflow and wanted to get advice on the best way to set this up.
Basically, it is a workflow to follow 6 different checklists depending on the “Subject”. Each checklist has 30 - 40 steps. The workflow should keep track of the date that each step on the checklist is completed.
Let’s say the checklists are called 1) Dialer, 2) SQRP, 3) Mainframe, 4) Campaign, 5) Collections, 6) Statements
The Intake form will have 4-6 fields with one of the fields called “Subject”. The possible values of the “subject” field will be Dialer, SQRP, Mainframe, Campaign, Collections, Statements. Depending on which “subject” is selected, the workflow will keep track of the steps for that specific subject.
How should I set this up?
When I build a solution for a repetitive process, here is how I handle it.
Whenever a new intake form is submitted, your workflow will query the template list for all the tasks that have the same subject. It will then get create a task for each of those items (steps) from the template list in the workflow task list. Then you'll have all your tasks for that subject/intake form. If you wanted to update some value on the intake form to track the progress, you could have a 2nd workflow on the task list that could do that as the tasks are completed.
Brendan, Sorry for the delay in response. This looks like a great idea and I am about to try it. But, quick question -- I just came across a SharePoint web part called "Tasks". Do you think this would help, or should I just proceed with your first explanation using Custom List?
I have created an "Intake" list and a "Task Steps" list per the suggestion above. After I query the "Task Steps" for all the tasks with the same subject, how do I create a task for each of these steps in the workflow task list? And, once I do create a task for each step in the workflow task list, it seems like all of the tasks for all the requests will be mixed together in the workflow task list. How do I track only the tasks for 1 specific request?
When you query the template task list, store the results in a collection variable. Normally I store the ID's of the matching tasks because I need to do a 2nd lookup when I create the actual tasks. After you get your collection of tasks IDs, you use a For Each action to go through each item in the collection. So the For Each would grab the first task ID from the collection. I would then query my template list again for that task and get all the information I would need to create the new task: subject, comments, etc. Store those fields in variables. Then the next action would be to create your workflow task using the information in the variables from your task template. The For Each will loop through each task in the collection and create a task for it.
When you create a workflow task, the system creates a related content field that associates the task to the item that generated it. That's how you will know which tasks go with which item.