Skip to main content
Rootly’s Microsoft Teams integration brings incident response and Rootly On-Call into Teams. When an incident starts, Rootly can create a dedicated Teams channel, invite responders, and post real-time updates. With Rootly On-Call, responders can page each other from a Teams channel, get paged in Teams, and acknowledge, escalate, or resolve alerts from an interactive alert card without leaving Teams. You can also create Microsoft Teams meetings directly from incidents for live collaboration.

Incident Channels

Automatically create dedicated Teams channels for each incident with responders invited

Real-time Updates

Post incident status changes, severity updates, and key events to Teams channels

Video Meetings

Create Microsoft Teams meetings for live incident collaboration with one click

Custom Notifications

Control which events trigger Teams notifications using workflow conditions

Page from Teams

Page a team, service, functionality, escalation policy, or user from any Teams channel

Actionable Alert Cards

Acknowledge, escalate, resolve, snooze, or mark alerts as noise from the alert card

Escalation Policy Targets

Post alerts to public or private Teams channels as part of an escalation policy

Schedule Notifications

Send shift updates to a channel and personal shift reminders to your Teams chat

How It Works

1

Connect Microsoft Teams

Authorize Rootly to access your Teams workspace via OAuth.
2

Install the Rootly Bot

Add the Rootly app to your Teams workspace to enable channel creation and messaging.
3

Configure On-Call and Workflows

Route alerts to Teams channels through escalation policies, and set up workflows to automatically create channels, send messages, or start meetings when incidents or alerts occur.

Before You Begin

Before you start:
  • Rootly account with Admin permissions
  • Microsoft Teams account with access to the workspace you want to connect
  • Ability to install apps in your Teams workspace (or admin approval from your Microsoft 365 admin)
Rootly recommends connecting with a service account rather than a personal account. This ensures the integration stays active if team members leave your organization.

Installation

Setting up the Microsoft Teams integration involves two steps that work together. First, you authorize Rootly via OAuth so it can call the Microsoft Teams API on your behalf. Then, you install the Rootly bot directly inside Teams so it can create channels and post messages. Both steps are required — OAuth alone isn’t enough to create channels or send messages.

Part 1: Connect via OAuth

The OAuth flow grants Rootly permission to interact with your Microsoft Teams workspace through the API. You’ll be redirected to Microsoft to sign in and approve the required permissions, then returned to Rootly automatically.
1

Open Integrations

In Rootly, go to Settings → Integrations and search for Microsoft Teams.Rootly integrations page with Microsoft Teams search
2

Start Setup

Click Setup on the Microsoft Teams integration to begin the OAuth flow.Microsoft Teams integration setup button
3

Sign in to Microsoft

You’ll be redirected to Microsoft. Select your Microsoft 365 work account — this should be the service account you intend to use for the integration.Microsoft account selection screen
4

Review and approve permissions

Microsoft will show you the permissions Rootly is requesting. Review them and click Accept to grant access.Microsoft Teams permission approval screenMicrosoft Teams consent confirmation
5

Confirm connection

After approving, you’ll be redirected back to Rootly. A success message confirms the integration is connected.Rootly showing Microsoft Teams connected successfully
Microsoft Teams is now connected to Rootly.

Required OAuth Permissions

Account, team, and channel permissionsChat permissions

Part 2: Install the Rootly Bot

OAuth gives Rootly API access, but channel creation and messaging also require the Rootly bot to be present inside Microsoft Teams. Without the bot installed, workflows that create channels or send messages will fail. You install it directly from the Teams app store.
1

Open Apps in Teams

In Microsoft Teams, click Apps in the left sidebar and search for Rootly.Microsoft Teams Apps store with Rootly search
2

Add Rootly

Click Add on the Rootly app listing.Rootly app in Teams store with Add button
3

Choose a team

Select the team where you want to install Rootly. Rootly recommends starting with the General channel of your primary incident response team.Team selection for Rootly bot installation
4

Installation complete

The Rootly bot is now installed in your team and ready to create channels and send messages.Rootly bot installation confirmation
You’ll need to repeat the bot installation for each team where you want Rootly to create incident channels. The service account must be a member of each team.

Verify Installation

Once both parts are complete, confirm everything is working before setting up workflows:
  1. Check Rootly — The integration status shows Connected on the integrations page
  2. Check Teams — The Rootly app appears in your team’s installed apps
  3. Test end-to-end — Create a test incident in Rootly and verify a Teams channel is created automatically
If channels aren’t being created, check your workflow configuration first. The bot must be installed in the specific team referenced in the workflow action.

On-Call in Microsoft Teams

