Zum Hauptinhalt springen

Microsoft Exchange / Microsoft 365

The Exchange adapter uses the Microsoft Graph API to look up meetings and room bookings in Exchange Online (Microsoft 365).

Prerequisites

  • Microsoft 365 with Exchange Online.
  • An Entra ID App Registration with Graph API permissions.
  • The organization admin must grant consent for the required permissions.

Setup

  1. Register an application in Microsoft Entra ID:

    • Navigate to Azure Portal → App registrations → New registration.
    • Set the redirect URI to https://<your-atrium-domain>/api/v1/integrations/oauth/callback.
    • Under API permissions, add Microsoft Graph:
      • Calendars.Read (to read meetings and room bookings)
      • Calendars.ReadWrite (if room booking is enabled)
      • Place.Read.All (to discover meeting rooms)
    • Create a client secret.
    • Note the Application (client) ID, tenant ID, and client secret.
  2. Admin consent: An organization admin must grant consent for the API permissions. This is typically done in the Azure Portal under Enterprise Applications.

  3. Configure in Atrium:

    • Navigate to Settings → Integrations → Calendar.
    • Select Microsoft Exchange.
    • Enter the Application ID, tenant ID, and client secret.
    • Click Authorize — you'll be redirected to Microsoft to grant access.
  4. Select rooms: After authorization, Atrium discovers available room resources. Select which rooms should be available for meeting room lookup and booking.

How meeting lookup works

At check-in time, Atrium:

  1. Queries the host's calendar via Graph API for events in a time window around the expected arrival (±30 minutes by default).
  2. Filters for events that include the visitor (by email) as an attendee or have a matching subject/time.
  3. Extracts the room resource from the event's location field.
  4. Displays the room on the kiosk completion screen.

Considerations

  • Scopes must be complete from the start: Microsoft's consent flow doesn't support incremental scope additions gracefully. Request both read and write scopes during initial authorization, even if you only use room booking later.
  • Rate limits: Graph API has per-app and per-tenant rate limits. Atrium batches calendar queries where possible, but high-volume sites (50+ simultaneous check-ins) should monitor their Graph API usage.
  • Webhook delivery: For change tracking, Atrium registers Graph API webhook subscriptions. The Atrium server must be reachable from Microsoft's webhook infrastructure (HTTPS on a public URL). Self-hosted deployments behind strict firewalls may need to use polling instead.