Integrate OpenClaw with Microsoft Teams¶
This document describes how to register a Microsoft Entra single-tenant application, create an Azure Bot, and integrate OpenClaw with Microsoft Teams.
Prerequisites¶
Before getting started, make sure:
- You have a customer Microsoft Entra tenant and Azure subscription.
- You have permissions to create app registrations and Azure Bots.
- The Messaging endpoint is a publicly accessible HTTPS URL.
Fields¶
| OpenClaw Field | Microsoft Name | Value to Enter | Notes |
|---|---|---|---|
| Client ID | Application (client) ID / Microsoft App ID | The GUID from the Entra app registration Overview page | Do not enter Object ID |
| Client Secret | Client secret -> Value | The Value displayed after creating a client secret | Do not enter Secret ID; Value is displayed only once |
| Tenant ID | Directory (tenant) ID / App Tenant ID | The Entra tenant GUID | Must match the tenant where the app registration was created |
| Messaging endpoint | Azure Bot -> Configuration -> Messaging endpoint | The complete URL provided by OpenClaw | Must use the full HTTPS URL |
Obtain Client ID, Tenant ID, and Client Secret¶
Register an Application¶
-
Visit Microsoft Entra admin center and select Entra ID -> App registrations -> New registration.
Configure the following:
- Name: For example,
OpenClaw-Teams-Prod - Supported account types: Select
Accounts in this organizational directory only - Redirect URI: Usually not required for this workflow
- Name: For example,
-
After registration is complete, copy the following values from the Overview page:
- Application (client) ID: Use as the OpenClaw Client ID
- Directory (tenant) ID: Use as the OpenClaw Tenant ID
Create a Client Secret¶
-
In the app registration, select Certificates & secrets -> Client secrets -> New client secret.
-
Enter a description and expiration period, then select Add.
-
Immediately copy the Value after creation. This value is the OpenClaw Client Secret.
Note
Microsoft will not display the Secret Value again. If you forget to save it, you must create a new Client Secret.
Create and Configure an Azure Bot¶
Open the Azure portal and select Create a resource -> search for bot -> Azure Bot -> Create.
Configure App ID¶
In the Microsoft App ID or identity configuration section:
- Select Single Tenant.
- Select Use existing app registration.
- Enter the previously created Application (client) ID.
- If the page requires a Tenant ID, enter the same Directory (tenant) ID.
After completing the configuration, select Review + create -> Create.
Configure Messaging Endpoint¶
-
Open the Azure Bot resource and select Settings -> Configuration.
-
Enter the complete endpoint provided by OpenClaw into Messaging endpoint, then select Apply.
The endpoint address must:
- Use HTTPS.
- Be publicly accessible.
- Preserve the complete path provided by OpenClaw.
Enable Microsoft Teams Channel¶
-
Go to Channels -> Microsoft Teams.
-
Accept the related terms. If the page displays Cloud environment, select the option that matches the customer's Teams environment, then select Apply.
Enter Information in OpenClaw¶
| OpenClaw Field | Value to Enter |
|---|---|
| Client ID | The Application (client) ID of the Entra application |
| Client Secret | The Value of the Entra Client secret |
| Tenant ID | The Directory (tenant) ID of the Entra application |
After saving, verify that there are no extra spaces or line breaks in any field.
Add the Bot to Teams¶
After enabling the Teams channel, you still need to add the Bot to Teams.
Test Environment¶
-
In Azure Bot, select Channels -> Microsoft Teams.
-
Obtain the Teams test link on the page, open it, and select either the Teams client or Teams Web to add the Bot to Teams.
Production Environment¶
For production environments, it is recommended to create a Teams App, set the Bot ID to the Entra application's Application (client) ID, and then upload or publish it to the customer's Teams tenant.
Adding the Bot only through the Bot GUID is suitable for testing and is not recommended for production environments.
Verification Checklist¶
| Check Item | Success Criteria |
|---|---|
| App registration | Application type is Single Tenant |
| Client ID | Application ID is consistent across OpenClaw, Entra, and Azure Bot |
| Client Secret | Secret Value is used and has not expired |
| Tenant ID | Tenant ID in OpenClaw matches the Entra tenant ID |
| Messaging endpoint | Configured with the complete HTTPS URL provided by OpenClaw |
| Teams channel | Microsoft Teams channel is enabled |
| Teams installation | Bot has been added to Teams |
| Message test | Teams messages successfully trigger OpenClaw responses |
Secret Rotation¶
Before the Client Secret expires:
- Create a new Client Secret.
- Update the new Value in OpenClaw.
- Send a Teams test message to verify it works.
- Delete the old Secret afterward.
Troubleshooting¶
Bot Cannot Be Found in Teams¶
Check whether the Teams channel is enabled and whether the Bot has been added to Teams through the test link or Teams App.
No Response After Sending Messages¶
Check the following:
- Whether the Messaging endpoint is complete.
- Whether the endpoint is publicly accessible.
- Whether the Client ID, Client Secret, and Tenant ID are correct.
- Whether the Cloud environment is selected correctly.
401 or 403 Errors¶
Check the following:
- Whether the Secret ID was entered by mistake.
- Whether the Client Secret has expired.
- Whether the Tenant ID belongs to the tenant where the current app registration was created.