It’s good that Microsoft is upgrading Outlook to make it work better with Teams work. That is, until you want to attach files to invitations for Teams meetings sent from Outlook. Despite being a feature supported by Outlook for as long as I can remember, the functionality is not supported by Teams. The lack is noted in Teams User Voice and many other complaints in other sites. So far, the Teams development group hasn’t commented.
Figure 1 illustrates the problem. We’ve created a Teams meeting in OWA and dragged an XLS attachment to add it to the meeting. This is a natural action for Outlook users that’s replicated millions of times weekly (if not daily).
Figure 1: An Excel worksheet is added to a Teams meeting invitation created in OWA
When the meeting invitation is sent, it is delivered to recipient mailboxes and added to their calendars. The meeting details are synchronized from the mailboxes to the Teams calendar app, which displays them in Teams (Figure 2). We can see that the text included in the invitation is present, but the spreadsheet attachment is missing. In fact, the attachment is in the calendar folder in the mailbox and can be accessed using an Outlook client, but it’s ignored by Teams.
Figure 2: No trace of the Excel attachment appears in the Teams meeting
Teams Prefers Cloudy Files
On the surface, it seems odd that Microsoft allows such a feature gap to exist. However, the Teams architecture is very different to Outlook, and that’s where the root of the issue might be.
Exchange has always supported message attachments. For years, including attachments in email was the only reliable way to transmit files between people. Microsoft started on the path to convert Office 365 users away from traditional attachments to “cloudy attachments” soon after the introduction of Office 365 Groups (now Microsoft 365 Groups). The almost-guaranteed availability of SharePoint Online and OneDrive for Business make it more feasible to ask people to store documents in the cloud and add links to attachments in email instead of physical attachments. Over time, Microsoft has improved link management across Office 365 to a point where links are consistent across all the major apps.
SharePoint Online is now used by over 200 million Office 365 users and a lot of that growth is due to the popularity of Teams. Every team has its own SharePoint team site, and every user has OneDrive for Business. Teams uses SharePoint and OneDrive to store and share files, meaning that there’s no need to accommodate attachments on local drives, which is where many attachments added to email originate.
Adding Files to Teams Meetings
The net result is that two ways are available to include files in Teams meetings:
The meeting organizer can generate links to files and include them in the meeting invitation. They can also update meeting details afterwards to include links to other files. The meeting organizer must set sharing permissions to allow participants to access the shared files.
After the meeting is created, any tenant user can upload files to the Files section of the Teams meeting workspace. Invitees outside the organization can’t share files in this way. However, they can share links to documents through chat after the meeting starts (they’ll have to make sure that the links grant access to meeting participants).
If the information contained in an attachment isn’t very long, you can also cut and paste it into the body of the invitation. This is acceptable for text but less satisfactory for other types of documents.
To share files, participants access the meeting through the Teams calendar app and upload the files to the workspace (Figure 3). The shared files become part of the meeting chat.
Figure 3: Files shared for a Teams meeting
The files are uploaded to the Microsoft Teams Chat Files folder in the sharer’s OneDrive for Business account and shared with meeting participants. Note that if other people are added as meeting participants after a file is shared, the owner of the file must update the direct access sharing settings to include the new participant (Figure 4). If they don’t, they won’t be able to access the file.
Figure 4: Updating sharing permissions for a file shared in a Teams meeting
After a file is uploaded, it can’t be removed from the meeting chat using the Teams calendar app. If someone makes a mistake, they can either move the file from the Microsoft Teams Chat Files folder, remove it from their OneDrive for Business account, or change the permissions on the file. The file is still listed in the meeting, but participants won’t be able to access it (Figure 5).
Figure 5: A file shared in a Teams meeting is no longer available
A Gap Microsoft Should Close
Although it’s understandable that Teams would like to use cloudy attachments everywhere, Microsoft should close the functionality gap which now exists when Outlook users include attachments in Teams meeting invitations. It wouldn’t take much code to extract attachments from invitations and create copies in OneDrive for Business.
Using technology to transform attached files into cloudy attachments seems like a reasonable step to remove some user frustration and connect Outlook and Teams together more seamlessly. We wait to see what Microsoft will do.
Looking for more information about why Teams works the way that it does? Subscribe to the Office 365 for IT Pros eBook to take advantage of the years of experience our writers have in understanding and interpreting what Microsoft does (or doesn’t do).
9 Replies to “How to Share Files in Teams Meetings – It’s Different to Outlook”
A good read as always. I’ll be sharing.
I’ve a question about Onedrive sharing in the context of your article, when a person leaves the org and have shared docs in this way, presumably the content is gone?
The content isn’t gone unless you delete the OneDrive account. The standard workflow to remove an account allows an admin to nominate someone else to receive permission over the OneDrive account of a leaver, so you can also manage the files that way. But most meeting files are needed for the meeting and probably working copies of ideas, projects, etc. which will end up in final versions stored in SharePoint Online.
It depends on the meeting. For personal meetings, shared files are in the OneDrive account of the people who share then. For channel meetings, they’re probably in SharePoint. People can get to the location from which the files are shared.
{"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}
A good read as always. I’ll be sharing.
I’ve a question about Onedrive sharing in the context of your article, when a person leaves the org and have shared docs in this way, presumably the content is gone?
The content isn’t gone unless you delete the OneDrive account. The standard workflow to remove an account allows an admin to nominate someone else to receive permission over the OneDrive account of a leaver, so you can also manage the files that way. But most meeting files are needed for the meeting and probably working copies of ideas, projects, etc. which will end up in final versions stored in SharePoint Online.
Great post. How long would the files shared in a meeting be available for all meeting participants?
It depends on the meeting. For personal meetings, shared files are in the OneDrive account of the people who share then. For channel meetings, they’re probably in SharePoint. People can get to the location from which the files are shared.
how is it now, any changes?