In a May 10 post in the Microsoft Technical Community, Microsoft discussed some new task management capabilities available through Loop Task List components that now surface in Planner. You can create the task list component in clients like OWA, Outlook desktop, and Teams chats or meeting agendas. Figure 1 shows a typical example with a task list component in the body of an OWA message. According to message center notification MC572515 (June 5), Microsoft will start to roll out the necessary changes in mid-June and complete worldwide deployment in mid-July 2023.
Figure 1: A Loop task list component in an OWA message
The big change here is the option to “Open in Planner” available from the […] menu at the top of the task list. In the past, Microsoft talked about roster containers (plans without Microsoft 365 groups) and a potential integration between lightweight plans and fluid (now Loop) components. It looks like being able to open the tasks created in a Loop task component in Planner is the outcome of that work.
Graph Planner Containers
The Microsoft Graph defines a planner container resource and notes that two types of planner containers are currently supported: plans contained in a Microsoft 365 group and plans contained in a planner roster.
In this context, the planner roster container holds the set of Loop tasks, the roster (of users authorized to work with the plan) are those who share the Loop component, and the tasks in the container are those created in the Loop component.
Working with Roster Containers in Planner
Figure 2 shows the plan after opening it in Planner. The tasks listed in the Loop task list are present and assigned to the right people. Clicking the Loop icon to the right opens the Loop component using the same browser interface as used if you open a Loop component from OneDrive for Business.
Figure 2: Loop tasks in the Planner app
Most Planner plans are associated with a Microsoft 365 group. When working with tasks from a roster container, some features like comments and adding document attachments aren’t available. However, you can add checklist items, labels, update the task description, change the dates, status, and task priority, and add a URL to a web page (Figure 3). You can also add new members to the roster by assigning a task to someone that’s not already in the roster.
Figure 3: Updating a Loop task through Planner
While the basics of tasks are synchronized (including new tasks added in Planner), don’t expect all the changes made in Planner to synchronize back to the Loop task list component. The Microsoft support article says that tasks in task list “stay in sync with a plan in Planner.” From this we understand that the roster container is independent of the Loop component. This makes sense because the Loop task object is simpler and doesn’t support the same properties as Planner does. The Planner-specific properties are accessible through the items stored in the roster container, and changes made to the task name, due date, and roster synchronize with Loop and appear in the component. If you add someone to a roster container, you’ll be prompted by Loop to grant access to that person to allow them to interact with the Loop component.
Tasks Everywhere
Because Loop can expose its tasks in Planner, the tasks become accessible elsewhere within the Microsoft 365 ecosystem. Figure 4 shows one of the tasks from the Loop task list opened through the To Do for iOS app (left) where it’s listed in the Assigned to me list. On the right, the Loop for iOS app opens the same task.
Figure 4: Loop task in To Do and Loop for iOS
Microsoft refers to the ability to access tasks through different apps as “moving components around different surfaces,” which I guess means that the task objects are available to users via their app of choice.
Embedding Loop More Deeply
After waiting so long to see what Planner meant by roster containers, it’s nice to see an actual implementation. I’m not sure quite how many people will hop from one app to another after starting with a Loop task list, but it’s certainly possible if you want to do it.
Insight like this doesn’t come easily. You’ve got to know the technology and understand how to look behind the scenes. Benefit from the knowledge and experience of the Office 365 for IT Pros team by subscribing to the best eBook covering Office 365 and the wider Microsoft 365 ecosystem.
it’s annoying that these tasks do not appear in the outlook task section – I thought MS were moving towards to-do being the store location for all tasks ?
It is a synchronization if the essential properties of the original item (the Loop task list) are replicated. The fact that Planner has a richer item structure doesn’t mean that the essentially much simpler Loop task list should share the same structure.
A test of this today and tasks added to the plan in planner do populate the loop (example Follow-up tasks >Meeting notes Teams loop item) – but task item stays in the loop list but no longer syncs if moved to a different bucket or plan – hopefully this will be ironed out very soon.
For each of our work streams we have an individual Planner Plan per Teams Channel. If I create a loop task list from a team meeting where we discuss multiple projects it would be fantastic to ‘transfer’ these tasks into the correct project plan and still keep them in sync. There is a subtle difference between copying and moving tasks in planner between plans but it would be good to have a third form of transfer eg ‘linked clone’ that keep in sync with each other. Otherwise we are going to have to rethink how our plans are created and structured as loop task lists.
{"id":null,"mode":"button","open_style":"in_modal","currency_code":"EUR","currency_symbol":"\u20ac","currency_type":"decimal","blank_flag_url":"https:\/\/office365itpros.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/blank.gif","flag_sprite_url":"https:\/\/office365itpros.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/flags.png","default_amount":100,"top_media_type":"featured_image","featured_image_url":"https:\/\/office365itpros.com\/wp-content\/uploads\/2022\/11\/cover-141x200.jpg","featured_embed":"","header_media":null,"file_download_attachment_data":null,"recurring_options_enabled":true,"recurring_options":{"never":{"selected":true,"after_output":"One time only"},"weekly":{"selected":false,"after_output":"Every week"},"monthly":{"selected":false,"after_output":"Every month"},"yearly":{"selected":false,"after_output":"Every year"}},"strings":{"current_user_email":"","current_user_name":"","link_text":"Virtual Tip Jar","complete_payment_button_error_text":"Check info and try again","payment_verb":"Pay","payment_request_label":"Office 365 for IT Pros","form_has_an_error":"Please check and fix the errors above","general_server_error":"Something isn't working right at the moment. Please try again.","form_title":"Office 365 for IT Pros","form_subtitle":null,"currency_search_text":"Country or Currency here","other_payment_option":"Other payment option","manage_payments_button_text":"Manage your payments","thank_you_message":"Thank you for supporting the work of Office 365 for IT Pros!","payment_confirmation_title":"Office 365 for IT Pros","receipt_title":"Your Receipt","print_receipt":"Print Receipt","email_receipt":"Email Receipt","email_receipt_sending":"Sending receipt...","email_receipt_success":"Email receipt successfully sent","email_receipt_failed":"Email receipt failed to send. Please try again.","receipt_payee":"Paid to","receipt_statement_descriptor":"This will show up on your statement as","receipt_date":"Date","receipt_transaction_id":"Transaction ID","receipt_transaction_amount":"Amount","refund_payer":"Refund from","login":"Log in to manage your payments","manage_payments":"Manage Payments","transactions_title":"Your Transactions","transaction_title":"Transaction Receipt","transaction_period":"Plan Period","arrangements_title":"Your Plans","arrangement_title":"Manage Plan","arrangement_details":"Plan Details","arrangement_id_title":"Plan ID","arrangement_payment_method_title":"Payment Method","arrangement_amount_title":"Plan Amount","arrangement_renewal_title":"Next renewal date","arrangement_action_cancel":"Cancel Plan","arrangement_action_cant_cancel":"Cancelling is currently not available.","arrangement_action_cancel_double":"Are you sure you'd like to cancel?","arrangement_cancelling":"Cancelling Plan...","arrangement_cancelled":"Plan Cancelled","arrangement_failed_to_cancel":"Failed to cancel plan","back_to_plans":"\u2190 Back to Plans","update_payment_method_verb":"Update","sca_auth_description":"Your have a pending renewal payment which requires authorization.","sca_auth_verb":"Authorize renewal payment","sca_authing_verb":"Authorizing payment","sca_authed_verb":"Payment successfully authorized!","sca_auth_failed":"Unable to authorize! Please try again.","login_button_text":"Log in","login_form_has_an_error":"Please check and fix the errors above","uppercase_search":"Search","lowercase_search":"search","uppercase_page":"Page","lowercase_page":"page","uppercase_items":"Items","lowercase_items":"items","uppercase_per":"Per","lowercase_per":"per","uppercase_of":"Of","lowercase_of":"of","back":"Back to plans","zip_code_placeholder":"Zip\/Postal Code","download_file_button_text":"Download File","input_field_instructions":{"tip_amount":{"placeholder_text":"How much would you like to tip?","initial":{"instruction_type":"normal","instruction_message":"How much would you like to tip? Choose any currency."},"empty":{"instruction_type":"error","instruction_message":"How much would you like to tip? Choose any currency."},"invalid_curency":{"instruction_type":"error","instruction_message":"Please choose a valid currency."}},"recurring":{"placeholder_text":"Recurring","initial":{"instruction_type":"normal","instruction_message":"How often would you like to give this?"},"success":{"instruction_type":"success","instruction_message":"How often would you like to give this?"},"empty":{"instruction_type":"error","instruction_message":"How often would you like to give this?"}},"name":{"placeholder_text":"Name on Credit Card","initial":{"instruction_type":"normal","instruction_message":"Enter the name on your card."},"success":{"instruction_type":"success","instruction_message":"Enter the name on your card."},"empty":{"instruction_type":"error","instruction_message":"Please enter the name on your card."}},"privacy_policy":{"terms_title":"Terms and conditions","terms_body":null,"terms_show_text":"View Terms","terms_hide_text":"Hide Terms","initial":{"instruction_type":"normal","instruction_message":"I agree to the terms."},"unchecked":{"instruction_type":"error","instruction_message":"Please agree to the terms."},"checked":{"instruction_type":"success","instruction_message":"I agree to the terms."}},"email":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email address"},"success":{"instruction_type":"success","instruction_message":"Enter your email address"},"blank":{"instruction_type":"error","instruction_message":"Enter your email address"},"not_an_email_address":{"instruction_type":"error","instruction_message":"Make sure you have entered a valid email address"}},"note_with_tip":{"placeholder_text":"Your note here...","initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"empty":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"not_empty_initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"saving":{"instruction_type":"normal","instruction_message":"Saving note..."},"success":{"instruction_type":"success","instruction_message":"Note successfully saved!"},"error":{"instruction_type":"error","instruction_message":"Unable to save note note at this time. Please try again."}},"email_for_login_code":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email to log in."},"success":{"instruction_type":"success","instruction_message":"Enter your email to log in."},"blank":{"instruction_type":"error","instruction_message":"Enter your email to log in."},"empty":{"instruction_type":"error","instruction_message":"Enter your email to log in."}},"login_code":{"initial":{"instruction_type":"normal","instruction_message":"Check your email and enter the login code."},"success":{"instruction_type":"success","instruction_message":"Check your email and enter the login code."},"blank":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."},"empty":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."}},"stripe_all_in_one":{"initial":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"empty":{"instruction_type":"error","instruction_message":"Enter your credit card details here."},"success":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"invalid_number":{"instruction_type":"error","instruction_message":"The card number is not a valid credit card number."},"invalid_expiry_month":{"instruction_type":"error","instruction_message":"The card's expiration month is invalid."},"invalid_expiry_year":{"instruction_type":"error","instruction_message":"The card's expiration year is invalid."},"invalid_cvc":{"instruction_type":"error","instruction_message":"The card's security code is invalid."},"incorrect_number":{"instruction_type":"error","instruction_message":"The card number is incorrect."},"incomplete_number":{"instruction_type":"error","instruction_message":"The card number is incomplete."},"incomplete_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incomplete."},"incomplete_expiry":{"instruction_type":"error","instruction_message":"The card's expiration date is incomplete."},"incomplete_zip":{"instruction_type":"error","instruction_message":"The card's zip code is incomplete."},"expired_card":{"instruction_type":"error","instruction_message":"The card has expired."},"incorrect_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incorrect."},"incorrect_zip":{"instruction_type":"error","instruction_message":"The card's zip code failed validation."},"invalid_expiry_year_past":{"instruction_type":"error","instruction_message":"The card's expiration year is in the past"},"card_declined":{"instruction_type":"error","instruction_message":"The card was declined."},"missing":{"instruction_type":"error","instruction_message":"There is no card on a customer that is being charged."},"processing_error":{"instruction_type":"error","instruction_message":"An error occurred while processing the card."},"invalid_request_error":{"instruction_type":"error","instruction_message":"Unable to process this payment, please try again or use alternative method."},"invalid_sofort_country":{"instruction_type":"error","instruction_message":"The billing country is not accepted by SOFORT. Please try another country."}}}},"fetched_oembed_html":false}
Where is the data stored for loop? In users Onedrive or in a 365 group?
Loop components are stored in the author’s OneDrive for Business account. See https://office365itpros.com/2021/11/08/use-microsoft-loop-teams-chat/
it’s annoying that these tasks do not appear in the outlook task section – I thought MS were moving towards to-do being the store location for all tasks ?
You could also say that the Tasks in Teams app is the one place to go to get task info…
It’s no synchronization if it’s not two way. Tasks added to the plan from teh planner interface don’t show in the loop. That is not a sync.
It is a synchronization if the essential properties of the original item (the Loop task list) are replicated. The fact that Planner has a richer item structure doesn’t mean that the essentially much simpler Loop task list should share the same structure.
A test of this today and tasks added to the plan in planner do populate the loop (example Follow-up tasks >Meeting notes Teams loop item) – but task item stays in the loop list but no longer syncs if moved to a different bucket or plan – hopefully this will be ironed out very soon.
For each of our work streams we have an individual Planner Plan per Teams Channel. If I create a loop task list from a team meeting where we discuss multiple projects it would be fantastic to ‘transfer’ these tasks into the correct project plan and still keep them in sync. There is a subtle difference between copying and moving tasks in planner between plans but it would be good to have a third form of transfer eg ‘linked clone’ that keep in sync with each other. Otherwise we are going to have to rethink how our plans are created and structured as loop task lists.