Configuración automática de clases en Microsoft Teams con School Data Sync (SDS)

Ante la situación actual del Covid-19 a nivel mundial, las instituciones de educación aquí en Colombia (colegios, universidades, etc.) decidieron desde hace poco más de una semana enviar a todos los estudiantes, personal administrativo y profesores para las casas; sin embargo, aunque la medida fue, en mi opinión, oportuna, no hubo mucho tiempo para planear las clases virtuales, así que empezaron a trabajar casi sobre la marcha. Por supuesto, la primera preocupación fue el espacio en dónde tener y dar las clases, pero rápidamente muchos optaron por utilizar Microsoft Teams, ya que utilizan internamente tecnología Microsoft.

Recordemos que Microsoft Teams, cuando se utiliza en un tenant educativo, permite crear equipos especiales que tienen una configuración enfocada a clases, donde el profesor puede compartir una libreta de direcciones, hacer llamadas, crear asignaciones y exámenes fácilmente.

El problema de todo es que las instituciones pueden llegar a tener más de 2k de cursos y crear eso manualmente, incluso a través de PowerShell, sería engorroso y demorado.

School Data Sync (SDS)

Con School Data Sync (SDS), las instituciones pueden exportar toda la información referente a la entidad, estudiantes, profesores, materias y cursos e importarla a través de unos formatos en la plataforma para que se creen automáticamente todas las clases en Microsoft Teams, referenciando tanto a estudiantes como profesores:

image

Por detrás de esto, SDS está creando todos los grupos en Office 365, espacios en SharePoint, Exchange Online, configuración de Intune para Educación, etc.

Aunque la plataforma se puede llegar a tardar algunas horas en aprovisionar y es necesario tener extremo cuidado con los archivos que se suben, es bastante productiva, ya que deja listo cada curso para que el profesor empiece a modificar a su gusto.

Requerimientos

  1. Es necesario tener un tenant educativo
  2. Utilizar una cuenta con privilegios Global Admin

Métodos de despliegue

School Data Sync (SDS) cuenta con varias formas para aprovisionar las clases:

  • Archivos CSV con formato especial para SDS
  • Archivos CSV en formato Clever
  • Archivos CSV en formato OneRoster
  • API de PowerSchool
  • API de OneRoster

Para el resto del artículo nos enfocaremos en la primera opción, archivos CSV con el formato especial para School Data Sync (SDS).

Configuración de archivos CSV para SDS

En total, serán 6 archivos los que vamos a crear:

  1. school.csv
  2. section.csv
  3. student.csv
  4. studentenrollment.csv
  5. teacher.csv
  6. teacherroster.csv

A continuación, describiré el escenario que utilizaré y cómo encaja en la creación de cada uno de los archivos.

Escenario

Nombre de la institución:
Nala University

Identificador de la institución:
1901

Código inicial para estudiantes:
10100

Código inicial para profesores:
20100

Código inicial para materias:
30100

Importante:

Desde que sea numérico, no importa qué rango de identificación quieran asignar. De hecho, estos datos deberían salir de su respectivo sistema de información. La intención de este post es mantenerlo lo más simple posible para comprender el proceso, así que asigné unos que fueran fáciles para mi de referenciar.

Además de esto, es necesario saber que todos los atributos deben escribirse respetando mayúsculas y minúsculas.

school.csv

image

El primer atributo, SIS ID, hace referencia al número con el que identificaré mi institución (pueden ser varias en un mismo archivo); Name se refiere al nombre de la institución, es decir, Nala University en mi caso.

En el formato CSV, utilizando mi ejemplo, se vería así:

image

section.csv

El archivo de section.csv contiene todas las materias que se van a agregar y tiene como obligación tres atributos: SIS ID, School SIS ID y Section Name; no obstante, debemos agregar los mismos tres por cada materia. En el ejemplo, referencio tres materias.

SNAGHTML715ae7d

