Skip to main content
Back to messaging or digital channels Connect your agent to Microsoft Teams chats and channels through a single-tenant Azure Bot and a Teams app. You register the bot in Azure, create the Artemis connection, point the bot’s messaging endpoint at Artemis, then package and install the Teams app. The setup requires:
  1. Prepare the Azure Bot and collect its credentials.
  2. Artemis channel configuration: create the connection, then copy its messaging endpoint.
  3. Configure the messaging endpoint and the Teams channel in Azure.
  4. Create and install the Teams app.
  5. Verify the connection in a real Teams conversation.
After setup, Teams sends each activity to Artemis. Artemis validates the Bot Framework token, runs the agent, and replies in the same conversation. Important considerations
  • Use the same Microsoft App ID everywhere: The Bot App ID, the App ID credential, the Azure Bot Microsoft App ID, and the Teams manifest botId must all be the same GUID. Artemis selects the connection by that ID and checks that the Bot Framework JWT audience matches it.
  • Use a single-tenant bot: Microsoft ended support for creating new multi-tenant Azure Bot registrations after July 31, 2025. Existing multi-tenant bots keep running, but this setup uses a single-tenant identity and the exact App Tenant ID.
  • The client secret Value appears once: Copy the Value, not the Secret ID. The Secret ID can’t authenticate.
  • Manifest changes need a reinstall: Endpoint and runtime changes apply immediately. Scope, supportsFiles, icon, and command changes need an updated package and a reinstall.

Prerequisites

Confirm these before you start.
  • Access to the Microsoft Entra tenant where you’ll install the Teams app, with permission to manage app registrations and Azure Bot resources.
  • A Teams policy that permits custom app upload, or an administrator who can publish the app.
  • Artemis project access with permission to open Deployments -> Channels, and a deployed agent in the environment you intend to bind.

Prepare the Azure Bot

Do this in Azure before you open Artemis. Select Open Azure portal in the setup guide to jump straight there.
1

Create or select an Azure Bot resource

In the Azure portal, create an Azure Bot or open the existing one dedicated to this agent. Keep development and production on separate bot registrations.
2

Use a single-tenant identity

For a new bot, choose Single Tenant, and create or select the Microsoft Entra app registration that represents the bot. Artemis uses an App ID, client secret, and tenant ID, so don’t select a managed-identity-only setup.
3

Copy the Microsoft App ID and App Tenant ID

  1. Go to Azure Bot -> Configuration.
  2. Copy the Microsoft App ID, a GUID.
  3. Copy the App Tenant ID, the Microsoft Entra Directory (tenant) ID.
Don’t copy the Teams app package ID, the Azure resource ID, an object ID, or a value beginning with 28:.
4

Create a client secret

  1. Select Manage beside Microsoft App ID to open the linked app registration.
  2. Go to Certificates & secrets and create a client secret with an approved expiration.
  3. Copy the Value immediately and store it in your secret manager.

Artemis channel configuration

Create the connection before Teams sends an activity. Artemis needs the saved App ID and credentials to resolve the URL, validate inbound JWTs, get Bot Framework tokens, and send replies.
  1. Open Artemis and select the project.
  2. Go to Deployments -> Channels -> Microsoft Teams -> + New. The New Microsoft Teams Connection dialog opens, with the setup guide on the left and the fields on the right.
  3. Configure the fields:
    Artemis asks for the Microsoft App ID twice, once as the routing identifier and once as an encrypted credential. Paste the same GUID into both fields.
  4. Select Create.
  5. Copy the Webhook URL from the connection’s summary panel. It ends with the encoded Microsoft App ID.

Configure the messaging endpoint

Point the Azure Bot at Artemis and turn on the Teams channel.
  1. Confirm the Artemis connection is Active, and that Bot App ID and App ID match.
  2. In Azure Bot -> Configuration, paste the full Artemis URL into Messaging endpoint. Turn on Enable Streaming Endpoint, and select Apply.
  3. Reopen Configuration and confirm Azure kept the complete endpoint.
  4. In the Azure Bot resource, open Channels, add Microsoft Teams, accept the terms, and save. The bot receives no Teams activity until you configure this channel.
