Data Held in Exchange Online Mailbox Available On-Screen and as CSV File
Message center notification MC260565 published on 7 June brings news about a new tab to reveal Teams meeting attendance details. Well, Microsoft calls it a “reporting dashboard,” but in reality, it’s just a way to take the attendance report data and present it in a nice format (Figure 1). Only a meeting organizer can see this information. The new tab is rolling out and should be available in all tenants by the end of June.
Figure 1: Reviewing the attendance report for a Teams meeting
The feature works for both regular Teams meetings and webinars run as Teams meetings with the notable difference that information shown for webinars include the registration and attendance data, making it easy for webinar organizers to see how many registered attendees turned up, if any unregistered people attended, and so on.
Building on Existing Data
The attendance report is available after a meeting completes. However, before the existence of the Attendance tab, a meeting organizer had to download the information as a CSV file and use an application like Excel to view the content. Exactly the same data as shown in the attendance tab is available in the CSV file (Figure 2). It just looks nicer when viewed on-screen.
Figure 2: Teams attendance data exported in a CSV file
The ability to download attendance data to a CSV file remains useful as meeting organizers can load the information into whatever analysis program they wish to use for data slicing and dicing. For instance, webinar organizers could compare registration data to attendance data to look for clues why some registered attendees didn’t show up for an event.
Multiple Instances of Attendance Reports
People can join and leave meetings multiple times. When the organizer leaves a meeting, it finishes. However, the organizer can restart a meeting and people can rejoin it again. Each time the organizer starts a meeting, Teams generates a new version of the attendance report. All versions are available for viewing through a drop-down menu (Figure 3).
Figure 3: Multiple instances of a meeting generate multiple versions of the attendance report
When downloading the CSV data for attendance report from meeting details, Teams uses data for the latest version of the meeting. To access earlier versions, go to the meeting chat and download the information for the desired instance of the meeting from there.
Where Teams Stores Meeting Attendance Data
It’s always interesting to track down where Teams stores the data used for reports (and could be important from a compliance perspective). In this case, using the MFCMAPI utility to snoop around the folders in the non-IPM (hidden) part of the Exchange Online mailbox of the meeting organizer, we find a folder called /ApplicationDataRoot/93c8660e-1330-4e40-8fda-fd27f9eafe10/AttendanceReportV3Collection. The folder holds mail items (messages), all with a MAPI property called ArtifactEntriesJsonBlob. In this property we can see information about attendees for a Teams meeting (Figure 4).
Figure 4: Teams attendance report data stored in Exchange Online
Other attendance data is stored in the NGCParticipantsActivityCollection folder under the same root. However, the data in the items in the AttendanceReportV3Collection folder are formatted in the way the information appears in the attendance report, so I think this (and the folder name) are clues to the source of the data.
You might ask why does Teams store the attendance data for meetings in Exchange Online? Teams, like other Microsoft 365 applications, already stores many different types of information in Exchange Online mailboxes, including compliance records for chats and channel conversations and the text for meeting transcripts. Storing Teams data in mailboxes makes it available for indexing and searching by Microsoft Search (according to MC260749, transcript text will soon be searchable). Storing Teams data like this is a good example of the Microsoft 365 substrate in action.
Fit and Finish Change
Shipping the GUI to display attendance data some months after launching the new format for the attendance report and introducing the capability to run a Teams meeting as a webinar looks like applying some fit and finish. There’s nothing wrong in that. It makes the lives of people who document how applications work more difficult, but the Office 365 for IT Pros team is up to the challenge!
31 Replies to “Teams Introduces New Attendance Reporting Dashboard”
Ola my friend
Perfect, thank you so much for this fantastic news, I follow you on LinkedIn and I have a great admiration in your posts that helps us so much.
I have a question about information.
My company by default blocks the option to collect attendance reports in teams meetings.
This new way is how I get the report and how I can access this option as a Teams client and meeting creator, which way to access this function.
If your company blocks the generation of attendance reports (through the meeting policy), Teams won’t generate the report and you won’t be able to access it.
Hi Tony, thanks for this, great article. We have a requirement to get attendance data BEFORE the webinars finishes, is there a way we can achieve that? Thanks in advance for your reply.
Hi Tony,
I am unable to see “Attendance tab” on my teams window. I am trying get attendance,, I am the organiser, In the recurring event I am trying to extract for the month of June21. I am able to download few days, other days when i try to download, current day’s report gets generated. how can I see the history
hi…my meeting lasted 2 hours and 20 minutes, but the attendees are only shown to be in the meeting for 35 minutes. any idea why this happened? thank you
Thank you for this amazing article, I would like to know that recently I being the organizer, downloaded the attendance list during the meeting having 130 attendees, however the list showed only partial list of attendees, means some participants who joined, their name is not reflecting in the list, so any idea why is this happening?
The meeting was scheduled in the general channel of the team and therefore started at the scheduled time, all the attendees there, were the members of the team, some of them joined from the join button reflecting in the general channel itself but some of them joined through link because they say that join button doesn’t reflect in their teams.
Does that make difference?
Loading...
It shouldn’t make any difference how people join a meeting. All use the meeting link to access the meeting space.
Loading...
Hi the attendance report shows a default date format of English US (mm/dd/yyyy) is there a way to change this to show English UK (dd/mm/yyyy) as a default?
Can we download teams meeting participant list older than 30 days. in admin center i can only download 30 days old meeting participant list.
Loading...
The meeting organizer can get information for a meeting for as long as the meeting is in their calendar. Getting the data from the TAC is limited. I don’t know why, but it is.
Loading...
Hello, Is there a need to consider GDPR in relation to the attendance report?
That will be up to your organization’s data controller to decide. In general, GDPR means that the PII data from external attendees to webinars can be retained, but only with a valid business reason and for a limited time.
Hi – when I download the attendance report, there is 2 sets of data. They look exactly the same, but the second set of data is headed ‘in meetings activities’ – what does that mean?
Hi, thank you so much for this fantastic article.
Is it possible to using power automate to download the attendance report and store into the SharePoint folder?
{"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}
Ola my friend
Perfect, thank you so much for this fantastic news, I follow you on LinkedIn and I have a great admiration in your posts that helps us so much.
I have a question about information.
My company by default blocks the option to collect attendance reports in teams meetings.
This new way is how I get the report and how I can access this option as a Teams client and meeting creator, which way to access this function.
Thank you very much
If your company blocks the generation of attendance reports (through the meeting policy), Teams won’t generate the report and you won’t be able to access it.
Hi Tony, thanks for this, great article. We have a requirement to get attendance data BEFORE the webinars finishes, is there a way we can achieve that? Thanks in advance for your reply.
Nope. AFAIK, Teams can only generate the attendance report after the meeting closes.
Hi Tony,
I am unable to see “Attendance tab” on my teams window. I am trying get attendance,, I am the organiser, In the recurring event I am trying to extract for the month of June21. I am able to download few days, other days when i try to download, current day’s report gets generated. how can I see the history
Go to the meeting chat and you can download the attendance report for different versions of a recurring meeting.
hi…my meeting lasted 2 hours and 20 minutes, but the attendees are only shown to be in the meeting for 35 minutes. any idea why this happened? thank you
The time shown is when participants join and leave the meeting as noted by Teams. If there’s a problem here, you should report it to Microsoft.
Hi Tony,
Thank you for this amazing article, I would like to know that recently I being the organizer, downloaded the attendance list during the meeting having 130 attendees, however the list showed only partial list of attendees, means some participants who joined, their name is not reflecting in the list, so any idea why is this happening?
Thanking you
Regards
I have no idea. It’s impossible for me to know because I have no information about how the meeting was run, the roles people had, and how they joined.
The meeting was scheduled in the general channel of the team and therefore started at the scheduled time, all the attendees there, were the members of the team, some of them joined from the join button reflecting in the general channel itself but some of them joined through link because they say that join button doesn’t reflect in their teams.
Does that make difference?
It shouldn’t make any difference how people join a meeting. All use the meeting link to access the meeting space.
Hi the attendance report shows a default date format of English US (mm/dd/yyyy) is there a way to change this to show English UK (dd/mm/yyyy) as a default?
I think the date format comes from the language the client is configured in. I could be wrong…
I just downloaded an attendance report and it shows UK dates (I am in Ireland).
Meeting Start Time 24/08/2021, 13:46:06
Meeting End Time 24/08/2021, 13:47:27
Hello Tony
Can we download teams meeting participant list older than 30 days. in admin center i can only download 30 days old meeting participant list.
The meeting organizer can get information for a meeting for as long as the meeting is in their calendar. Getting the data from the TAC is limited. I don’t know why, but it is.
Hello, Is there a need to consider GDPR in relation to the attendance report?
That will be up to your organization’s data controller to decide. In general, GDPR means that the PII data from external attendees to webinars can be retained, but only with a valid business reason and for a limited time.
Great article – thank you. Have you had any success with automating the export of attendance data?
Nope. I haven’t had a look at this at all.
Is there any way to add another person(s) to be able to access the attendance report without being the organizer of the meeting?
No. The organizer is the owner of the meeting, so they own the meeting artifacts.
Do you have any suggestions on how to merge multiple meetingAttendanceReports into one data set ?
Extract them and combine in Excel?
How do you run this report for multiple people.
Hi – when I download the attendance report, there is 2 sets of data. They look exactly the same, but the second set of data is headed ‘in meetings activities’ – what does that mean?
I don’t know without seeing the data. It could be associated with meeting participants interacting with apps like polls, Q&A etc.
Hi, thank you so much for this fantastic article.
Is it possible to using power automate to download the attendance report and store into the SharePoint folder?
Can the retention policies be applied to the Meeting attendance report?
No. The attendance report is part of the meeting. Retention policies that apply to meetings cover the attendance reports.