> For the complete documentation index, see [llms.txt](https://docs.we360.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.we360.ai/deployment-and-it-ops/integrations-and-api-access/integrations/portal-integrations/microsoft-teams.md).

# Microsoft Teams

Connect Microsoft Teams to improve productivity analysis using meeting data.

Use this integration to connect Microsoft Teams with we360.ai.

It improves productivity analysis by tracking time spent in meetings.

## Before you start

You need a Microsoft Entra app.

You also need these values for we360.ai:

* Microsoft Tenant ID
* Client ID
* Client Secret
* Unique Identification Key

{% hint style="warning" %}
Grant the required Microsoft Graph permissions and admin consent before saving the integration.
{% endhint %}

## Create the Microsoft Entra app

{% stepper %}
{% step %}

### Open app registrations

Sign in to the Microsoft Entra admin center.

Use an account with at least **Cloud Application Administrator** access.

If you manage multiple tenants, switch to the correct tenant first.

![Microsoft Entra admin center with Identity, Applications and App registrations highlighted in the navigation](https://632025722-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FicuEWisKb5zNsnnUwY1Y%2Fuploads%2Fgit-blob-01a39756c9542e32c8ab9aceabb72165bee5534b%2Funknown%20\(4\).png?alt=media)

Go to **Identity → Applications → App registrations**.
{% endstep %}

{% step %}

### Register a new app

Select **New registration**.

![App registrations page in Microsoft Entra admin center with the New registration button highlighted](https://632025722-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FicuEWisKb5zNsnnUwY1Y%2Fuploads%2Fgit-blob-01a39756c9542e32c8ab9aceabb72165bee5534b%2Funknown%20\(4\).png?alt=media) ![New registration button on the Microsoft Entra App registrations page used to create the Teams integration app](https://632025722-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FicuEWisKb5zNsnnUwY1Y%2Fuploads%2Fgit-blob-01a39756c9542e32c8ab9aceabb72165bee5534b%2Funknown%20\(4\).png?alt=media)

Enter a display name for the app.

Set **Supported account types** to **Accounts in this organizational directory only (single tenant)**.

![Register an application form in Microsoft Entra with a display name and single tenant account type selected](https://632025722-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FicuEWisKb5zNsnnUwY1Y%2Fuploads%2Fgit-blob-394894c3bd81f3b57c5a93b9c388c52597042145%2Funknown.png?alt=media)

Click **Register**.
{% endstep %}
{% endstepper %}

## Configure the integration in we360.ai

{% stepper %}
{% step %}

### Open the integration

In we360.ai, go to **Settings → Integrations**.

Open **Microsoft Teams**.
{% endstep %}

{% step %}

### Enter the tenant ID

Copy **Directory (tenant) ID** from the Entra app overview page.

Paste it into **Microsoft Tenant ID (Organization ID)** in we360.ai.
{% endstep %}

{% step %}

### Enter the client ID

Copy **Application (client) ID** from the Entra app overview page.

Paste it into **Client ID (Application ID)** in we360.ai.

![Microsoft Entra app overview page showing where to copy the Application (client) ID and Directory (tenant) ID](https://632025722-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FicuEWisKb5zNsnnUwY1Y%2Fuploads%2Fgit-blob-3439035ff2bf5af01896e28a869f92d7625f4cc8%2Funknown.png?alt=media)
{% endstep %}

{% step %}

### Create the client secret

Go to **Manage → Certificates & secrets**.

Select **New client secret**.

Add a description. Choose an expiry. Click **Add**.

Copy the newly created secret value.

Paste it into **Client Secret** in we360.ai.

![Certificates and secrets page in Microsoft Entra with the Add a client secret panel showing description and expiry](https://632025722-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FicuEWisKb5zNsnnUwY1Y%2Fuploads%2Fgit-blob-a865e91981a1a3414199f6f47dd4ea099f1c35bf%2Fteams-entra-add-client-secret.png?alt=media)

![Client secrets tab in Microsoft Entra with the newly created secret value ready to copy for We360.ai](https://632025722-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FicuEWisKb5zNsnnUwY1Y%2Fuploads%2Fgit-blob-b135b442d56e940c5b3ce7bd646ab5d8e863be2a%2Fteams-entra-copy-client-secret-value.png?alt=media)
{% endstep %}

{% step %}

### Choose the unique identification key

Select the matching rule that fits your directory data:

* `Email` — Microsoft Teams email matches we360.ai email.
* `Email Prefix` — the part before `@` matches we360.ai email prefix.
* `Employee ID` — Microsoft Teams email matches we360.ai employee ID.
* `Employee ID Prefix` — Microsoft Teams email prefix matches we360.ai employee ID.

![Microsoft Teams Integration form in We360.ai settings with tenant ID, client ID, client secret and unique identification key](https://632025722-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FicuEWisKb5zNsnnUwY1Y%2Fuploads%2Fgit-blob-2c492bb0fb6bfa3bf95bd99ed60da097cf03484b%2Funknown.png?alt=media)
{% endstep %}

{% step %}

### Save the integration

Save the configuration in we360.ai.
{% endstep %}
{% endstepper %}

{% hint style="warning" %}
Unique identifier matching is case-sensitive. It is also whitespace-sensitive.
{% endhint %}

## Add Microsoft Graph permissions

Go to **Manage → API permissions** in the Entra app.

Add these permissions:

* `Calendars.Read`
* `Calendars.ReadBasic.All`
* `CallRecords.Read.All`
* `OnlineMeetingArtifact.Read.All`
* `OnlineMeetings.Read.All`
* `OnlineMeetings.ReadWrite.All` — optional for bidirectional sync
* `User.Read`
* `User.Read.All`

These permissions require admin consent.

Grant admin consent for the tenant after adding them.

![Microsoft Entra API permissions page listing Microsoft Graph application permissions with Grant admin consent highlighted](https://632025722-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FicuEWisKb5zNsnnUwY1Y%2Fuploads%2Fgit-blob-3e2cf49b5a44c07528f66ccef3d9dd0ee10d1838%2Fteams-entra-graph-api-permissions-consent.png?alt=media)

## Configure application access policy

The Entra app also needs an application access policy for online meeting data.

Run these commands after replacing the placeholders:

```powershell
New-CsApplicationAccessPolicy -Identity Test-policy `
-AppIds "<Application (client) ID>" -Description "<description here>"

Grant-CsApplicationAccessPolicy -PolicyName Test-policy -Global
```

![Microsoft Learn page with PowerShell cmdlets for creating and granting a Teams application access policy](https://632025722-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FicuEWisKb5zNsnnUwY1Y%2Fuploads%2Fgit-blob-8c1ffa3eaa9e3416e5efecf258b30d2e2b6829be%2Fteams-graph-application-access-policy-powershell.png?alt=media)

## Official Microsoft references

* [Register an application in Microsoft Entra](https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app?tabs=certificate)
* [Configure app access to web APIs](https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-configure-app-access-web-apis)
* [Configure application access policy for online meetings](https://learn.microsoft.com/en-us/graph/cloud-communication-online-meeting-application-access-policy#configure-application-access-policy)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.we360.ai/deployment-and-it-ops/integrations-and-api-access/integrations/portal-integrations/microsoft-teams.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
