Set up Microsoft Teams for background agents
Microsoft Teams is the second messaging channel for background agents, next to Slack. Your organization registers one Azure Bot, and you store its credentials in Willow once, at the org level.
The Microsoft Teams row appears only when the Microsoft Teams Agent Channel flag is on under Beta Features. The flag isn't in the customer list yet, so ask your Willow contact to turn it on for your organization.
Willow stores the bot registration, but background agents don't receive or answer Teams messages yet. Setting this up now means the bot is ready when message handling ships. Nothing is sent to Teams in the meantime.
How it differs from Slack
| Slack | Microsoft Teams | |
|---|---|---|
| Bot identity | One Slack app per agent, created by Willow | One Azure Bot per organization, created by you in Azure |
| Where you set it up | Org tokens in Channels configurations, then a Slackbot App section on each agent | Channels configurations only |
| How messages reach Willow | Socket Mode or the HTTP Events API | An HTTPS messaging endpoint that Teams calls |
Because every agent shares the organization's bot, routing a Teams message to the right agent will be driven by triggers on each agent, the same way Slack channel triggers work.
Before you start
You need:
- An Azure subscription where you can create an Azure Bot resource.
- Permission in Microsoft Entra ID to create an app registration and a client secret for it. Creating the bot usually creates the app registration for you.
- A Willow admin role that can edit organization settings, which is needed to save the configuration.
Step 1: Create the Azure Bot
- In the Azure portal, create an Azure Bot resource. Microsoft's walkthrough is Create an Azure Bot resource.
- For Type of App, choose Single Tenant.
- For Creation type, let Azure create a new Microsoft App ID, or pick an existing app registration in your tenant.
- Leave the Messaging endpoint empty for now. Willow doesn't provide one until message handling ships.
- Open the bot's Channels page and add Microsoft Teams.
Step 2: Collect the credentials
Willow needs three values from the bot's app registration:
| Value | Where to find it |
|---|---|
| Microsoft App ID | The bot's Configuration page, or Application (client) ID on the app registration's Overview page. |
| Directory (tenant) ID | The app registration's Overview page. |
| Client secret | On the app registration, open Certificates & secrets and select New client secret. Copy the Value right away, because Azure only shows it once. |
Both IDs are GUIDs, for example 00000000-0000-0000-0000-000000000000.
Step 3: Save them in Willow
- Open Manage > Machine Users > Background Agents and select the gear icon (Settings). The page lives at
/manage/background-agents/settings. - In the Channels configurations card, find the Microsoft Teams row and select Set up.
- Enter the Microsoft App ID, the Directory (tenant) ID, and the Client secret.
- Select Save.
The row shows Configured once all three are stored. Willow encrypts the client secret. Afterwards the dialog shows only its first few characters, never the whole value.
Rotate or remove the credentials
- Rotate the client secret: create a new secret in Azure, open Manage on the Microsoft Teams row, paste the new value into Client secret, and select Save. The App ID and tenant ID stay as they are. Azure client secrets expire, so plan to do this before the expiry date you chose in Azure.
- Change the bot: replace the App ID, tenant ID, and client secret together, then save.
- Remove everything: select Clear in the dialog. The row goes back to Not connected.
Troubleshooting
| Symptom | What to check |
|---|---|
| No Microsoft Teams row in Channels configurations | The Microsoft Teams Agent Channel beta flag is off for your organization. Ask your Willow contact to turn it on. |
| App ID must be a GUID or Tenant ID must be a GUID | Paste the ID itself, not the bot's resource name or your tenant's domain name. |
| Client secret is required | The first save needs a client secret. Later saves can leave the field empty to keep the stored one. |
| Row shows Partially configured | One of the three values is missing. Open Manage and fill in the empty field. |
| Agents don't answer in Teams | Expected during the preview. Willow stores the configuration but doesn't handle Teams messages yet. |