Microsoft Teams
Connect Microsoft Teams to chat with the Assemble agent via bot messages
Microsoft Teams Integration
Connect Microsoft Teams so your team can message the Assemble bot in channels, group chats, and direct messages.
Prerequisites
- An Azure account with permissions to create Bot resources
- A Microsoft Teams environment where you can install custom apps
- Your Assemble workspace's webhook URL (found in Settings > Integrations)
Step 1: Create an Azure Bot
- Go to the Azure Portal and search for Azure Bot
- Click Create and fill in the required fields:
- Bot handle: A unique name (e.g.,
assemble-bot) - Subscription: Your Azure subscription
- Resource group: Create new or use existing
- Bot handle: A unique name (e.g.,
- Under Microsoft App ID, select Create new Microsoft App ID
- Select Single Tenant for enterprise use (or Multi Tenant for broader access)
- Click Review + Create → Create
Step 2: Get your credentials
Once the bot resource is created, you need three values:
App ID
Bot resource → Configuration → copy the Microsoft App ID
App Password
- In the Configuration page, click Manage Password
- This opens Certificates & secrets
- Click New client secret → add a description → choose expiry
- Copy the Value column (not the Secret ID)
The client secret value is only shown once. Copy it immediately — you won't be able to see it again.
Tenant ID
Bot resource → Overview → copy the Directory (tenant) ID
Step 3: Set the messaging endpoint
- In the bot resource, go to Configuration
- Set the Messaging endpoint to:
https://YOUR_DEPLOYMENT.convex.site/webhooks/teamsFind your exact webhook URL in Assemble under Settings > Integrations > Connect Teams.
- Click Apply
Step 4: Enable the Teams channel
- In the bot resource, go to Channels
- Click Microsoft Teams
- Accept the terms of service
- Click Apply
Step 5: Create the app manifest
Create a file called manifest.json:
{
"$schema": "https://developer.microsoft.com/json-schemas/teams/v1.16/MicrosoftTeams.schema.json",
"manifestVersion": "1.16",
"version": "1.0.0",
"id": "YOUR_APP_ID",
"packageName": "com.yourcompany.assemble",
"developer": {
"name": "Your Company",
"websiteUrl": "https://your-domain.com",
"privacyUrl": "https://your-domain.com/privacy",
"termsOfUseUrl": "https://your-domain.com/terms"
},
"name": {
"short": "Assemble",
"full": "Assemble Data Analyst"
},
"description": {
"short": "Chat with Assemble AI",
"full": "Talk to the Assemble data analyst from Teams. Ask questions, run analyses, and get insights."
},
"icons": {
"outline": "outline.png",
"color": "color.png"
},
"accentColor": "#FFFFFF",
"bots": [
{
"botId": "YOUR_APP_ID",
"scopes": ["personal", "team", "groupchat"],
"supportsFiles": false,
"isNotificationOnly": false
}
],
"permissions": ["identity", "messageTeamMembers"],
"validDomains": []
}Replace YOUR_APP_ID with the App ID from step 2.
Icons
You need two PNG icons in the same directory as the manifest:
- outline.png — 32×32 pixels, transparent background
- color.png — 192×192 pixels, your app icon with background color
ZIP the manifest and both icons together into a single .zip file.
Step 6: Upload to Teams
For testing (sideload)
- Open Microsoft Teams
- Go to Apps → Manage your apps
- Click Upload an app → Upload a custom app
- Select your ZIP file
For your organization
- Go to the Teams Admin Center
- Navigate to Teams apps → Manage apps
- Click Upload new app
- Select your ZIP file
Step 7: Connect in Assemble
- In your Assemble workspace, go to Settings > Integrations
- Click Connect Teams
- Paste the App ID (from step 2)
- Paste the App Password (from step 2)
- Optionally paste the Tenant ID (required for single-tenant apps)
- Click Connect
Send a message to the bot in Teams to start chatting with Assemble.
Usage
Personal chat
Find the bot in your Teams apps and start a 1:1 conversation.
Channel mentions
@mention the bot in a team channel. It will reply in a thread.
Group chats
Add the bot to a group chat — it responds when mentioned.
Artifacts
When the bot creates an artifact, it posts a summary with a link to view the full report in the web app.
Receiving all channel messages
By default, the bot only receives @mentions in channels. To receive all messages without being mentioned, add Resource-Specific Consent (RSC) permissions to your manifest:
{
"authorization": {
"permissions": {
"resourceSpecific": [
{
"name": "ChannelMessage.Read.Group",
"type": "Application"
}
]
}
}
}Add this block at the top level of your manifest.json.
Limitations
| Feature | Support |
|---|---|
| @mentions | Yes |
| All channel messages | Requires RSC permissions (see above) |
| Streaming | Post-and-edit fallback (no native streaming) |
| Reactions | Not supported |
| Slash commands | Not supported |
| Typing indicators | Not supported |
Troubleshooting
Bot doesn't respond
- Check that the integration is Enabled in Settings > Integrations
- Verify the messaging endpoint URL in Azure Bot Configuration
- Make sure the Teams channel is enabled in the bot resource
Authentication errors
- Verify the App Password (client secret) hasn't expired
- For single-tenant apps, ensure the Tenant ID is set correctly
- Check that the App ID matches between the Azure Bot and Assemble settings
App doesn't appear in Teams
- Wait a few minutes after uploading — it can take time to propagate
- Check the Teams Admin Center for any policy restrictions
- Try sideloading for testing first