> ## Documentation Index
> Fetch the complete documentation index at: https://docs.junojourney.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Microsoft Teams Meetings

> Permissions and data usage for the Microsoft Teams meetings integration.

export const RelatedPages = ({pages = []}) => {
  if (pages.length === 0) return null;
  return <>
      <br />
      <strong>Related articles</strong>
      <CardGroup cols={2}>
        {pages.map(page => <Card title={page.title} href={page.href} key={page.href} />)}
      </CardGroup>
    </>;
};

<Info>
  Powers Teams online meetings for Juno events, automatic attendance tracking, and optional recording import. Notification delivery in Teams is a separate app — see [Microsoft Teams notifications](/integrations-toolkit/microsoft-teams-notifications).
</Info>

## Why Juno integrates with Teams meetings

* **Meeting creation** — organizers connect their Microsoft account so Juno can create, update, and cancel the Teams meeting for an event session.
* **Attendance** — after a session ends, Juno reads the meeting's attendance report to mark attendance automatically.
* **Recordings (optional)** — organizers can import a session's Teams recording into Juno as learning content.

## Permissions we request

All permissions are delegated Microsoft Graph scopes — Juno acts only on behalf of the organizer who consented, and only on that organizer's own meetings.

| Permission                                   | Why we need it                                                         | Data accessed                                     |
| -------------------------------------------- | ---------------------------------------------------------------------- | ------------------------------------------------- |
| `User.Read`                                  | Identify the connected account                                         | Display name and email of the signed-in organizer |
| `OnlineMeetings.ReadWrite`                   | Create, update, and cancel Teams meetings for Juno sessions            | Meetings Juno creates for that organizer          |
| `OnlineMeetingArtifact.Read.All`             | Read attendance reports of the organizer's meetings to mark attendance | Attendee names, join and leave times              |
| `OnlineMeetingRecording.Read.All` (optional) | Import a session's Teams recording into Juno                           | Recordings of the organizer's own meetings        |
| `offline_access`                             | Keep the connection active without re-consenting                       | Refresh token only                                |

<Note>
  `OnlineMeetings.ReadWrite` is required — Juno verifies it was granted during connection and rejects the connection otherwise. The recording scope is requested only when the organizer enables recording import, through a separate consent. Juno checks the granted scopes before every recording download and prompts the organizer to reconnect if the scope is missing. Depending on your Entra ID settings, users may need admin consent before they can approve these scopes.
</Note>

<Card title="Entra ID: providing admin consent" icon="book-open" href="https://scribehow.com/o/3wwL9U2ERcesVa8O7YPqJg/viewer/Entra_ID_Providing_Admin_Consent_for_Juno_Journeys_Video_Conference_Teams_and_Outlook_Integrations__tEenPQvPTa-7dvMgIEPRzg">
  Step-by-step walkthrough for granting admin consent to the Teams and Outlook integrations in Microsoft Entra ID.
</Card>

## What we do with the data

* Meeting details (join link, meeting ID, time) are stored on the Juno event.
* Attendance report data is used to mark attendance on the session.
* Imported recordings are copied to Juno's storage and attached to the session; nothing else is downloaded.
* Juno does not read chat, channels, files, email, or meetings it did not create.

## Security and storage

OAuth tokens are encrypted at rest, stored server-side per connected organizer, and refreshed automatically.

## Revoking access

* In the Microsoft Entra admin center, revoke the enterprise application's permissions or block user consent to it.
* Individual organizers can remove the app under their Microsoft account's app permissions, or disconnect inside Juno.

<RelatedPages
  pages={[
{ href: "/integrations/microsoft-teams", title: "Microsoft Teams setup guide" },
{ href: "/integrations-toolkit/microsoft-teams-notifications", title: "Teams notifications permissions" }
]}
/>