With Rootly On-Call, Teams becomes a place to page, get paged, and respond to alerts. The on-call features use the same integration you installed above. There’s nothing extra to connect at the organization level.
Requirements:
  • Rootly On-Call enabled for your organization
  • The Microsoft Teams integration connected (OAuth) and the Rootly bot installed in each team you want to use
  • To receive pages and shift reminders as direct messages in Teams, each responder links their Microsoft Teams account. See Link your Microsoft Teams account.
Rootly matches Teams users to Rootly users by email, so responders don’t need to link an account to page from Teams or use the buttons on alert cards. Linking is only required to receive pages and shift reminders as direct messages from the Rootly bot.
  1. In Rootly, go to Settings → Linked Accounts
  2. Under Microsoft Teams, sign in with your Microsoft 365 work account
  3. Once linked, the section confirms your account is connected
Link your account ahead of time, before you’re on call. The On-Call Readiness report shows which responders have Teams set up.

Announce Alerts in a Channel

Post every new alert to a single Teams channel, independently of routing. The alert card in the channel updates in place as the alert is acknowledged, escalated, or resolved.
  1. Go to Settings → Integrations → Microsoft Teams
  2. Choose a Default Alerts Channel
For conditional routing (for example, posting only critical alerts or using a different channel per source), use an alert workflow instead.

Add a Teams Channel to an Escalation Policy

Add a Teams channel as a target on any escalation policy level. When that level fires, Rootly posts an actionable alert card to the channel, alongside the other targets on the level.
  1. Go to On-Call → Escalation Policies and open a policy
  2. On the level you want, add a target and select Microsoft Teams channel
  3. Choose the team and channel, then save the policy
Teams channel targets are added for visibility. Under the Random and Round Robin paging strategies, a channel target can be skipped, so put channels that must always be notified on a level that uses Default or Everyone Simultaneously. See Escalation Policies for more on levels and targets.
Private channels need the Rootly app added first. Rootly can post to a private Teams channel only after the Rootly app has been added to that channel. In Teams, open the private channel, click + (Add a tab or app), and add Rootly. Then select the channel in Rootly.
Teams channel targets can also be managed with the Rootly API and the Rootly Terraform provider.

Page from Microsoft Teams

Responders can page any pageable Rootly target without leaving Teams.
1

Open the Page form

In any Teams channel where the Rootly app is installed, use the Rootly app’s Page command.
2

Fill in the alert

Select your Rootly organization, search for a target (a team, service, functionality, escalation policy, or individual user), and add a title and description.
3

Send the page

Submit the form. Rootly creates the alert and pages the target right away using their notification rules.
Alerts created from Teams show Microsoft Teams as their source on the Alerts page, the alert details page, and the alert timeline. You can filter the Alerts page by this source. Targets in the picker are scoped to what you have permission to see in Rootly, and follow your organization’s manual paging settings.
The Page form can take a little while to open in Teams. If it’s slow to load, wait for it to render rather than re-running the command.

Respond to Alerts from Teams

Wherever Rootly posts an alert in Teams (the default alerts channel, an escalation policy channel, or your personal chat with the Rootly bot), it posts an interactive alert card. Responders can act on the alert directly from the card: Cards update in place on every surface as the alert changes, so a card acknowledged in one place shows the new status everywhere, including in Slack and on the web. Every action taken from Teams is recorded on the alert timeline and attributed to Microsoft Teams.

Get Paged in Microsoft Teams

Responders can choose Microsoft Teams as a delivery method in their personal notification rules. Pages arrive as an alert card in their chat with the Rootly bot, where they can act on the alert directly.
  1. Link your Microsoft Teams account
  2. Go to Settings → Notifications → On-Call Notifications
  3. Add Microsoft Teams as a delivery method on one or more steps
  4. Use Test Notifications to confirm that pages arrive in Teams
Treat Teams as an addition to your phone-based methods, not a replacement. Use push, SMS, or phone call for urgent pages that need to wake you up. See Notification Rules.

Schedule and Shift Notifications

Keep teams up to date on who’s on call, right in Teams. Channel notifications for a schedule. Choose a Teams channel on a schedule to post:
  • Shift start notifications
  • Shift updates and changes
  • A weekly on-call summary
  • Overrides
  • Coverage requests
Personal shift reminders. Responders can get their own shift reminders as a message in their Teams chat with the Rootly bot. Set this up in Settings → Notifications once your Microsoft Teams account is linked.

Microsoft Teams Meeting

The Microsoft Teams Meeting integration is a separate OAuth connection that enables creating video meetings directly from Rootly incidents. It uses a different set of permissions than the main Teams integration and must be connected independently — even if you’ve already set up the main Teams integration. Once connected, a Create a Microsoft meeting button appears in the incident header, letting anyone on the response team spin up a live video call with one click.

