In this article I will show you how to setup School Data Sync to automate your Teams for Education environment, as well as discuss the benefits and highlight some important considerations.
School Data Sync, from Microsoft, is a free service in Office 365 Education. It takes data about Students, teachers, class rosters and more, from the Student Information System, and use that data to create and license users in Azure Active Directory and Office 365, create classes in Microsoft Teams, complete with teachers and students, and more.
School Data Sync, or SDS, integrates with 78 Student Information Systems at the time of writing. For Student Informations Systems not on the list, chances are you could still make it work, which I will discuss in a second.
But before we move on, I’d like to continue with why you should setup School Data Sync. First of all, Classes in Teams won’t necessarily update dynamically if you create them manually and add a group from Azure AD. When new students arrive, teachers will have to add them to every team. Same goes for students moving from one school to another.
If you have more than a few schools, you really don’t want teachers or IT admins spending the first week after summer break moving students in and out of classes in Teams.
School Data Sync also lets you get the term start and end dates from the Student Information System, which you could use to automate archiving of classes End Of Year.
There are a whole range of other use cases when SDS is up an running, like dynamic application delivery if you manage school PCs with Intune for Education, but that’s a story for another day.
Most Student Information Systems integrating with systems like Learning Management Systems, have the option to do so using XML files in a format like IMS. School Data Sync however, if you’re not using the API, require six CSV-files in a proprietary format.
Microsoft has a set of example CSVs on Github, which I have customized slightly below.
The above examples show the bare minimum of what you need to get started with SDS, there are however a range of other properties you could add which I will cover later.
You should have all this information in the SIS XML file, so all you need to do is to create a script or small piece of software to parse the data in the XML file into six CSVs that SDS accepts.
When you have these CSVs, you’re ready to start syncing your Student Information System with School Data Sync. Let’s have a look at how you can accomplish that.
First you need to navigate to sds.microsoft.com and log on with global admin credentials. You can there click add a profile…
…give it a name, choose to upload CSVs in SDS format and click Start.
If your users already exist in Azure AD, choose Existing users. Otherwise, and you would need to have usernames and passwords in the teacher and student CSVs, choose New users and the service will provision accounts on your behalf.
Click Upload Files followed by Add Files, browse to and choose your CSVs and hit Upload.
Select school and section properties, remember that these must exist in the CSV files. As a bare minimum you need SIS ID and Name for schools and SIS ID, School SIS IS and Section Name for sections.
ProTip: Term StartDate and EndDate could come in handy later for automation purposes.
When all that is done, you have the option to replace unsupported special characters that may exist in the files, to make sure that the synchronization doesn’t stop just because of a dollar ($) sign or a dash (/).
You can also choose whether or not section group display names should persist when changed by the teacher, and set a date for when students should be able to view their classes.
Select the domain, properties and licenses for both teachers…
…and students. And hit Next.
The last page will let you review all your settings and finally create the profile. Setting everything up til take a few minutes.
When complete choose Start Sync.
Refresh the page after a while, please bare in mind that a sync like this can take some time, depending of the amount of users and groups you are syncing.
When the sync is complete, choose Your Organization in the menu on the left, and pick your school to see what has been synced.
You can also open either the Office 365 admin center and search for the teacher, students and classes…
…or of course just open Microsoft Teams with a teacher account to see that everything is OK.
You can see the classes are created, as well as teacher and students, and we’re good to go.
One thing I think is important for a successful roll out though, is to consider whether you should create class teams, subject teams or a mix of both. You need to discuss this internally before you setup School Data Sync, since your decision most likely will affect the configuration.
My experience is that it gets complex for the youngest students if they are assigned many teams, which is why teachers in lower grades sometimes rename one team to something like “Class 2B” and then add one channel for each subject.
This however introduces a few other challenges. The built-in assignments app is team centric, there is no way to add a math assignments tab in the math channel and so on.
Also there is currently only one class notebook for each team, if the class notebook is used a lot it could end up very large causing sync issues.
My point is that you need to think about these things before you roll out hundreds or perhaps thousands of teams, in order to avoid a bad user experience for students and teachers.
Make sure to also check the Microsoft Teams release notes, since these issues might have been resolved by the time you read this. You can also vote for the ability to add existing class notebooks on UserVoice, which would be a huge step in the right direction.
Again, if you appreciate my work please share on social media or comment below, and if there is something you think I should write about please let me know!
Pingback: Microsoft 365 automation using SDS attributes, Intune & Graph | Teams.rocks
Thank you for the different user scenarios i.e. Class Teams vs Subject Teams. As we are pioneers in the implementation of this system it is good to know that others are also considering various implementation strategies as well as the pros and cons of the different approaches.
Pingback: Adding apps & tabs in Microsoft Teams using Graph – part 1 | Teams.rocks
Thanks for the good post! Do you know if there is a tool to create the necessary CSV without a SIS? In Germany it is not that usual as in the states. I think a tool to do this would be a great benefit for many schools outside the US.
Thanks Robert! You could always create them manually using Excel or some text editor, but surely you have some system where you register student information? If you’re able to export data from another system there should be ways to parse those into the six CSVs needed by SDS.
Pingback: New year news in School Data Sync | Teams.rocks
Great Article, Thanks! you mentioned “One thing I think is important for a successful roll out though, is to consider whether you should create class teams, subject teams or a mix of both. You need to discuss this internally before you setup School Data Sync, since your decision most likely will affect the configuration.”
But you didn’t mention how you would configure such a thing.. and i can’t find the documentation anywhere that tells me i can create class teams vs subject teams or mix, what would I configure to set these things? Thanks!
If using SDS with a SIS supporting the OneRoster API integration this would depend on their implementation. If you’re using the CSVs you need to handle this when populating the CSVs, ei. with some SQL or PowerShell magic or if you have some other tool.
Through trial and error, I found that the key columns to bring the automatic “Teamification” of the groups are Course SIS ID and Course Name. When I added those, I got the exact behavior described in the article at https://docs.microsoft.com/en-us/schooldatasync/teamify-activate. Otherwise, I got the groups but no teams.
Me too, I got the groups without teams.
is there something to do?
SDS has reduced functionality due to high load during Covid-19, and will currently not teamify groups. Hope this will change in time for back to school 🤞🏻
Great article. We’re a p – 12 School in Australia and we’re currently planning on implementing Subject Teams for our 7 – 12 students who are more capable of dealing with the extra teams and need the separation of Class Notebooks etc that having these separate provides.
Our 1 – 6 students will use Class based teams as they’re still coming to terms with technology it will be simpler for them to access a single team.
In terms of the CSV import do you know if the SIS ID’s can be Alpha numeric or do they have to be a number?
Hey Ben, SDS is the way to go and your setup is very common. SID IDs does not need to be a number, I’ve seen IDs like ie. 53453acd-6e5d-4c4d-8bc9-f614a9226db0