Microsoft Teams Integrate Microsoft Teams with Atatus

Microsoft Teams is a popular real-time messaging tool for team communication. With the Atatus integration, your team is notified in a Teams channel when an incident opens — and, with the bot-based methods, you can acknowledge and resolve incidents directly from the Teams message.

Choose an integration method

Atatus supports three ways to connect Microsoft Teams. Pick the one that fits your setup:

Hosted bot Custom bot app Incoming webhook
Best for Most Atatus Cloud customers Self-hosted (on-premise), or running the bot under your own Azure app A quick, one-way notification into a single channel
Azure setup None You register your own Azure app None
Acknowledge / resolve from Teams Yes Yes No (notifications only)
Setup effort Lowest Highest Low
Note:

The hosted bot is recommended for Atatus Cloud. Use a custom bot app when you run Atatus on-premise, or want the bot to run under your own Microsoft Entra (Azure AD) app. The incoming webhook is the simplest option, but it only posts notifications — it cannot acknowledge or resolve incidents.

With the hosted bot, you connect your Microsoft tenant to the Atatus app in a couple of clicks — no Azure configuration required. A Microsoft administrator approves the app once, and Atatus can then post to your channels and receive acknowledge and resolve actions.

Connect your Microsoft tenant

  1. In Atatus, open Integrations, select Microsoft Teams, and go to the Configure » Tenants tab.
  2. Click Add tenant. You are redirected to Microsoft to sign in.

    Add a Microsoft Teams tenant

  3. Sign in with a Microsoft Entra (Azure AD) administrator account and approve the requested permissions. Only an administrator can grant this consent for the organization.

  4. After you approve, Microsoft returns you to Atatus and your tenant appears under Tenants.

Note:

The permissions Atatus requests are used only to list your teams and channels and to post messages. Atatus never reads your Teams conversations, chats, or files.

Add the Atatus app to a team

For Atatus to post into a channel, the Atatus app must be added to that team:

  1. In Microsoft Teams, open Apps, search for Atatus, and choose Add to a team.
  2. Select the team you want to receive notifications in, and click Set up.
Tip:

Add the app to the team (not a single channel) — the bot can then post to any channel in that team.

Next, choose which channel receives alerts — see Send alerts to a channel below.

Method 2 — Custom bot app (bring your own)

Use this method if you run Atatus on-premise, or you want the Teams bot to run under your own Microsoft Entra (Azure AD) app. You register an app in your Azure account, then enter its credentials in Atatus.

Throughout these steps, replace <your-atatus-host> with the address of your Atatus deployment (for Atatus Cloud, this is your Atatus dashboard URL).

Step 1 — Register an Azure Bot

  1. In the Azure portal, go to Create a resource » Azure Bot.
  2. For Type of App, choose Single Tenant.

    Register the app as single-tenant

  3. Once the resource is created, open it and note the Microsoft App ID — this is your Application (client) ID.

  4. On the app registration, open Certificates & secrets and click New client secret.

    Certificates and secrets

  5. Give the secret a description and an expiry, then click Add.

    Add a client secret

  6. Copy the secret's Value immediately (it is shown only once) — this is your Client secret.

    Copy the client secret value

  7. In Microsoft Entra ID » Overview, note your Directory (tenant) ID.

Warning:

Copy the client secret's Value, not its Secret ID. The Value is shown only once; if you lose it, create a new secret.

Step 2 — Set the messaging endpoint and enable Teams

  1. In your Azure Bot, open Configuration and set the Messaging endpoint to:

    https://<your-atatus-host>/integrations/teams/messages
    

    Set the messaging endpoint

  2. Open Channels and enable Microsoft Teams.

Step 3 — Grant Microsoft Graph permissions

So Atatus can list your teams and channels:

  1. On your app registration, go to API permissions » Add a permission » Microsoft Graph » Application permissions.
  2. Add Team.ReadBasic.All and Channel.ReadBasic.All.
  3. Click Grant admin consent for your organization.

    Microsoft Graph permissions

Step 4 — Add redirect URLs

These let you sign in to link your account and grant permissions later:

  1. On your app registration, go to Authentication, click Add a platform, and choose Web.

    Select the Web platform

  2. In the Redirect URI field, enter your Atatus consent callback, then click Configure:

    https://<your-atatus-host>/integrations/teams/consent/callback
    

    Add the consent callback redirect URI

  3. Click Add Redirect URI again, enter your link callback, then click Configure:

    https://<your-atatus-host>/integrations/teams/link/callback
    

    Add the link callback redirect URI

Step 5 — Package and upload your app to Teams

  1. Build a Teams app package — a manifest.json (see the sample below) plus a 192×192 colour icon (color.png) and a 32×32 outline icon (outline.png), zipped together with all three files at the root of the zip. (See Microsoft's guide to creating a Teams app package.)
  2. Upload the package: Teams admin center » Teams apps » Manage apps » Upload new app for the whole organization, or Teams » Apps » Manage your apps » Upload a custom app to sideload it (install a custom app directly, for testing).
  3. Add the app to the team you want to receive notifications in, and click Set up.

A minimal manifest.json — set id and botId to your Application (client) ID from Step 1, and validDomains to your Atatus host (no scheme):

{
  "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.16/MicrosoftTeams.schema.json",
  "manifestVersion": "1.16",
  "version": "1.0.0",
  "id": "<your-application-client-id>",
  "packageName": "com.atatus.teams",
  "developer": {
    "name": "<your-company>",
    "websiteUrl": "https://<your-domain>",
    "privacyUrl": "https://<your-domain>/privacy",
    "termsOfUseUrl": "https://<your-domain>/terms"
  },
  "icons": {
    "color": "color.png",
    "outline": "outline.png"
  },
  "name": {
    "short": "Atatus",
    "full": "Atatus Monitoring"
  },
  "description": {
    "short": "APM alerts, incidents and SIEM signals delivered to Microsoft Teams.",
    "full": "Atatus posts application performance, uptime and security alerts into your Teams channels as Adaptive Cards, and lets you acknowledge or resolve incidents directly from the card."
  },
  "accentColor": "#0055dc",
  "bots": [
    {
      "botId": "<your-application-client-id>",
      "scopes": ["team", "groupchat", "personal"],
      "supportsFiles": false,
      "isNotificationOnly": false
    }
  ],
  "permissions": ["identity", "messageTeamMembers"],
  "validDomains": ["<your-atatus-host>"]
}

Step 6 — Enter your credentials in Atatus

  1. In Atatus, open Integrations, select Microsoft Teams, and go to the Configure » Use a custom app tab.

    Add a Teams custom app

  2. Enter your Application (client) ID, Client secret, and Directory (tenant) ID.

  3. Enable the Single tenant toggle (you registered a Single-Tenant Azure Bot in Step 1), then click Connect.

  4. Atatus validates the credentials and adds your tenant. If the credentials are wrong, you see an error and the tenant is not added.

Next, choose which channel receives alerts — see Send alerts to a channel below.

Rotate the client secret

Azure client secrets expire (180 days by default). When the secret expires, Atatus can no longer post to Teams. Because credentials can't be edited in place, rotating a secret means re-adding the tenant:

  1. In Azure, create a New client secret on your app registration (as in Step 1) and copy its Value.
  2. In Atatus, open Configure » Tenants, open the tenant's gear menu (⚙), and choose Delete Tenant.
  3. Re-add the tenant via Configure » Use a custom app with the same Application (client) ID and Directory (tenant) ID and the new Client secret, then click Connect.
  4. Recreate the tenant's handles — they stop working once the tenant is removed.
Note:

To avoid a gap in alerts, rotate the secret before its Azure expiry date. You can also set a longer expiry (up to 24 months) when you create the secret.

Method 3 — Incoming webhook

An incoming webhook posts alerts into a single channel. It is quick to set up, but one-way — it cannot acknowledge or resolve incidents.

Note:

Microsoft is retiring Office 365 connectors. For new setups, prefer the hosted bot or a custom bot app above, which also support acknowledging and resolving incidents from Teams.

Create the webhook in Teams

  1. In Microsoft Teams, go to the channel where you want alerts, and create an incoming webhook for it (via a Workflows / Power Automate template such as "Post to a channel when a webhook request is received", or a channel connector).
  2. Copy the generated webhook URL.

    Microsoft Teams webhook URL

Add the webhook to Atatus

  1. In Atatus, open Integrations, select Microsoft Teams, and go to the Configure » Workflows Webhooks tab.
  2. Paste the webhook URL, optionally give it a name, then click Add Webhook.

    Add a Teams webhook

  3. Attach the webhook to your alerts: when you create or edit an alert policy, add this webhook as a notification channel.

Send alerts to a channel

For the hosted bot and custom bot app methods, you choose the exact team and channel by adding a handle:

  1. In Atatus, open Integrations » Microsoft Teams » Configure » Tenants and select your tenant.
  2. Click Add Handle, give the handle a name, and choose the Team and Channel you want alerts posted to, then click Add handle.

    Choose the team

    Choose the channel

  3. Use Test to send a sample message and confirm it arrives in the channel.

  4. Attach the handle to your alerts: when you create or edit an alert policy, add this Microsoft Teams channel as a notification channel.

To acknowledge or resolve incidents from Teams, each user links their account once — see Link your Teams account below. (The Teams card also prompts to link on first use.)

When you acknowledge or resolve an incident from a Teams message, Atatus records the action against your Atatus user — but only if your Teams identity is linked to your Atatus account. Linking is per-user, and there are two ways to do it:

  • From Teams: the first time you click Acknowledge or Resolve on a card without a linked account, Atatus shows a Link Atatus account button. Click it, sign in to Atatus, and you are linked.
  • From Atatus: open Integrations » Microsoft Teams » Configure » Tenants, open the tenant's gear menu (⚙), and choose Connect User Account.

    Connect your Teams user account

    Sign in with Microsoft to complete the link.

    Sign in with Microsoft

To stop attributing your Teams actions to your Atatus user, open the tenant's gear menu (⚙) and choose Disconnect User Account. You can reconnect at any time.

Disconnect your Teams user account

Manage incidents from Teams

With the hosted bot or a custom bot app, you can act on an alert without leaving Teams:

  1. When an incident opens, Atatus posts a card to the channel with Acknowledge and Resolve buttons.
  2. Click Acknowledge to take ownership, or Resolve to close the incident. The card updates to the new status, and the change is reflected in Atatus (and vice-versa).
  3. The first time you act on a card, you are prompted to link your account — see Link your Teams account above. After that, your actions are attributed automatically.

    Acknowledge or resolve an incident from Teams

Note:

Acknowledge and resolve are available only with the bot methods. Incoming webhooks are notification-only.

Grant application permissions

If listing channels or handling incident actions stops working — for example, after you add new permissions — a Microsoft administrator can re-grant the app's permissions:

  1. Open the tenant's gear menu (⚙) and choose Grant application permissions.
  2. Sign in as a Microsoft Entra (Azure AD) administrator and approve.
Note:

Granting application permissions requires a Microsoft administrator. If you are not one, ask your Microsoft administrator to complete this step.

Remove a tenant or webhook

To disconnect a tenant, open Configure » Tenants, select it, open its gear menu (⚙), and choose Delete Tenant. To remove a webhook, open Configure » Workflows Webhooks and delete it from the list.

Note:

Removing a tenant deletes the connection from Atatus only. It does not uninstall the Atatus app from Teams, and it does not revoke the app's Microsoft Entra (Azure AD) consent — do those from the Teams admin center and the Azure portal if you want a full teardown.

Troubleshooting

  • Notifications don't arrive — make sure the Atatus app has been added to the team (not just a channel), and that a handle points at the right team and channel. Send a Test from the handle to confirm.
  • The channel list is empty or shows no names — grant the Microsoft Graph permissions (custom app: Step 3; hosted bot: use Grant application permissions), then reopen the channel picker.
  • Acknowledge or resolve from Teams asks you to link — this is expected the first time. Click Link Atatus account, or use Connect User Account in Atatus, to link your identity.
  • Custom app: a sign-in or redirect error — confirm the Redirect URIs (Step 4) exactly match your Atatus host, including https:// and no trailing slash.