Setup

  1. Go to Settings → Integrations and search for Microsoft Teams Meeting
  2. Click Setup and sign in with your Microsoft 365 work account
  3. Approve the requested permissions
  4. Once connected, the Create a Microsoft meeting button will appear on every incident
Rootly recommends connecting with a service account so the meeting integration stays active if a user leaves your organization.

Required OAuth Permissions

Uninstall the Meeting Integration

  1. Log into your Microsoft Teams Meeting account
  2. Click Manage → Installed Apps or search for the Rootly app
  3. Click the Rootly app and click Uninstall

Workflows

Microsoft Teams actions can run from both Incident workflows and Alert workflows. Use incident workflows to automate incident channels, messages, and meetings as an incident progresses. Use alert workflows to post to Teams the moment an alert arrives or changes status, before anyone declares an incident.

Incident Workflows

Trigger Teams actions when incidents are created, updated, change status, or resolve

Alert Workflows

Trigger Teams actions when alerts are created or change status

Smart Defaults

Auto-create Teams channels at incident start using built-in settings

Custom Workflows

Build workflows with triggers, conditions, and multiple Teams actions
Alert workflows can filter on Source = Microsoft Teams, so you can automate around alerts that responders created from Teams. For example, post a summary to a team channel or declare an incident for high-urgency pages.

Available Actions

Microsoft Teams actions, including creating channels, chats, and meetings, are available in both incident and alert workflows. For example, an alert workflow can create a Teams channel and meeting as soon as a critical alert arrives, before anyone declares an incident.

Create a Workflow

1

Open Workflows

Go to Rootly → Workflows → Create Workflow.Rootly workflows pageCreate workflow button
2

Choose workflow type

Select the workflow type that matches your use case. Choose Incident to run Teams actions as an incident progresses, or Alert to run them as alerts arrive. Retrospective and Pulse workflows can also run Teams actions.Workflow type selection
3

Configure triggers

Triggers define when this workflow runs.Workflow trigger configurationAlert workflow triggers:See Workflow Types for the full list of triggers.
4

Add conditions (optional)

Conditions filter when the workflow should run after it’s been triggered — keeping Teams activity focused on the incidents that matter.Workflow conditions panelExamples:
  • Only for SEV-1 or SEV-2 incidents
  • Only for specific teams or services
  • Only for production environments
  • Only for alerts from a specific source, such as Datadog or Microsoft Teams
5

Add a Microsoft Teams action

Click Add Action and search for Microsoft Teams to see all available actions.Add action button with Microsoft Teams search

Action Reference

Creates a dedicated Teams channel for the incident. Use this as your first action when an incident opens to give responders a central place to coordinate.Create Microsoft Teams Channel actionChannel configuration options
select
The Microsoft Teams workspace where the channel will be created.
string
The channel name. Supports Liquid syntax (for example, {{ incident.title }}).
Channel names are automatically lowercased, parameterized, and truncated to 50 characters.
string
An optional description for the channel. Supports Liquid syntax.
select
Controls channel visibility:
  • auto — Private for private incidents, public for non-private incidents
  • true — Always private
  • false — Always public
If the incident already has a Teams channel, this action skips creation to avoid duplicates.
Creates a group or one-on-one chat for the incident. Once created, the chat ID and URL are stored on the incident for use in subsequent actions.
select
  • group — Creates a group chat with multiple members and an optional topic
  • oneOnOne — Creates a one-on-one chat between exactly two members
