New Teams Channel Limit Supports Any Combination of 1,000 Regular and Shared Channels
On July 19, Microsoft announced (MC649926) an increase in the current per-team channel limits. Instead of 200 regular channels, 200 shared channels, and 30 private channels, the new limits are a combination of 1,000 regular and shared channels plus 30 private channels. The update is covered in Microsoft 365 Roadmap ID 127496 and deployment to Teams preview tenants (targeted release) starts in late July (now). Standard release tenants and GCC will receive the update in mid-August.
A Thousand Teams Channels Creates Greater Flexibility or a Bigger Mess
According to Microsoft, the new limit allows “teams to have greater flexibility when creating a new channel.” That’s certainly true, if you define flexibility in terms of being able to create large numbers of channels in a team. I’m not convinced that this is the case. I see too many examples of unwanted, unused, and desolate channels in the tenants I work in. Any channel that hasn’t been used in the last two months falls into this category, unless it’s deliberately kept as an archive of some activity.
The simple fact is that once you give people a lot of choice, you create the opportunity for bad choices. In the case of Teams, a team with 20 channels, each with a clear purpose and intent, is more likely to keep conversations together in the most appropriate channel than if team members had 200 channels to choose from. My experience is that it takes huge discipline for team members to take the time to select the best channel for a new conversation. But I’ve been known to be wrong.
Creating a Thousand Channels in a Team
To see what a team looks like with a thousand channels, I wrote some PowerShell using cmdlets from the MicrosoftTeams module to create a team and populate it with 999 extra channels (a new team always has a General channel). Here’s the code:
Connect-MicrosoftTeams
$Team = (New-Team -DisplayName "Test Team with 1000 channels" -MailNickName 'Test.Team.1000' -Description "Team with 1,000 channels" -Visibility Private -Owner James.Ryan@office365itpros.com -RetainCreatedGroup:$True)
For ($i=2; $i -le 1000; $i++) {
$ChannelName = ("Channel Number {0}" -f $i)
Write-Host ("Creating {0}" -f $ChannelName)
$ChannelDescription = ("Channel {0} created on {1}" -f $i, (Get-Date -format g))
New-TeamChannel -GroupId $Team.GroupId -DisplayName $ChannelName -Description $ChannelDescription
Sleep -Seconds 10
}
Figure 1 shows the code in action. My first attempt failed after creating 51 channels, probably due to throttling. Adding the ten seconds delay between the creation of each channel allowed the script to complete.
Figure 1: Creating 1,000 channels for a team
I used V5.4 of the Teams PowerShell module to test cmdlets against the team with a thousand channels,. Some cmdlets need some tweaking to deal with the extra channels. The Get-TeamChannel cmdlet failed to complete:
[array]$Channels = Get-TeamChannel -GroupId $Team.GroupId -MembershipType Standard
Get-TeamChannel : Error occurred while executing
Code: BadGateway
Message: Failed to execute backend request.
The Get-TeamAllChannel cmdlet also errored out:
Get-TeamAllChannel -GroupId $Team.GroupId -MembershipType Standard
Get-TeamAllChannel : Error occurred while executing
Code: UnknownError
All of which means that my script to report all channels for every team in a tenant won’t work until Microsoft upgrades the Teams cmdlets. The good news is that the Teams cmdlets in the Microsoft Graph PowerShell SDK work (as do the clients)
The Teams admin center has a problem too (Figure 2).
Figure 2: The Teams admin center can’t display details of 1,000 channels
But remember, this is a preview for now and I expect the issues to be resolved with an update for the Teams admin center and the next monthly update for the Teams PowerShell module.
Teams Channel Client Experience
Listing a thousand channels works in the Teams desktop (including 2.1 beta), browser, and mobile clients. Figure 2 shows the browser client listing a bunch of channels and a new conversation being created in Channel 999.
Figure 3: Creating a new conversation in team channel 999
As you can imagine, navigating through a thousand channels is a painful experience. Users soon learn that they need to be selective and hide all but the channels they use frequently.
Someone Needs a Thousand Channels
I’m sure that some customer demand exists for thousand-channel teams. Right now, I can’t think of any scenario where I’d use so many channels, but Microsoft doesn’t tend to expand features without a reason, especially updates that impact clients. In any case, prepare to have the ability to equip teams with more channels in an update landing soon.
Learn how to exploit the data available to Microsoft 365 tenant administrators through the Office 365 for IT Pros eBook. We love figuring out how things work.
Hey Tony,
interesting info. Thanks for sharing. We’ve hit the limit of 30 private channels in some of our groups. Do you have more insight if that bar is raised as well? Possibly you could amend your test script and create private channels, since my tenant is not upgraded yet.
Would appreciate a feedback on this. Thanks much and keep up the good work.
Thanks Sebastian
I believe the 30 limit for private channels will stay as such for the immediate future. Microsoft is focused on shared channels rather than private channels.
Hi Tony,
Thanks for sharing. You mention that the channels will list/display in the client 2.1, but do you know if the restriction of auto-showing a channel will still be restricted to 10 channels, or if this has changed too?
Thanks Anna
{"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}
Hey Tony,
interesting info. Thanks for sharing. We’ve hit the limit of 30 private channels in some of our groups. Do you have more insight if that bar is raised as well? Possibly you could amend your test script and create private channels, since my tenant is not upgraded yet.
Would appreciate a feedback on this. Thanks much and keep up the good work.
Thanks Sebastian
I believe the 30 limit for private channels will stay as such for the immediate future. Microsoft is focused on shared channels rather than private channels.
Hi Tony,
Thanks for sharing. You mention that the channels will list/display in the client 2.1, but do you know if the restriction of auto-showing a channel will still be restricted to 10 channels, or if this has changed too?
Thanks Anna
A quick test shows that a team owner can mark more than 10 channels to auto-display, but I have no idea what limit exists. Feel free to test!