Message center MC408435 (4 August) covers a new way to start a Teams group chat. As you might recall, a group chat is one that has more than three participants. In this case, you’ll be able to start a new group chat by choosing an Exchange Online distribution list, a mail-enabled security group, or a Microsoft 365 group (Figure 1). Dynamic distribution lists cannot be used.
Roll-out is scheduled to start in late September 2022 (revised date from August 29) and to complete by late October. Microsoft hasn’t yet updated the general availability date of September 2022 published in Microsoft 365 roadmap item 62354.
After banging the drum to move people from email to Teams since 2016, it’s ironic that the Microsoft’s announcement notes that “organizations rely on distribution lists,” saying that DLs are “a tool to create groups of users that mirror organizational knowledge and workflows.” It’s almost like they were discussing Teams! Microsoft attempts to return to safer ground by noting that “leveraging DLs can increase workflow efficiency and bridge the gap between legacy knowledge of organization structure and a new Teams structure.” It’s a model example of how to confuse people, but it’s nice that Microsoft acknowledges the usefulness of distribution lists.
Starting a Group Chat
When you start the chat by entering the name of the group to use, Teams expands the selected group to find the members chat supports. This set includes tenant member accounts and guest accounts. Figure 2 shows what happened when I started a chat with the Microsoft 365 group that we use to manage the development of the Office 365 for IT Pros eBook. Teams added all the other authors and the technical editor to the chat, which made it very easy to get a conversation going.
Figure 2: Participants for a Teams group chat added from a Microsoft 365 group
The only downside is that we already have a fully-built-out team complete with many channels to host conversations. Perhaps creating a group chat from a team-enabled Microsoft 365 group is too much of a good thing.
Expanding Distribution Lists and Removing Unsupported Members
When it expands a distribution list, Teams includes the members of any nested distribution lists and drops the unsupported member types that can be in distribution lists such as public folders and mail contacts. Obviously, public folders are a poor choice as a chat participant. Mail contacts are excluded because although Teams supports federated chat with external users (which are what mail contacts represent), federated participants can’t be part of group chats.
Reflecting the current limit for group chat participation, Teams can import up to 250 people from a group (well, 249 plus the person starting the chat).
Tags Work Too
A tag can be system-defined or specific to a team. It’s a method to address a subset of team members. For instance, every month I remind chapter owners (identified by the writers tag) that’s it’s time to update chapters for the monthly release of the Office 365 for IT Pros eBook. You can also start a group chat using tags, a capability that I’m not sure many people use (maybe because tagging isn’t used heavily?).
Figure 3 shows how tags show up when you type the name of a person or group to start a chat. At the top of the list, you see the group chat I started from our Microsoft 365 group. Following that are a set of tags from different teams that I am a member of. Selecting the tag creates a new group chat with the tagged people as the participants. You can’t use the special Team Owners tag to start a group chat because it’s only available when you work with conversations inside a team.
Figure 3: Using Teams tags to address a new group chat
If you need to update the participant list of an existing group chat, you can do this with a tag. However, you can’t add participants from a distribution list, Microsoft 365 group, or mail-enabled security group after the initial creation of a group chat.
If you’re unsure of how heavily people use tags in the organization, you can grab the useful script discussed in this article.
Keep up to date with developments like being able to start Teams group chats in different ways by subscribing to the Office 365 for IT Pros eBook. Our monthly updates make sure that our subscribers understand the most important changes happening across Office 365.
Does this take into account the existing security of the DL? Can users that can’t send to a DL still send to it from Teams? Or can they still expand the DL list and send to it in Teams if they don’t have permission to send to the DL?
Do you mean a control like AcceptMessagesOnlyFrom? If so, these have no effect because the controls are implemented in the Exchange transport service and Teams doesn’t use that to resolve the members of a DL.
Yes, basically. We lock down most of our DLs, so we don’t want users to be able to bypass our security and use them in Teams to start a huge group chat. Is there a way to prevent this? Do we need to hide the DL membership? Or somehow limit Teams from expanding our DLs for users that don’t have permission to send to them?
Loading...
Hiding the group membership doesn’t work. I suspect that Teams uses a Graph API to read the membership and insert the members into the chat header. Right now, there’s not much you can do to stop Teams users starting chats with DLs that use Exchange-level controls to control access. Teams just ignores all the controls.
{"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}
Do chats that were initiated using a distribution group automatically update the list of members in the chat when the distribution group gets updated?
No. Population of chat participants is a one-time operation.
Does this take into account the existing security of the DL? Can users that can’t send to a DL still send to it from Teams? Or can they still expand the DL list and send to it in Teams if they don’t have permission to send to the DL?
Do you mean a control like AcceptMessagesOnlyFrom? If so, these have no effect because the controls are implemented in the Exchange transport service and Teams doesn’t use that to resolve the members of a DL.
Yes, basically. We lock down most of our DLs, so we don’t want users to be able to bypass our security and use them in Teams to start a huge group chat. Is there a way to prevent this? Do we need to hide the DL membership? Or somehow limit Teams from expanding our DLs for users that don’t have permission to send to them?
Hiding the group membership doesn’t work. I suspect that Teams uses a Graph API to read the membership and insert the members into the chat header. Right now, there’s not much you can do to stop Teams users starting chats with DLs that use Exchange-level controls to control access. Teams just ignores all the controls.
Thanks so much for testing this. I appreciate it.