string
A topic for the chat. Only used for group chats. Supports Liquid syntax.
string
A JSON array of members to add. Each member requires an email field. Supports Liquid syntax.
Group chats require at least three members (including the service account). One-on-one chats require exactly two.
Adds a tab to the incident Teams channel. Use this to give responders quick access to dashboards, runbooks, or the Rootly incident page directly within the channel.
select
The team that contains the channel.
string
The channel to add the tab to. Use {{ incident.microsoft_teams_channel_id }} to target the incident’s channel.
string
The display name shown on the tab. Supports Liquid syntax.
The URL the tab should point to. Supports Liquid syntax.
select
Optionally select a playbook to add as a dedicated playbook tab. When a playbook is selected, the tab renders only the playbook checklist — it is a distinct tab type and does not include the Rootly incident dashboard. Leave this empty to use the Title and Link fields to add a URL-based tab, such as a link to the incident page or an external runbook.
The Rootly app must be installed in the target team for this action to work.
Archives the incident channel when it’s no longer needed. Keeps the workspace clean while preserving conversation history.
select
The team that contains the channel.
string
The channel(s) to archive. Use {{ incident.microsoft_teams_channel_id }} to target the incident’s channel.
Common trigger: Incident Status Changed to “Closed”
Renames an existing Teams channel. Use this to reflect status changes — for example, prefixing resolved incidents with [RESOLVED].
select
The team that contains the channel.
string
The channel to rename. Use {{ incident.microsoft_teams_channel_id }} to target the incident’s channel.
string
The new channel name. Supports Liquid syntax.
Common trigger: Incident Resolved
Invites users to a private incident channel by email. Use this to automatically add on-call responders when they’re assigned a role.
select
The team that contains the channel.
string
The private channel to invite users to. Supports Liquid syntax.
string
Comma-separated list of email addresses to invite. Supports Liquid syntax.
This action only works with private channels. Public channels are accessible to all team members by default.
Common triggers: Incident Created, Incident Commander Assigned
Posts a message to a Teams channel using the Rootly bot. Use Liquid variables to include dynamic incident details in the message.
select
The channel(s) to post to. Supports Liquid syntax.
string
The message content. Supports Liquid variables.
If the message text is empty, the action will be skipped.
Common triggers: Incident Created, Incident Updated, Status Changed
Sends Adaptive Card attachments to one or more Teams channels. Use this to send richly formatted, interactive content such as structured incident summaries.
select
The channel(s) to send the attachments to. Supports Liquid syntax.
string
A JSON payload defining the Adaptive Card content. Supports Liquid syntax. Follows the Microsoft Adaptive Card schema.
Invites users to a private incident Teams channel based on a Rootly target. For a schedule, escalation policy, service, or team, Rootly invites whoever is currently on call, not every member. You can also target an individual user. This is the Teams equivalent of Invite Rootly On-Call to Slack Channel.
select
The Microsoft Teams team that contains the channel.
string
The private channel to invite responders to. Use {{ incident.microsoft_teams_channel_id }} to target the incident’s channel.
select
The schedule, escalation policy, service, team, or user whose on-call responders should be invited.
This action only works with private channels. Public channels are accessible to all team members by default.
Common triggers: Incident Created, Teams Updated, Services Updated
Creates a Microsoft Teams video meeting for live incident collaboration. The meeting link is automatically stored on the incident.
This action requires the Microsoft Teams Meeting integration to be installed separately.
string
The meeting title. Supports Liquid syntax (for example, {{ incident.title }}).
Common trigger: Incident Created (for high-severity incidents)

Liquid Variables

Use the Liquid Variable Explorer to test variables with real incident data.

Incident Variables

Microsoft Teams Variables

Troubleshooting

After completing OAuth, Rootly doesn’t appear as a connected app in Teams.Solutions:
  • Verify you completed OAuth using the same email as your Teams account
  • Make sure Rootly was installed in a specific team, not just your personal app space
  • Try uninstalling and reinstalling the Rootly app from the Teams store
  • Check if your organization restricts third-party app installations — a Microsoft 365 admin may need to approve Rootly
Teams shows an error when trying to add Rootly to a team.Solutions:
  • Ensure you have owner or admin permissions in the team
  • Ask a Team Owner or Microsoft 365 admin to approve the Rootly app
  • Verify that third-party app installations are enabled in your Microsoft 365 admin center
Teams reports that the signed-in email isn’t linked to a Rootly account.Solutions:
  • Verify the OAuth email matches exactly the email registered in Rootly
  • Confirm this email exists as a user in Rootly
  • Add the email under Rootly → Organization Settings → Members if needed
  • Disconnect and reconnect the Microsoft Teams integration
A private Teams channel is missing from the channel picker, or alerts aren’t posting to it.Solutions:
  • Add the Rootly app to the private channel in Teams, then select it again in Rootly
  • Confirm the Rootly bot is installed in the team that contains the channel
You’re on call but pages aren’t arriving in Teams.Solutions:
  • Confirm your Microsoft Teams account is linked under Settings → Linked Accounts
  • Check that Microsoft Teams is a delivery method in your on-call notification rules
  • Use Test Notifications to send a test page to Teams
Workflows run successfully but no Teams channels appear.Solutions:
  • Verify the Rootly bot is installed in the specific team referenced in the workflow action
  • Check workflow run logs for errors: Workflows → Your Workflow → … → View Runs
  • Confirm the team name in the workflow action exactly matches the team in Teams

Uninstall

To remove the main Microsoft Teams integration from Rootly:
  1. Go to Settings → Integrations and find Microsoft Teams
  2. Click Connected to reveal the disconnect option
  3. Click Disconnect
Click Connected to reveal the Disconnect option
If you disconnect and reconnect the integration, the integration’s team setting and its announcement channels for alerts and incidents are cleared. Re-select them after reconnecting. Teams channels on escalation policies and schedules are kept.
Disconnecting from Rootly does not remove the Rootly bot from Teams. To fully uninstall, open Microsoft Teams → Apps → Manage your apps, find Rootly, and click Uninstall.