Microsoft Teams Integration
Connect your Microsoft Teams tenant to Phoenix so OttoBot can respond to your team's messages in Teams, under your organization's data boundary.
Prerequisites
Before you begin, ensure you have:
- An Azure subscription with permission to create an Azure Bot resource
- Permission to register applications in your Microsoft Entra ID (formerly Azure AD) directory
- Permission to upload or install an app in your Microsoft Teams tenant
- Admin access to your Phoenix organization's Integrations settings
You will collect four values from the Azure portal and paste them into Phoenix.
What you need to collect
| Value | Where it comes from |
|---|---|
| App (Client) ID | Your Azure Bot's Microsoft App ID — a GUID |
| Client Secret | A secret you generate for that app registration |
| App Type | Whether the app is single-tenant or multi-tenant |
| Directory (Tenant) ID | Your Microsoft Entra ID directory ID — a GUID |
Create the Azure Bot resource
-
Sign in to the Azure portal.
-
Select Create a resource, search for Azure Bot, and select Create.
-
Fill in the basics:
- Bot handle — a unique name, for example
contoso-ottobot. - Subscription and Resource group — choose or create as you prefer.
- Pricing tier — the free tier is sufficient to start.
- Bot handle — a unique name, for example
-
Under Microsoft App ID, choose Create new Microsoft App ID, then pick the app type:
- Multi-tenant — recommended, and the default in Phoenix.
- Single-tenant — use this if your organization's policy requires the app be limited to your directory only.
noteUser-assigned managed identity is not supported. Phoenix needs a client secret to authenticate on your behalf, and a managed identity does not provide one.
-
Select Review + create, then Create. Wait for the deployment to finish.
Find your App (Client) ID
- Open your new Azure Bot resource.
- Select Configuration in the left menu.
- Copy the value labelled Microsoft App ID.
This is a GUID, formatted like 00000000-0000-0000-0000-000000000000. This is your App (Client) ID.
Create a Client Secret
- From the Azure Bot's Configuration page, select Manage next to Microsoft App ID. This opens the app registration.
- Select Certificates & secrets in the left menu.
- Under Client secrets, select New client secret.
- Add a description (for example,
Phoenix OttoBot) and choose an expiry period. - Select Add.
- Copy the Value column immediately.
The secret Value is shown only once. If you navigate away before copying it, delete the secret and create a new one. Do not copy the Secret ID — that is a different value and will not work.
Find your Directory (Tenant) ID
- In the Azure portal, search for and open Microsoft Entra ID.
- On the Overview page, copy the Tenant ID.
This is also a GUID. This is your Directory (Tenant) ID.
Each Microsoft Teams tenant can be connected to one Phoenix organization at a time. If someone else in your company has already connected this same directory, Phoenix will tell you the Directory (Tenant) ID is already claimed — see Troubleshooting.
Enable the Teams channel
- Return to your Azure Bot resource.
- Select Channels in the left menu.
- Select Microsoft Teams, accept the terms, and select Apply.
Configure in Phoenix
- In Phoenix, navigate to Integrations in your organization's settings.
- Find Microsoft Teams and select Connect.
- Fill in the four fields:
| Field | Value |
|---|---|
| App (Client) ID | The Microsoft App ID GUID from your Azure Bot's Configuration page |
| Client Secret | The secret Value from Certificates & secrets |
| App Type | Multi-tenant or Single-tenant — must match what you chose when creating the bot |
| Directory (Tenant) ID | The Tenant ID GUID from Microsoft Entra ID → Overview |
- Select Configure Integration.
Your credentials are stored encrypted at rest. When you reopen the dialog to make a change, the Client Secret field appears blank — that is expected; re-enter it to update it.
OttoBot begins serving your Teams tenant within a few minutes.
Rotating the Client Secret
Client secrets expire. To rotate before expiry:
- In the Azure portal, open your app registration's Certificates & secrets.
- Create a new client secret and copy its Value.
- In Phoenix, open the Microsoft Teams integration, select Edit, and enter the new secret.
- Once OttoBot is responding normally, delete the old secret in Azure.
Phoenix detects the change automatically and refreshes the connection on its next cycle — no restart or support ticket needed.
Disconnecting
To remove the Microsoft Teams integration for your organization, open the integration in Phoenix and select Remove. OttoBot stops serving your Teams tenant on its next refresh cycle. Your Azure Bot resource is unaffected; delete it separately in Azure if you no longer need it.
Troubleshooting
| Symptom | Likely cause | Solution |
|---|---|---|
| "Check: microsoftAppId" | The App (Client) ID is not a valid GUID | Copy the Microsoft App ID from the Azure Bot's Configuration page. Do not paste the bot handle or resource name |
| "Check: aadTenantId" | The Directory (Tenant) ID is missing or not a valid GUID | Copy the Tenant ID from Microsoft Entra ID → Overview. It is required even for multi-tenant apps |
| "Check: microsoftAppPassword" | The Client Secret is blank or whitespace | Re-copy the secret Value (not the Secret ID) from Certificates & secrets |
| "Check: appType" | An unexpected App Type value | Select Multi-tenant or Single-tenant from the dropdown |
| "This Directory (Tenant) ID is already claimed by another organization" | This Microsoft directory is already connected to a different Phoenix organization | A directory can only serve one organization at a time. Confirm whether a colleague already connected it, or contact support if you believe this is an error |
| OttoBot does not respond in Teams | The Teams channel is not enabled, or the app was never installed in Teams | Confirm Channels → Microsoft Teams is enabled on the Azure Bot, and that the app is installed in your Teams tenant |
| Worked before, now silent | The Client Secret expired | Rotate the secret (see Rotating the Client Secret) |
Next Steps
- Slack Integration — connect a Slack workspace as well
- Supported MCP Clients — connect Phoenix to other AI tools
- MCP Tool Documentation — full tool catalog