“I’m using Power Automate to automate creation of Planner tasks, can I create also a checklist inside the task?”
Adding a checklist to a task is a basic functionality for any planning application, and it’s the same with Planner. If you use Power Automate to automatically create a task in Planner, you should be able to create a checklist too.
The action you’ll need is ‘Update task details’ (the action you use to update the task description). Among the other available fields is ‘Checklist’ where you can add the… checklist. You can define either fixed checklist items for all task, or you can ‘input entire array’ to add 0-n checklist items.
Fixed checklist
If your checklist is always the same, it might be sufficient to create it directly in the action. Just fill out the required fields: Checklist Id (any number, but it must be unique), Checklist Title (name of the item), and if the Checklist item is checked when created.
The example below will create 2 checklist items in a task: ‘Checklist item 1’ and ‘Checklist item 2’.
Dynamic checklist (0 – n items) from a ‘template’
If your checklist is dynamic, e.g. you store the checklist in an Excel file or in a SharePoint list, you must build an array. Switching to ‘input entire array’ will allow you to add that array of checklist items to the task. If the array is empty, it won’t add any checklist item; if it’s not empty, it’ll add all the items. The format for each checklist item should be as below.
{
"id": "<checklist item ID>",
"title": "<checklist item title>",
"isChecked": false
}
Notes: <checklist item ID> can be any number, but it must be unique for each checklist item. <checklist item title> is the checklist item name. The ‘”isChecked”: false’ tells Planner to keep the checklist item unchecked.
Knowing the format, you can follow similar procedure as when adding attachments to an email or an approval task. List the rows in an Excel file or get items from a SharePoint list, and create a checklist item for each of the rows/items.
Initialize array variable
The first step in all situations is to initialize an array variable for the array of checklist items. Then it depends on where you store the checklist. Let’s take 2 examples, a table in an Excel file or a SharePoint list.
a) Checklist in an Excel file
If your checklist items are stored in a table in an Excel file, ‘List rows present in a table’ and append them to an array. The Excel table should contain the name of the checklist items and an ID. Use them in the ‘Append to array variable’ action to build the correct checklist array.
b) Checklist in a SharePoint list
If your checklist items are stored in a SharePoint list, use the ‘Get items’ action to get them. It’s enough to have just 1 column in the SharePoint list as you can use the SharePoint item ID for the ID. After you get the items, the process is the same: ‘Append to array variable’ in the correct format.
Update the checklist
Once you have the checklist in the array variable (after the ‘Apply to each’), you can use it to update the Planner task ‘Checklist’ field.
The full flows
Below are screenshots of the two flows described in the previous chapters. The flows will create a Planner task and add a checklist located in a SharePoint list or in an Excel file.
Summary
From the two solutions above, fixed and dynamic, I’d always use the dynamic checklist, mainly in combination with a SharePoint list. It has two benefits over the fixed checklist. Firstly, everyone (with access) can manage the checklist and you don’t need to touch the flow with every change. And secondly, you can have multiple checklists.
This post describes just a simple solution where all tasks have the same checklist. But if you add another column to Excel / SharePoint, you could lookup checklists for specific tasks. It might be also a nice addition when you import task from Excel to Planner.
There’s also a post on using SharePoint list as a template for multiple Planner tasks and checklists or adding attachments to Planner tasks.
You can even follow up with a flow to send notifications for completed tasks in a specific bucket.
Been trying to get this flow working for a few weeks, I keep getting stuck on the Create a Task step, when i get to the Update a Planner Task it keeps adding “Apply to Each” Step. I’m not sure what I’m doing wrong. Any help would be greatly appreciated.
Hello Jose,
if it keeps adding ‘Apply to each’ then one of the inputs in ‘Update task details’ is an array and Power Automate wants to process all the items in that array (all rows from Excel table or all SP items). I’d suspect a ‘Description’ as the ‘Id’ from the ‘Create a task’ and the variable don’t need any loop.
Check the source of the ‘Description’, it should have a different source than the checklist: another Excel table or another SP list. If it were in the same Excel table / SP list then Power Automate would add ‘Apply to each’ to loop through all the rows/items just to process all possible ‘Descriptions’, even if the ‘Description’ was only on 1 of the rows.
Also, keep in mind that the solution in this post is designed to create only a single Planner task with multiple checklist items, therefore, it expects only a single ‘Description’ for all the tasks. And if it’s only a single description in the Excel table/SP list then the ‘Apply to each’ doesn’t matter: one item = one run within ‘Apply to each’.
Tom, you are a magician! Thank you so much! Got my flow to work flawlessly! Thank you, subscribed to your newsletter. Keep up the great work!
Tom – Do you know how to copy a checklist (or reference/attachment list) from one Planner task to another (instead of from Excel or a List)?
Overall, I’m trying to copy all of the tasks from a template Planner into our team’s existing Planner. The basic Teams/Planner functionality won’t work because when you copy the template Planner, it creates an entirely new Planner. I want to copy these tasks into an existing Planner.
I have the basic functionality working (from a Power Automate template). It copies all of the tasks over, including the Description, assigns them to the person I choose, etc. But I can’t, for the life of me, figure out how to copy the Checklist from the template task to the new one. It seems like you should be able to just refer to the Checklist collection object, but Power Automate fails when I do that.
I tried the approach in this article as well. I created an Array variable and tried spinning through the Checklist collection and appending each entry to the Array variable. But it failed with that as well, something about an Object type versus an Array.
Any thoughts or ideas you have would be greatly appreciated. It seems like I’m so close, but just can’t figure out how to manipulate the Checklist object.
Thank you!
Hello Michael,
you can use the approach from this article using an array variable. ‘Get task details’ will give you an array ‘Checklist’ with all the checklist items for given task. If you loop through that array, you’ll get the ‘Checklist Id’ and ‘Checklist Title’ for each item. Use it to append the checklist array variable as shown in this article, and then use the array variable to update the checklist in the new task. Just don’t forget to empty the array variable before you start adding id’s and titles of the checklist items from another task (set it to null expression before the ‘Apply to each’ through the ‘Checklist’ array).
Hi Tom – thanks for all your posts – your blog is a fantastic resource!
This is great, but the challenge I see is how do I ensure that checklist Ids are unique? I’m got a flow conceptually capturing a checklist from one task to put in another, but it’s failing as a I can’t use duplicate Checklist item Ids.
Hello Chris,
you’ve got two options, either use rand(…) to create a random number, or guid() to get a full guid for the checklist item id: https://tomriha.com/how-to-create-a-unique-identifier-in-your-power-automate-flow/
This post is exactly what I need help with! However, when I attempt to iterate though the Checklist I get the error “ExpressionEvaluationFailed. The execution of template action ‘Apply_to_each_3’ failed: the result of the evaluation of ‘foreach’ expression ‘@body(‘Get_task_details_from_Template_Task’)?[‘checklist’]’ is of type ‘Object’. The result must be a valid array.” upon running. I’ve converted it to an array using array() but that doesn’t seem to fix it. Any thoughts?
Hello John,
that looks like some strange, random error, did you try to remove the dynamic content and add it again? When you check the flow run history the checklist should be always an array starting with [ and ending with ].
Comment
Thanks a lot Tom for this brilliant solution. Unfortunately I couldn’t apply this exactly to my situation because I have one SP list in which I have all the Planner tasks (which repeats) and all the checklists. That’s why in my Apply to Each loop Power Automate tries to create a task for every single row. How do you think I can somehow group by those tasks and instead of creating endless number of tasks just create one?
Hello Erhan,
I just published a post to answer your question, I hope it helps: https://tomriha.com/use-sharepoint-as-planner-task-checklist-template-in-power-automate/
Shame that the current Power Automate action doesn’t quite support all 25 coloured tags yet 😂
I try to get checklist items from Forms. I have question where people can choose multiple options and each of those should become individual checklist items. I think I know how to split array and run apply each but I can’t figure what to but in checklist ID, can you help me?
Hello Riku,
you can ‘Initialize variable’ type ‘Number’ that you’ll use as the checklist item ID. Set the initial value to 0, use it as the checklist item ID when appending them to the array, and after each ‘Append…’ (still inside the ‘Apply to each’) increment the variable by 1 (using the ‘Increment variable’ action).
Hi Tom,
Any way of putting the Multiple Dynamic checklist in Same Spreadsheet of the Excel (Not in another Table or spreadsheet) ? so that everything is one Spreadsheet of Excel.
Hello Abhijeet,
if I undestand correctly then you could build an Excel sheet in the same format as the SharePoint list in this post and always filter the desired specific checklist items.
Hi Tom,
Thank you for all the content on your website. I am new to Automate (and Planner) and keep coming back to your website for help! I have created my first flow following https://tomriha.com/how-to-import-tasks-from-excel-into-planner-with-power-automate/ which is working well. I am now trying to follow the instructions on this page to add checklists from Excel however to date have not been able to. I would appreciate your help, below are a few questions:
1. Should this flow be added onto the flow on the link above or be separate? If separate, what is above initialize variable in the example above? I have tested both and currently have it as a separate floe with “Manually trigger a flow” above “Initialize variable”
2. In the screenshot of the flow you have provided step 4 “Create a task” (preview) is a new step however on mine “Create a task” appears within another “Apply to each”, could this be the issue? This is the only difference I can see between your flow and mine.
Hello Hayley,
1. it can be added to the flow on the original link, the steps you have to add to the flow are the variable, the action to get the checklist items and then the loop to store the checklist items in the variable. The actions to create the Planner task and update the task details are almost the same, only adding the variable as the checklist items in the ‘Update task details’. But if you’re creating checklists for multiple Excel rows, you’ll need one more action ‘Set variable’ to set the variable to expression ‘null’ before the checklist “appending” loop.
2. your solution will have 2x ‘Apply to each’. 1 apply to each after the ‘List rows present in a table’ where you process the rows one by one, and inside of it another ‘Apply to each 2’ to append the checklist items in the variable.
It’ll be similar in the structure to the flow using SharePoint as the tasks template.
I’m unable to grab the “Task ID” after the delay function. All I see is a drop down list with older tasks.. How do I grab the newly created Task ID?
Rick, scroll down to the bottom of the list and choose “Enter custom value”, then you should be able to choose the Task ID from the previous step.
The issue I’m encountering is figuring out how to toggle task checklists to display on the task card in Planner from a task created in Power Automate. In Planner, if you open the task there is a checkbox for “show on card” to display the checklist items. However, I can’t manage to find any way to toggle that box to be checked using the tasks/Planner functions within Power Automate.
Hello Patrick,
Theoretically there could be some API call that would do that, but I always used only the default Planner actions and they don’t offer such an option.
I’ve used this solution to make this work: https://powerusers.microsoft.com/t5/Building-Flows/Show-on-Card-Microsoft-Planner/td-p/1282978
(I hope linking to external articles is OK!)
Hi Tom,
I wanted to ask how can you make sure when you are creating a recurring task with a checklist through power automate, the checklist is previewed when it comes through to planner?
(show on cart is ticked) i can do it manually when tasks come through but can not figure our an automated way,
Hello Anna-Maria,
unfortunately I didn’t find any way how to do it, I don’t think it’s doable with Power Automate.
Thank you for getting back to me Tom, I have another question and I feel like i tried everything already, the flows are running manually when i test them but are not coming through automatically on a given day for some reason, is there smth you can suggest for me to do to make sure that runs?
Hello anna-maria,
Power Automate has a ‘Recurrence’ trigger for scheduled automated runs. You must start the flow with that trigger where you configure when should the flow run – daily, weekly, monthly, etc.
This solution worked for me for description – haven’t tested with checklist yet, but, the theory is sound: https://powerusers.microsoft.com/t5/Building-Flows/Show-on-Card-Microsoft-Planner/td-p/1282978
Is it possible to import the checklists the same way they export
ie in one cell seperated by ; item1;item2
Hello Kevin,
you can use the split(…) expression to split the string in the cell into an array and then loop through that array (https://tomriha.com/how-to-split-string-by-the-first-space-in-power-automate/). Use the ‘Current item’ as the checklist item title, and the guid() expression for the id.
I keep getting the error “key with checklist is duplicated. Duplicate values are not supported”. Help!
Hello Samantha,
are you using the guid() expression as the checklist item id? If the checklist items are in a single SharePoint item then you can’t use the SharePoint item id as that one would be the same for all the checklist items.
Thanks for this! Exactly what I just needed, and it worked on the first try.
Hi! I’m running an automation that creates a task, then populates the task description with dynamic info submitted by MS Form. That part’s working just great. I’d also like to add a static checklist to the task, but whenever I do, I get an error.
If I try to add the checklist in the same “update task” step as the description, I get this error:
–>Property checklist in payload has a value that does not match schema.
If I add a second update task, just for the checklists, I get an error that the data isn’t in JSON format.
Any thoughts? Thanks!
Hello April,
are the checklist items in the correct format as described in the article? It must be an array where each checklist item will have the same format:
{", ",
"id": "
"title": "
"isChecked": false
}
Can you notify a specific person when a specific checklist item is complete? If so, how can I set this up?
Hello Michelle,
there’s no easy solution to do that, it would be possible using similar solution as described here: https://tomriha.com/how-to-get-notified-when-planner-task-was-reassigned-power-automate/, but it would mean storing all the checklist items somewhere else and then checking on regular basis. It’s not possible to get a real time information.
Hello Tom,
I am working on a Excel to Planner flow. I have several tasks to be assigned with several checklists each. However when following your tuto, I get a problem :
The checklist elements are added (e.g.: the 1st task takes its 4 check, the 2nd takes the 4 of the 1st task and its 4, the 3rd takes the 4 of the 1st + the 4 of the 2nd + its 4, etc)
Do you have an idea of how to manage with this ?
Thx for your help
Hilaire Givelet
Hello Hilaire,
you probably don’t set the variable with the checklist items (checklist_array variable in the post) to ‘null’ at the beginning of each loop.
Can you pls show a video along with a corresponding excel sheet to show this flow (for us begginers). Thank you
I posted my checklist issue here
https://powerusers.microsoft.com/t5/General-Power-Automate/Creating-checklist-in-Update-Task-Details/m-p/1705560#M98793
Hi Tom,
I don’t get the “Append to array variable” – “Value” bit.
Where does Id and Title come from?
Regards, Rudolf
Hello Rudolf,
the title comes from the tasks source, let it be an Excel file or a SharePoint list; ID is then some unique id, it can be a separate column in the Excel file or the default SP item id. Or you can use the guid() expression for the id which might be the easiest option.
I figured out how to make the checklist on the task by following the fixed checklist steps (which works great!) but I can’t seem to get them to show on the card since the “show on card” box is not checked. Is there a way that I can have that box checked when the flow inserts the task?
Hello Devon,
I’m not aware of any option to check the ‘show on card’ checkbox from a flow.
Hi Tom,
I am relatively new to Automate and so I’m struggling to follow the flow here. Any chance you have a video showing the steps from start to finish?
My TEAMs all do similar tasks but we have different steps to complete so I am trying to create different checklists that will populate depending on who the task is assigned to.
Hello Pete,
I’m not much of a video guy, your flow seems more complicated than this one but you can still do it with some configuration list: https://tomriha.com/use-sharepoint-as-planner-task-checklist-template-in-power-automate/
Hi,
I would like to ask for some help on that.
I have a list of 11 tasks where each one has its own checklist items and all that should be added to all my new bukets.
There is a way to use power automate to Create the bucket and add all tasks with the checklists?
I really appreciate any help with that!
Hello Edson,
try to check this article, although it expects that the buckets will already exist: https://tomriha.com/import-planner-tasks-with-checklists-into-various-buckets-power-automate/
I didn’t work with Planner for some time so I don’t remember if you can create new buckets within a flow, that way you could create bucket -> get its id -> use it to create the task.
Hi Tom,
This flow was very helpful and exactly what I needed. I was wondering if it’s possible to add checklists based on different tasks?
For example, if I have two different tasks that require different check lists, is there a way to set something up that essentially does “if Task 1, add checklist 1”, “if Task 2, add checklist 2”
Appreciate any help or guidance you can provide.
Hello Jon,
you can do that, but you’ll need some kind of a template that’ll tell you the task name and the checklist items, e.g. a SharePoint list (https://tomriha.com/use-sharepoint-as-planner-task-checklist-template-in-power-automate/).
Hi Tom,
Thanks for this post. I’ve been struggling when I want to use multiple columns with items. For some reason it does not work to put the column name in the FilterQuery when I just want one column.
Also, when I want more columns, say 1 and 2, where do or how do I insert column 2 in the schema?
{
“id”: “”,
“title”: “”,
“isChecked”: false
}
Hello Stefaan,
the solution is designed for 1 column with the task name only, I’m not sure what you mean by using 2 columns.
Is there a way to create a task list that will be attached to each bucket without the use of Power Automate? Like if I wanted to use the same checklist over and over in each new task instead of typing it all out each time but not use Power Automate as my office doesn’t support it I guess.
Hello Heather,
I never looked for other ways to do that, maybe there’s some option but I was happy with using Power Automate to do it.
Hi Tom,
I have tried to create a static list of “checklist” items, that I want inserting into each new card created, but get the following error: Flow save failed with code ‘OpenApiOperationParameterValidationFailed’ and message ‘Input parameter ‘body’ validation failed in workflow operation ‘Update_task_details’: The parameter with value ‘”@items(‘Apply_to_each’)”‘ in path ‘body/checklist/1/isChecked’ with type/format ‘Object’ is not convertible to type/format ‘Boolean’.’.
Any help you could provide?
Hello Sarah,
the error is telling you that you’re trying to use the whole currently processed item as the value for isChecked, but the item itself contains more than just true/false, it’s a whole object. You can use only a specific property from the whole object.
Hi Tom,
is there a way to add the checklist to a specific task or say the task starts with a particular text like TODO?
Hello rajeev,
if you find the task and get its ID you can add anything.
His Tom,
All seems to be working, but the checklist isn’t added because I get the message “The request exceeded allowed limits.” How should I fix this issue?