Use the full URL that ends with the Microsoft App ID. Don’t replace it with the generic endpoint, the Teams app package ID, a tenant ID, an object ID, or the Azure resource name.
A successful save doesn’t prove authentication. Continue through installation and a real message test.

Create and install the Teams app

Package the bot as a Teams app. Select Open Teams Developer Portal in the setup guide to jump straight there.
1

Create or import the app

In the Teams Developer Portal, create an app for this bot, and add the name, descriptions, icons, developer details, and privacy and terms URLs your organization requires.
2

Add the bot capability and scopes

  1. Under App features, add Bot, select Enter a bot ID, and paste the Microsoft App ID.
  2. Enable only the scopes you’ll test and support: personal, team, and groupChat. Each is a separate install context.
3

Enable files only when needed

Set supportsFiles to true when users send attachments. Artemis ingests file and inline-image attachments only from personal chats, and skips file-only activities in teams and group chats.
For Microsoft 365 Copilot, also set webApplicationInfo.id and copilotAgents.customEngineAgents.id to the Microsoft App ID.
4

Validate and download the package

Resolve every Developer Portal validation error, then download the app package. If you edit the manifest directly, keep botId equal to the Microsoft App ID and include valid color and outline icons.
5

Upload or publish the app

For development, go to Apps -> Manage your apps -> Upload a custom app, if tenant policy allows it. For a controlled rollout, have a Teams administrator publish the app and assign app permission and setup policies.

Verify the connection

Artemis doesn’t synthesize Teams activities, so a real conversation is the only end-to-end proof.
  1. Install the app for yourself, open its personal chat, and send a unique message.
  2. Confirm a typing indicator where applicable, and one reply from this bot rather than an older installation or another environment.
  3. If the agent renders actions or forms, submit an Adaptive Card Action.Execute, and confirm the values reach the same session.
  4. Install the bot in a test team and group chat only if the manifest includes those scopes. Confirm @mentions and routing in each context, because a personal-chat pass doesn’t prove team or group behavior.
  5. With supportsFiles on, send an approved file and an inline image in personal chat, and confirm the agent processes them.
  6. To test in Copilot, open the app in Teams and select Open with Copilot.

Security and identity boundaries

Inbound traffic and outbound replies each have their own protection.
  • Inbound JWT: Every activity must carry a Microsoft Bot Framework bearer JWT. Artemis validates the signing key, issuer, App ID audience, and the service URL claim when present.
  • Client secret: It authorizes outbound Bot Framework calls and member lookup. Store it only in Artemis, never in the manifest, browser code, screenshots, or tickets.
  • Secret rotation: Client secrets expire. Create a replacement before expiration, update Artemis, verify a reply, and only then remove the old secret.
  • Reply targets: Artemis replies only to the serviceUrl from the authenticated activity, and checks allowed attachment hosts before it forwards a bot token.
  • Environments: Use separate App IDs, secrets, Azure Bot resources, Teams app packages, and connections for development and production.

Manage the channel connection

Open a connection from Deployments -> Channels -> Microsoft Teams to manage it. The page has a header, three tabs, and a summary panel on the right. Header. Shows the connection name, its environment badge, its status, and when it last changed. The … overflow menu holds the connection-level actions. Summary panel. Stays visible on every tab.
Artemis encrypts credentials after you save them. Leave a field blank to keep its current value, or enter a new value to replace it.Select Save Credentials to apply your changes.

Troubleshoot connection issues

Most failures trace to a mismatched App ID or a stale manifest.

Microsoft reference

Use these pages when you need detail beyond what this article covers. Artemis field names and the runtime endpoint shown in the connection stay the source of truth for this integration.
Related articles: