Skip to main content
This integration is currently hidden. Email support@abundly.ai if you want to enable it.
Your agent can communicate with you and your team through Microsoft Teams, appearing as its own named bot. Users can @mention it in channels, group chats, or direct messages to trigger the agent directly.

Example use cases

  • “@Releaser time to cut a new release” — triggers your deployment agent directly in a channel
  • “@Researcher summarise everything we know about Acme Corp” — kicks off a research agent from Teams
  • “@Standup post a daily standup summary to the Engineering channel every morning”

Prerequisites

  • Microsoft Teams with Developer Portal access
  • Azure Portal access (admin role, for API permissions only)
  • Microsoft Teams Admin Center access (Teams administrator role)
  • The Abundly agent you want to connect

How to connect

The setup takes about 15–20 minutes across the Developer Portal, Azure Portal, and Teams Admin Center.
1

Create the Teams app

  1. In Microsoft Teams, open the Developer Portal app (search for it in Apps)
  2. Go to Apps → New app
  3. Fill in the basic information — give it the same name as your agent (e.g. “Releaser”), add a short description and your company details
  4. Go to Branding and upload icons if desired
2

Create the bot

  1. Go to App features → Bot
  2. Click Create a new bot, give it the same name as your agent, and click Add
  3. Set the Endpoint address to the messaging endpoint URL shown in Abundly (format: https://your-domain/api/ms-teams/bot/YOUR-AGENT-ID)
  4. Go to Client secret → Add a client secret
  5. Copy the secret value immediately — it will not be shown again. This is your botAppSecret for Abundly
  6. Copy the Bot ID shown at the top of the page. This is your botAppId for Abundly
  7. Back on the Bot feature page, check the scopes: Personal, Team, and Group chat
  8. Click Save
3

Grant API permissions in Azure Portal

  1. Go to portal.azure.com and navigate to Azure Active Directory → App registrations
  2. Find the app registration that was automatically created — it will have the same name as your bot
  3. Go to API permissions → Add a permission → Microsoft Graph → Application permissions and add:
    • Team.ReadBasic.All
    • Channel.ReadBasic.All
    • ChannelMessage.Read.All
    • Chat.ReadWrite.All
    • User.Read.All
  4. Click Grant admin consent and confirm
  5. Copy your Tenant ID from the Azure AD overview page — you will need it in the next step
4

Enter credentials in Abundly

In your agent’s settings, open the Microsoft Teams integration panel and enter:
FieldWhere to find it
botAppIdBot ID from step 2
botAppSecretClient secret from step 2
tenantIdAzure Tenant ID from step 3
Click Save.
5

Publish the app to your org

  1. In the Developer Portal, go to App package editor and replace the manifest with the template below, substituting the placeholder values:
Manifest template
{
  "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.16/MicrosoftTeams.schema.json",
  "version": "1.0.0",
  "manifestVersion": "1.16",
  "id": "YOUR-APP-REGISTRATION-GUID",
  "name": {
    "short": "YOUR-AGENT-NAME",
    "full": "YOUR-AGENT-NAME"
  },
  "developer": {
    "name": "YOUR-COMPANY-NAME",
    "websiteUrl": "https://your-company.com",
    "privacyUrl": "https://your-company.com/privacy",
    "termsOfUseUrl": "https://your-company.com/terms"
  },
  "description": {
    "short": "Abundly agent bot",
    "full": "Abundly agent bot for Microsoft Teams"
  },
  "icons": {
    "outline": "outline.png",
    "color": "color.png"
  },
  "accentColor": "#ffffff",
  "bots": [
    {
      "botId": "YOUR-BOT-ID-GUID",
      "scopes": ["personal", "team", "groupChat"],
      "isNotificationOnly": false,
      "supportsFiles": false
    }
  ],
  "validDomains": []
}
The id field is your App Registration GUID and botId is your Bot ID — both found on the Developer Portal bot configuration page.
We currently recommend manifestVersion: "1.16". Versions 1.25 and higher may require additional properties that are outside the scope of this guide.
  1. Go to Publish → App validation and resolve any errors before proceeding
  2. Go to Publish → Publish to org and click Publish
The status should show Published to org or Submitted (awaiting admin approval).
6

Approve the app in Teams Admin Center

  1. Go to admin.teams.microsoft.com
  2. Navigate to Teams apps → Manage apps and search for your app name
  3. If the status shows Blocked, click on the app and click Allow
Admin approval changes can take up to 30 minutes to propagate across the Microsoft Teams client.
7

Add the bot to a team

  1. In Microsoft Teams, navigate to the team you want the bot in
  2. Click the three dots (…) next to the team name → Manage team → Apps
  3. Click Get more apps and look under Built for your org
  4. Find your bot, click it, and add it to the desired team and channel
The bot is now live. Users can @mention it in that channel and it will route to the Abundly agent.

Things to know

One app per agent — each agent requires its own Microsoft Teams app and bot. There is no way to have multiple bot identities within a single Teams app.
Secret expiry — client secrets expire. Note the expiry date and rotate the secret in both the Developer Portal and Abundly before it expires.

Troubleshooting

  • Add the bot to the channel — Azure knowing about the bot is not enough; it must be installed into the Teams roster (step 7)
  • Check the endpoint URL — verify the messaging endpoint in the Developer Portal matches the URL shown in Abundly (https://your-domain/api/ms-teams/bot/YOUR-AGENT-ID)
  • Verify credentials — confirm the botAppId, botAppSecret, and tenantId are entered correctly in Abundly
The bot has not been installed into the team. Complete step 7 to add it to the roster.
  • The app may not have been approved yet in the Admin Center (step 6)
  • Admin changes can take up to 30 minutes to propagate — wait and try again
  • Try a hard refresh in your browser — some Microsoft Teams pages don’t update automatically
  • Ensure the app status in Admin Center is Allowed, not Blocked
Go to Microsoft Teams Admin Center → Teams apps → Permission policies → Global (Org-wide default) and ensure custom apps are set to Allow. If you’ve just made this change, try a hard refresh in your browser before retrying.
  • Ensure manifestVersion is "1.16" — do not use 1.25 or higher
  • Ensure all fields in developer and description are filled in — empty {} objects will fail validation
  • Ensure the id field is a plain GUID with no extra characters or braces