Skip to main content
Part 1 of the Teams setup. At the end of this page you will have a bot identity (client ID + tenant ID + client secret) wired to StandIn’s endpoints, with the Graph permissions consented. All screenshots are from the Azure portal; the values shown are placeholders.

1. Register a Microsoft Entra app

In the Azure portal, search for App registrations:
Azure portal search bar with App registrations typed in and the App registrations service shown in the results
Select New registration:
  • Name: anything you like (users never see it; the Teams app name comes from the manifest).
  • Supported account types: Single tenant only is the right choice for a bot that serves your own organization.
  • Redirect URI: leave empty.
Register an application form in the Azure portal with a name filled in and Single tenant only selected
Official reference: Register an application with the Microsoft identity platform.

2. Record the IDs

On the app’s Overview page, copy two values - you will need them repeatedly:
  • Application (client) ID - this is your botId (and the MicrosoftAppId of the Azure Bot).
  • Directory (tenant) ID - your tenant.
Entra app registration overview page highlighting the client ID and tenant ID fields

3. Create a client secret

Under Certificates & secrets, select New client secret and copy the secret Value immediately - it is shown only once. StandIn uses this credential (App ID + secret + tenant) to authenticate as your bot; you provide it during pairing or in the dashboard when registering the identity.
Treat the client secret like a password: store it in a secret manager, never commit it, and set a reminder before its expiry date - calls stop when it lapses.

4. Create the Azure Bot resource

Search the portal for Bot and open Bot Services:
Azure portal search bar with Bot typed in and the Bot Services service shown in the results
Create an Azure Bot and fill in the basics:
  • Bot handle / subscription / resource group: your choice.
  • Data residency: Global is typical.
  • Pricing tier: the free F0 tier is fine (Standard channels like Teams are free).
  • Type of App: Single Tenant, matching the app registration.
Create an Azure Bot basics form in the Azure portal
Under Microsoft App ID, choose Use existing app registration and paste the App ID (client ID) and App tenant ID from step 2, then Review + create.
Create an Azure Bot form showing Use existing app registration selected with App ID and tenant ID fields
Once deployment finishes, the resource’s Overview shows the essentials - pricing tier, location, and (after step 7) the messaging endpoint:
Azure Bot resource overview page showing resource group, subscription, pricing tier, and messaging endpoint
Official reference: Create an Azure Bot resource.

5. Enable the Microsoft Teams channel

Open the new Azure Bot resource, go to Settings → Channels, and select Microsoft Teams. Accept the terms and apply; the channel appears under connected channels as Healthy.
Azure Bot Channels page showing the Microsoft Teams channel connected with a healthy status
Opening the channel shows three tabs - Messaging, Calling, and Publish. Messaging is on by default (Microsoft Teams Commercial is right for most tenants); the next step configures Calling.
Microsoft Teams channel Messaging tab showing Microsoft Teams Commercial selected

6. Enable calling and set the webhook

Still in the Teams channel, open the Calling tab:
  1. Check Enable calling.
  2. Set Webhook (for calling) to the calling webhook URL from your StandIn dashboard (shown on your identity after you register it).
  3. Apply.
Microsoft Teams channel Calling tab with Enable calling checked and the webhook field highlighted
Official references: Registering a calling bot (Microsoft Graph communications samples - covers this whole page end to end) and Register a calling bot for Teams.

7. Set the messaging endpoint (optional, for chat)

Voice works without this step. If you also want Teams chat, go to Settings → Configuration and set Messaging endpoint to the URL from your StandIn dashboard.
Azure Bot Configuration page with the messaging endpoint field highlighted
Chat only works after you also set your Agent chat URL in the StandIn dashboard - the https:// URL where your agent serves Bot Framework chat messages, e.g. https://<your-public-host>/api/messages (paste the bare host and StandIn appends /api/messages for you). Until then, chat messages get a “chat endpoint not configured” reply.

8. Grant Graph permissions

Back on the app registration (the same Entra app as botId): API permissions → Add a permission → Microsoft Graph → Application permissions, add the list below, then select Grant admin consent for your tenant (requires an admin).
Azure portal API permissions blade with Add a permission opening the Microsoft Graph API panel
This is the canonical list - it applies to all six bridges and plugins:
PermissionPurpose
Calls.JoinGroupCall.Allanswer / join Teams calls and meetings
Calls.JoinGroupCallAsGuest.Alljoin meetings as a guest participant
Calls.AccessMedia.Allaccess real-time Teams call audio/video media
Calls.Initiate.Alloutbound 1:1 “call me back” (skip if unused)
Calls.InitiateGroupCall.Alloutbound group “call me back” (skip if unused)
Chat.Read.Allresolve chat / thread ids and read message context
ChatMessage.Read.Chatread messages in chats the bot is installed in
Sites.ReadWrite.Allupload files / minutes to SharePoint (OneDrive) for chat attachments (optional)
After consent, every row shows a green Granted status:
API permissions page listing the Calls application permissions, each with a green Granted status
Official references: Registering a calling bot (lists the Calls.* permissions), Grant tenant-wide admin consent, and the cloud communications API overview.

Checkpoint

You should now have:
  • Client ID (botId), tenant ID, and a client secret
  • An Azure Bot with the Teams channel enabled
  • Calling enabled and the webhook pointed at StandIn
  • (Optional) Messaging endpoint set for chat
  • Graph permissions admin-consented
Next: Get the Teams app package.