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
| Detail | Description |
|---|---|
| App type | Custom app, uploaded by your IT team through the Teams admin center. It isn't published in the Microsoft Teams Store. |
| What it does | A personal tab that hosts the full Leena AI experience, plus a notification-only bot that delivers Leena AI notifications |
| Scope | Personal only — the app is never added to a team or group chat |
| Package | One zip containing manifest.json and two icons, generated for your organisation from the Admin Console |
| Developer | Leena AI Inc. |
| Privacy policy | leena.ai/privacy-policy |
| Terms of use | leena.ai/docs/tnc.pdf |
What the manifest declares
You can check all of this in the manifest.json inside the app package.
| Declaration | What 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. |
webApplicationInfo | Links the app to its Microsoft Entra app registration, so employees are signed in with their Teams identity (single sign-on) |
activities | Registers a notification type for the Teams activity feed |
devicePermissions: media | Lets the tab ask an employee for camera and microphone access, used by voice features |
validDomains | The 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.
| Permission | What it's used for |
|---|---|
openid, profile, email | Single sign-on — identifying the employee when they open the Leena AI tab |
offline_access | Part of the standard sign-in scope set, so employees aren't asked to sign in again |
User.Read | Reading the signed-in employee's Microsoft profile during sign-in (see Signing in) |
TeamsActivity.Send | Posting an activity-feed notification to the signed-in employee |
TeamsAppInstallation.ReadForUser | Finding 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.
| Permission | What it's used for |
|---|---|
TeamsActivity.Send | Posting activity-feed notifications to employees who have the Leena AI app installed |
TeamsAppInstallation.ReadForUser.All | Looking 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 consentA 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:
- Generates a client secret, valid for two years. Leena AI monitors its expiry and renews it.
- Configures the sign-in scope the Teams tab uses.
- Pre-authorises the Teams web and desktop clients, so sign-in happens without a prompt.
- 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
- An employee opens the Leena AI tab in Teams. Teams provides a single sign-on token — there's no password prompt.
- 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.
- 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.
- 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.
- 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.
| Domain | What it's used for |
|---|---|
<instance>-bots.leena.ai | The Leena AI backend for your instance, including the tab's sign-in |
leena.ai, *.leena.ai | The Leena AI app loaded in the tab |
webviews.leena.ai, <region>-webviews.leena.ai | Interactive forms and workflows |
<region>-integrations-api.leena.ai | Forms and callbacks from connected systems |
s3.leena.ai | Attachments and uploaded files |
forms.google.com | Google Forms embedded in workflows, where configured |
leena-ai-public.s3.ap-south-1.amazonaws.com | Public 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.
Updated about 1 hour ago