El primer atributo, SIS ID, no es el mismo identificador que tiene el archivo de school.csv. Aunque el nombre es igual, aquí debemos establecer el identificador pero de la materia que vayamos a agregar. El segundo atributo, School SIS ID, sí corresponde al SIS ID del archivo school.csv. En mi caso, por ejemplo, siempre será 1901, número escogido para referenciar a la universidad. El tercer atributo, Section Name, es el nombre de cada materia. Puede contener letras y números.

Siguiendo mi ejemplo, el archivo se vería así en el CSV:

image

student.csv

El archivo student.csv contiene el detalle por cada estudiante, de forma obligatoria: SIS ID, School SIS ID y Username.

SNAGHTML7127d4a

El primer atributo, SIS ID, no es el mismo identificador que tienen los archivos school.csv y section.csv, sino la referencia única a cada estudiante que existe en Office 365 (o que se va a crear). El segundo atributo, School SIS ID, sigue correspondiendo al SIS ID del archivo school.csv, es decir, al que identifica la institución: en mi caso, por ejemplo, 1901. El tercer atributo, Username, es el nombre de usuario tal cual aparece (o aparecerá) en Office 365.

En mi ejemplo, quedaría así en el CSV:

image

Noten que los números no deben ser necesariamente secuenciales, aunque es buena práctica.

studentenrollment.csv

El archivo studentenrollment.csv tiene toda la relación entre la materia que se está registrando en section.csv y los estudiantes en student.csv:

SNAGHTML73d310d

El primer atributo, Section SIS ID, como el nombre lo dice, corresponde al mismo identificador que está en section.csv y que referencia al curso/clase que se va a crear. En este ejemplo, 30100 es el identificador del curso de Colombia moderna. El segundo atributo, SIS ID, es el identificador único del estudiante que se creó en el student.csv.

El resto ya son repeticiones de estos mismos atributos obligatorios por cada materia y estudiantes asociados. Por ejemplo, los últimos 6 registros son de un mismo curso, pero registrando diferente estudiante.

En mi CSV de ejemplo, quedaría así:

image

teacher.csv

El archivo teacher.csv contiene toda la información única para cada profesor:

SNAGHTML7542f29

El primer atributo, SIS ID, no es ninguno de los identificadores de los archivos anteriores, sino el que será único para cada profesor que vamos a registrar. El segundo atributo, School SIS ID, hace referencia al identificador que se creó para la institución en el archivo school.csv. En este caso, por ejemplo, 1901. El tercer atributo, Username, es el nombre de usuario del profesor tal cual aparece en Office 365 (o que se va a crear).

En mi archivo CSV de ejemplo quedaría así:

image

teacherroster.csv

El archivo tearcherroster.csv contiene la relación entre los cursos registrados y los profesores que van a estar como propietarios de estos cursos:

SNAGHTML7670974

El primer atributo, Section SIS ID, hace referencia al SIS ID que tiene el archivo section.csv y que identifica a cada curso. En mi caso, por ejemplo, 30100 es la materia 2001 – Colombia moderna. El segundo atributo, SIS ID, es el mismo SIS ID que está para cada profesor en teacher.csv. En mi primer ejemplo, 20102, correspondería a HaderR. El resto son los mismos dos atributos obligatorios que debo repetir por cada profesor que vaya a registrar en los diferentes cursos.

Nota: todas las clases en Teams deben quedar asignadas a un profesor al menos.

En mi archivo CSV de ejemplo quedaría así:

image

Con esto culminamos la parte más difícil, ahora solo queda hacer la carga y sincronizar. Cabe aclarar que es recomendable revisar muy bien el formato de cada archivo, pues de esto depende el éxito en la creación y puede ser muy engorroso depurar después de que se sincronizan miles de cursos.

Creación y sincronización del perfil en SDS

Primero, abrimos el navegador, vamos a https://sds.microsoft.com/ e iniciamos sesión con nuestras credenciales de administrador global.

Una vez iniciados, vamos a la pestaña de Home y hacemos clic en Add profile:

image

En la página de Choose connection type, escribimos un nombre para nuestro perfil en el cuadro de texto debajo de Enter a name for your profile, escogemos Upload CSV files, luego CSV files: SDS Format y hacemos clic en Start:

image

