Creating Class Teams with School Data Sync (Classic)

School Data Sync (SDS) once again provides the option to create both the M365 Group and Class Team for each class synced!! The feature was removed from SDS in March 2020 due to unprecedented levels of deployment during to COVID, and we’ve now added it back. The article below describes the process SDS uses to create Class Teams, and the resultant end user experience if admins choose to create both Class Groups and Class Teams from SDS vs choosing to create just the Microsoft 365 Groups.

How SDS creates Class Teams

The process below describes how SDS creates class teams when classes and rosters are synced.

Step 1: Data Ingestion

SDS supports ingesting data using OneRoster API connectors or by sending CSV files in one of the supported SDS formats. To create Class Teams, SDS requires you to provide user, class, and roster data at a minimum, to facilitate the E2E provisioning process described in subsequent steps. During this data ingestion process, SDS performs a series of data validation checks to ensure source system APIs are accessible, CSV headers are properly formatted, and the roster ID mappings between the classes and users is correct. Once data is validated, erroneous data will be discarded and reported within the errors section, and the remaining “good data” is submitted for processing and synchronization to Office 365.

Step 2: Sync Users

Before SDS can create groups and add memberships, it must first synchronize all the users from the source system and map them to their corresponding user account in Microsoft Entra ID. If your users already exist and you select the Sync Existing Users option in the sync profile setup wizard, SDS uses a process called Identity Matching to map source system attributes to Microsoft Entra user attributes. Once mapped, each user gets an Anchor ID extension attribute in Microsoft Entra ID, which includes the unique and persistent SIS ID from the source system. If you select the "create new user option" in the sync profile, SDS will create the user accounts based on the data provided and assign the corresponding license set within the sync profile setup wizard. Syncing users is foundational step for every follow-on provisioning feature and step within SDS. If any user fails to match identities or sync due to errors, SDS won't be able to add the memberships for that user to the Class Group or Class Team.

Step 3: Create Class Groups in Microsoft Entra ID

Once all the users are synced, SDS can create the Microsoft 365 Groups within Microsoft Entra ID. The groups created by SDS aren't the same as Microsoft 365 groups created by end users or those created by an Admin when using the Microsoft 365 Admin portal or PowerShell. Key differences include:

  1. Visibility option set to hidden membership
  2. Custom Creation Options
  3. Custom Resource Behavior Options
  4. Custom extension attributes from the source data

Step 4: Add Group Owners and Members

After the groups are created in Microsoft Entra ID, SDS can add the owners and members based on the class enrollment data provided during the ingestion phase. If syncing using OneRoster API, SDS V1 CSV, or Clever CSV format, SDS will add the teachers as an owner on each of their Microsoft 365 Groups. If syncing using the new SDS V2.1 format, SDS adds any staff roles for each class, as detailed in the enrollments.csv file, as group owners. Students are always added as group members. The owner and member roles within the Group will determine the permissions each user has within the Group and linked Team.

Step 5: Create Class Teams from Class Groups

Once all the owners and members are added to the Microsoft 365 group in Microsoft Entra ID, SDS can begin Class Team creation. When creating Teams, they're created from the Microsoft 365 group, and owners and members will mirror those included on the Microsoft 365 group. To create the Team, SDS posts the Create team with a non-standard base template to MS Graph API. This is a publicly available API, for use by custom provisioning apps and PowerShell scripts.

When deployments increased globally as COVID led Schools to Remote Learning deployments, the volume of requests SDS was sending to this Teams API was overwhelming and led to the removal of the “Teamify” feature in SDS. Microsoft has since made significant performance and reliability improvements to the API, allowing SDS to add Team creation back into the product. SDS includes various features like throttling backoff, session stability, and error handling, which aren't easily replicated using PowerShell scripts. As such, Microsoft recommends using SDS when deploying Class Team to ensure a consistent, performant, and reliable outcome.

By default, SDS will create Class Teams for each Class and Section synced, however there's an option available within the Sync Profile setup that allows for this step to be skipped. If you choose to only create the Microsoft 365 Groups and not create both the Group and Teams, Educators may follow the Educator-Led Team Creation flow to manually create their Teams from the SDS created Microsoft 365 Groups.

Step 6: Activate Class Teams

Once Class Teams is created, the Classes will need to be activated by the Team Owner. This activation process within Teams allows all student members within the Microsoft 365 group stored in Microsoft Entra ID to sync to the Class Team. This process allows the Class Team to appear within the student’s Team list and dashboard, and they may begin using the Class Team. Before activation occurs, students will be shown as pending users within the Educators view of the inactive Class Team, and wont be able to see or interact with the Class Teams until the educators are ready to provide them access. Once activated, SDS will continue to update and manage memberships within the Microsoft 365 Group in Microsoft Entra ID. All membership changes to Microsoft 365 group membership in Microsoft Entra ID are synchronized to the linked Class Teams through a process called Forward Sync, which occurs for all Groups and Teams within Office 365. This forward sync process isn't unique for Groups created and managed by School Data Sync, and it isn't part of School Data Sync product, however it's a required capability within the end to end Teams provisioning process.