Skip to main content

Microsoft Teams synchronisation

This module synchronises data imported into Flow with Microsoft Teams. It can:

  • Create teams based on courses
    • Ensure team names and other details are standardised
  • Create channels based on course-groups
  • Assign team owners and members based on course lecturers and participants
  • Create online meetings or calendar events based on course events
    • Write a message in the correct channel when an event is about to start
  • Track attendance in online meetings and automatically save it to the Digital Attendance List, if the module is enabled

Setup

  1. Ensure your importer is configured correctly and all data you want to synchronise with Microsoft Teams is imported into Flow.

  2. Set the required system configuration values in your Flow server.

keydescription
teamsPluginAzureInstanceThe URL of the Azure login. Defaults to https://login.microsoftonline.com/%s. Only change if you are using a custom Azure instance.
teamsPluginGraphApiUrlDefaults to https://graph.microsoft.com/. Only change if you are using a custom Graph API instance.
teamsPluginAzureTenantIdThe UID of the university's tenant. Eg 225b1136-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
emailSubdomainThe email domain of the university. Eg. "@university.onmicrosoft.com" or "@edu.uni.com". Also used for the demo user's email addresses.
  1. Complete the interactive MS Teams setup at https://\<your-flow-server.com\>/ms-teams/setup. This requires an Azure administrator account. You need to run some Powershell commands.

  2. Set the remaining system configuration values.

keydescription
teamsSyncPluginEnabledEnable the MS Teams Sync Module. It automatically creates teams, channels and events in MS Teams. Only enable after the required configuration values are set and the setup is completed.
teamsAttendancePluginEnabledEnable the attendance saving feature to track attendance of members of online events and automatically save it to the Digital Attendance List.
Only works if teamsSyncPluginEnabled is true. Only enable after the relevant configuration values are set.
Optional configuration
teamsSyncPluginDefaultCourseEventSyncSettingSelect the default behaviour for handling Flow events. Valid values are CreateEvents (creates events with invite-mails and calendar entries for participants), CreateOnlineMeetings (creates anonymous online meetings and posts the invite link to the event's channel), DontSync (doesn't sync Flow events to MS Teams).
teamsPluginEventRequestResponseFromAttendeesWhen enabled, attendees will be asked to confirm their attendance for events. Defaults to false. This only applies if teamsSyncPluginDefaultCourseEventSyncSetting is set to CreateEvents.
teamsPluginRemoveExtraChannelsRemove surplus channels during synchronisation. Defaults to false.
teamsPluginRemoveExtraTeamAndChannelMembersRemove surplus team members and channel members during synchronisation. Defaults to false.
teamsPluginRemoveTeamsSpecifies what to do when a course is no longer present in Flow. Possible values: DELETE to also remove the team that is associated with it, ARCHIVE to only archive the team, NONE to do nothing.
teamsSemesterRemovalStrategySpecifies what to do when data of a semester is to be deleted. Possible values: DELETE to delete teams associated with courses of this semester, ARCHIVE to only archive the teams, NONE to do nothing.
Automatically populated configuration
teamsPluginDaemonUserIdThe UID of the daemon user. Eg. b843c948-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
teamsPluginTeamsAppInternalIdThe internal ID of the Teams application in the organisation.

Notes

  • Once this module is enabled, course settings can override selected Microsoft Teams synchronisation behaviour.
  • Synchronisation runs every six hours and may take several hours to complete, depending on the number of courses and students. The first few runs take longer because the teams must be created.
  • Most string formatting is currently hard-coded but can be made configurable upon your request.
    • The format of team names is "[${courseNumber}] $name $semester"
    • The format of team mail nicknames is "${courseNumber}_$semester", so a full mail is for example 0835VD1006_21W@university.com

Troubleshooting

During synchronisation, the module may encounter errors caused by Graph API outages or an invalid configuration. These errors are displayed with further information in Microsoft Teams synchronization logs at the bottom of the System Configuration page.

If something does not work as expected or the synchronisation does not match your requirements, please contact us.