En la página de Sync options, seleccionamos Existing users*, luego hacemos clic en el botón de Upload Files, debajo de Import data:

image

*En este artículo estamos trabajando sobre usuarios que ya existen; en un próximo artículo intentaré mostrar cómo es el proceso con usuarios nuevos.

En el cuadro de texto de Select data files to be uploaded, hacemos clic en el botón de Add Files

image

Seleccionamos únicamente los 6 archivos y los abrimos para que se carguen:

SNAGHTML9d8df62

Después de que los archivos queden agregados, hacemos clic en el botón Upload:

image

Si no hay fallos con alguno de los archivos, deben ver un cuadro de confirmación:

image

De regreso a la página de Sync options, escogemos la opción de Automatically replace unsupported special characters while syncing from source, debajo de Replace unsupported special characters. Esto es para que se cambien los caracteres no admitidos por SDS por otros soportados.

Después, debajo de When should we stop syncing this profile, escogemos la fecha en la que terminarían las clases para que SDS nos dé la opción de eliminar todas las clases asociadas.

Por último, hacemos clic en Next:

image

En el paso 2, Teacher options, debajo de Domain (optional), escogemos el dominio asociado a nuestros usuarios, dejamos las opciones de Username y userPrincipalName como están y hacemos clic en el botón Next:

image

En Student options, hacemos exactamente la misma configuración del dominio, dejamos las demás como están de forma predeterminada y clic en Next:

image

En la página de Review, revisamos todo lo que configuramos y hacemos clic en Create profile:

image

Finalmente, veremos el inicio de la sincronización de nuestro perfil:

image

De aquí en adelante, si queremos ver el progreso o los errores, debemos ir actualizando la página hasta que termine y quede todo aprovisionado:

image

image

En caso de error con alguno de los archivos, SDS va a notificar y a entregar un error descriptivo, aunque no siempre preciso:

image

Basta con depurar el archivo o hacer cambios en Office 365 y volver a subir los archivos haciendo clic en el botón de Upload Files. Sin embargo, si el error es de plataforma, habría que hacer los cambios y hacer clic en Reset Sync para que inicie nuevamente.

Al terminar la sincronización, SDS notificará para subir más actualizaciones o proceder a revisar los resultados:

image

Nota: si hay errores durante la sincronización, podría terminar en color amarillo. Es buena práctica subir los archivos de nuevo para que se haga y no se quede nada sin sincronizar.

Verificación de resultados

Desde el administrador de la plataforma

En el panel izquierdo de la plataforma de School Data Sync (SDS), hacemos clic en Groups:

SNAGHTMLa490865

Aquí vamos a ver la institución o sedes que hayamos creado, así como la pestaña de Sections (cursos) y de los grupos de seguridad:

image

Si hacemos clic sobre el nombre de la universidad, vamos a ver todos los datos que hayamos subido en los archivos y el acceso directo a estudiantes, profesores y cursos:

image

Al hacer clic en Sections, por ejemplo, SDS va a filtrar todos los cursos que estén asociados a ese SIS ID:

image

Si hacemos clic en cualquiera de las materias, vamos a ver los estudiantes asociados:

image

Hasta aquí todo bien. Lo siguiente es que cada profesor abra Teams, active sus clases y empiece a generar contenido.

Desde Microsoft Teams como profesor

Primero, por supuesto, el profesor debe de iniciar sesión en Microsoft Teams:

image

Una vez dentro de Teams, debe de ir al panel izquierdo en Teams/Equipos y buscar el que le fue asignado:

image

Dentro del equipo, en la parte superior, van a ver un botón que dice Activate/Activar. Hasta que el profesor o propietario del equipo no lo active, no será visible para los estudiantes dentro de Teams:

image

Cabe aclarar que el profesor puede modificar el equipo, pero hasta que no se active, no podrá hacer operaciones como agregar estudiantes dentro del equipo o de un canal privado:

image

Al activar el equipo, Teams notificará que no se puede devolver y dejará confirmar nuevamente:

image

image

¡Listo! ¡A dar clases! =)

Saludos,

—Checho