Microsoft Teams app: permissions, data and security

This page is for IT and security teams reviewing the Leena AI app for Microsoft Teams. It covers what the app contains, the Microsoft permissions it asks for and why, how sign-in and notifications work, and which domains it loads.

For setup steps, see Teams and Setup user group policies for Microsoft Teams apps.

The app at a glance

DetailDescription
App typeCustom app, uploaded by your IT team through the Teams admin center. It isn't published in the Microsoft Teams Store.
What it doesA personal tab that hosts the full Leena AI experience, plus a notification-only bot that delivers Leena AI notifications
ScopePersonal only — the app is never added to a team or group chat
PackageOne zip containing manifest.json and two icons, generated for your organisation from the Admin Console
DeveloperLeena AI Inc.
Privacy policyleena.ai/privacy-policy
Terms of useleena.ai/docs/tnc.pdf

What the manifest declares

You can check all of this in the manifest.json inside the app package.

DeclarationWhat it does
staticTabs (personal)The tab employees open to use Leena AI
bots (personal, notification-only)Lets Leena AI send notifications into the employee's 1:1 chat with the app. Employees can't chat with the bot there — conversations happen in the tab, and notification buttons link back into it.
webApplicationInfoLinks the app to its Microsoft Entra app registration, so employees are signed in with their Teams identity (single sign-on)
activitiesRegisters a notification type for the Teams activity feed
devicePermissions: mediaLets the tab ask an employee for camera and microphone access, used by voice features
validDomainsThe only domains the app may load inside Teams — see Domains the app loads

The manifest doesn't declare the legacy permissions array or any resource-specific consent permissions.

Microsoft Graph permissions

The app requests the permissions below and nothing else. Through Microsoft Graph it can't read Teams chats or messages, files, mail or calendars, and it can't install apps. (Chat notifications are sent by the app's own bot through the Microsoft Bot Framework, not through Graph.)

Delegated permissions

These act on behalf of a signed-in employee and can only reach that employee's own data.

PermissionWhat it's used for
openid, profile, emailSingle sign-on — identifying the employee when they open the Leena AI tab
offline_accessPart of the standard sign-in scope set, so employees aren't asked to sign in again
User.ReadReading the signed-in employee's Microsoft profile during sign-in (see Signing in)
TeamsActivity.SendPosting an activity-feed notification to the signed-in employee
TeamsAppInstallation.ReadForUserFinding the employee's own installation of the Leena AI app, which a feed notification is addressed to

Application permissions

These let Leena AI send notifications when no one is signed in — for example a ticket update or a scheduled reminder.

PermissionWhat it's used for
TeamsActivity.SendPosting activity-feed notifications to employees who have the Leena AI app installed
TeamsAppInstallation.ReadForUser.AllLooking up an employee's installation of the Leena AI app before notifying them. It's read-only — it can't install, change or remove apps.
🔐

Admin consent

A Global Administrator grants consent for these permissions once, during setup — see step 7 of Setup user group policies for Microsoft Teams apps. After that, employees never see a consent prompt. You can review or revoke the consent at any time under Microsoft Entra ID → Enterprise applications in your tenant.

Who manages the app registration

Leena AI creates and manages the app registration for your Leena AI instance in Leena AI's own Microsoft Entra tenant, as a multi-tenant app. Your IT team doesn't create an app registration or share any credentials with Leena AI.

When the app package is first generated, Leena AI configures the registration automatically:

  1. Generates a client secret, valid for two years. Leena AI monitors its expiry and renews it.
  2. Configures the sign-in scope the Teams tab uses.
  3. Pre-authorises the Teams web and desktop clients, so sign-in happens without a prompt.
  4. Adds the Microsoft Graph permissions listed above.

Your IT team's part is to upload the package in the Teams admin center, decide who gets the app through app setup policies, and grant admin consent.

How it works

Signing in

  1. An employee opens the Leena AI tab in Teams. Teams provides a single sign-on token — there's no password prompt.
  2. Leena AI exchanges the token with Microsoft for a Graph access token (the on-behalf-of flow) and reads the employee's profile: name, email, user principal name, job title, office location, phone numbers and preferred language.
  3. Leena AI matches the employee to their record synced from your HR system — by email by default, or by another profile field if one is configured.
  4. If there's no active match, more than one match, or the employee doesn't meet the access rules set for your Leena AI instance, sign-in is refused. Leena AI never creates employee records from Teams data.
  5. The tab opens a signed-in Leena AI session.

Notifications

Leena AI delivers notifications in one of two ways, depending on how your instance is configured:

  • Teams chat (the default for new setups) — a message from the Leena AI app in the employee's 1:1 chat, with buttons that open the Leena AI tab.
  • Activity feed — an entry in the employee's Teams activity feed. It shows the notification's subject, or simply "Notification", and links into the Leena AI app, where the employee reads the full content.

Either way, a notification can only reach an employee who has the Leena AI app installed. If Microsoft rate-limits an activity-feed request, Leena AI retries it after the delay Microsoft specifies.

Installation

Your IT team decides who gets the app, through app setup policies in the Teams admin center. The app doesn't request any permission to install apps, so Leena AI can't install it for employees. Because notifications need the app installed, the same policies also decide who can receive them.

Domains the app loads

These are the validDomains in the manifest — the only domains the app is allowed to open or embed inside Teams. <instance> and <region> depend on where your Leena AI instance is hosted.

DomainWhat it's used for
<instance>-bots.leena.aiThe Leena AI backend for your instance, including the tab's sign-in
leena.ai, *.leena.aiThe Leena AI app loaded in the tab
webviews.leena.ai, <region>-webviews.leena.aiInteractive forms and workflows
<region>-integrations-api.leena.aiForms and callbacks from connected systems
s3.leena.aiAttachments and uploaded files
forms.google.comGoogle Forms embedded in workflows, where configured
leena-ai-public.s3.ap-south-1.amazonaws.comPublic static assets such as logos and icons

Leena AI's servers call Microsoft at login.microsoftonline.com (sign-in tokens), graph.microsoft.com (profiles, installation lookups and activity-feed notifications) and the Microsoft Bot Framework (chat notifications).

Security and compliance

Certifications, penetration testing, encryption, data retention and incident response apply across the Leena AI platform rather than to the Teams app specifically. You'll find the current certificates and reports at trust.leena.ai.


Did this page help you?