Microsoft Teams steps
Flow Designer has built-in steps to help you integrate Microsoft Teams into your event management and incident response flows.
The following steps are available:
- Create Channel: create a new channel in Teams, using the inputs to construct the channel name and description, and to determine the team to create the channel in.
- Delete Channel: delete an xMatters generated channel in Teams, using the inputs to determine the channel to delete.
- Post Message: post a simple message to a channel, using HTML to format plain text, outputs from previous steps, or a combination of both.
- Post to Channel (workflow): add a message to a Microsoft Teams channel through an automated Microsoft Teams workflow.
- Post to Channel (Connector) - deprecated: post a message to a channel using a webhook connector you configure in Microsoft Teams. This allows you to post to the channel using a card format. This step will be deprecated by Microsoft at the end of March 2026. To ensure your flows continue to work properly use the Post Message step instead.
- Create Online Meeting: create a new instant meeting in Teams, using the inputs to construct the meeting subject and configure meeting settings.
Add Microsoft Teams steps to your flow
- To add a Teams step to your flow, go to the Apps panel in the palette, expand the Microsoft Teams steps, and drag the step onto the canvas.
- Connect the step to the previous step in the flow so you have access to the alert properties and outputs of previous steps when configuring this step's inputs.
- Double-click the step to edit it, and use the Setup tab to configure the inputs. You can use plain text and input variables (or both). See the sections below for detailed information on the inputs for the step.
- On the Endpoint tab, configure the step to point to the appropriate endpoint. If you want to use an OAuth 2.0 (Authorization Code) endpoint, see Configure an OAuth endpoint for Microsoft Teams steps.
Configure an OAuth endpoint for Microsoft Teams steps
These instructions are aligned with the current Microsoft process as of the time of writing. While the fundamental process should remain consistent, alterations to the Microsoft interface or related elements may impact specific details.
Before you can create an OAuth 2.0 (Authorization Code) endpoint for your Teams steps, you need to register an app for the endpoint to interact with. Follow this guide provided by Microsoft to register an application in Microsoft Entra ID.
While setting up the app, follow these steps and recommendations:
- Name: Give the app a descriptive name. You may want to include information like the Flow Designer workflow name.
- Supported account types: We recommend selecting Accounts in this organizational directory only (the app is only for a single tenant and can only be used by people in that tenant).
- Platform: Web
- Redirect URI: https://redirect.xmatters.com/oauth2authcode
- Application (client) ID: Copy this value to configure the Flow Designer endpoint.
- Client Secret: Don't set the client secret duration too short, as it would necessitate more frequent user interaction to re-authenticate the endpoint when it expires.
- Copy the secret value to configure the Flow Designer endpoint.
- API permissions:
- Select Microsoft Graph → Delegated permissions
- On the Delegated permissions page, select the permissions based on the list below. The offline_access and User.Read scopes are always required.
Microsoft Teams Step Scope (API Permission) Note All offline_access Required to provide a refresh token for offline token refresh. All User.Read Required to authenticate the endpoint. Create Channel
Post Message
Delete ChannelGroupMember.Read.All Required to query for the team unique ID. Create Channel
Post Message
Delete ChannelChannel.Read.All Required to query for the channel unique ID. Create Channel Channel.Create Required to create a channel. Post Message Channel Message.Send Required to post messages to a channel. Delete Channel Channel.Delete.All Required to delete a channel. Create Online Meeting OnlineMeetings.ReadWrite Required to create a meeting.
To create a new endpoint in your workflow for Teams steps:
- On the Endpoints window in Flow Designer, click Add Endpoint.
- Enter the following information:
- Name: Type a name that will identify your endpoint.
- Base URL: https://graph.microsoft.com
- Trust self-signed certificates: Leave this option unselected.
- Under Authentication, enter the following information:
- Endpoint Type: Select OAuth 2.0 (Authorization Code) from the list.
- Authorization URL: https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize
- Access Token URL: https://login.microsoftonline.com/organizations/oauth2/v2.0/token
- Client ID: Enter the application (client) ID you copied from the registered app in the Microsoft environment.
- Client Secret: Enter the client secret you created for the registered app in the Microsoft environment.
- Token Prefix: Type Bearer.
- Endpoint Scopes: Provide a list of space-delimited scope names that match what you configured for the registered app. Include the scopes offline_access and User.Read as they are always required.
Create Channel
Use the Create Channel step to automatically create a new channel in a team using text, constants, and outputs from previous steps to populate the inputs.
Inputs
Inputs with an asterisk* are required.
|
Label API mapping |
Description |
|---|---|
|
Team* |
The team you want to create the channel in. You can identify the team by name or ID. |
|
Channel Name* displayName |
The name you want to give the newly created channel. |
|
Description description |
A brief description of the channel to help people identify its purpose. |
|
Continue if channel exists* |
Set what happens if a channel with the Channel Name already exists:
|
| Incident ID | Associates the channel with an incident in xMatters, adding it as a collaboration channel. For more information on adding collaboration channels, see the incident resolution workflow guide, or learn about incident management in xMatters. |
|
Incident Updates |
Comma-separated list of the types of updates to post to the Microsoft Teams channel for the associated xMatters incident. Valid values are: All, Status, Severity, Description, Properties, Impacted Services, Linked Incidents, Notes, Tasks. For more information on enabling incident updates for a collaboration channel, see Post incident updates to collaboration channels. |
Outputs
These outputs are available to use as inputs in steps further along the flow.
|
Label API mapping |
Description |
|---|---|
|
Channel ID id |
The ID of the channel created. Example: You can use this output to populate the input of a "Post Message" step or in a step that adds a note to the system that kicked off the flow. |
|
Channel Name name |
The name of the channel created. Example: Like Channel ID, you can use this output to populate the input of a "Post Message" step or in a step that adds a note to the system that kicked off the flow. |
|
Channel URL webUrl |
A link to the channel. This is the same link you'd get if you click on the ••• beside the channel in Teams and selected Get link to channel. Examples: Include this in a field of a Create Alert step to add it to notifications, or add it as a note or update on the issue in your IT management application, such as Jira or Zendesk. |
Delete Channel
Use the Delete Channel step to automatically delete a channel created by xMatters in Teams using text, constants, and outputs from previous steps to populate the inputs.
Inputs
Inputs with an asterisk* are required.
|
Label API mapping |
Description |
|---|---|
|
Team* |
Name or ID of the team the channel belongs to. |
|
Channel* |
Name or ID of the channel to delete. |
Outputs
These outputs are available to use as inputs in steps further along the flow.
|
Label |
Description |
|---|---|
|
Is Deleted |
If ‘true’, the channel was deleted. If ‘false’, the channel or team was not found, and the channel could not be deleted. |
Deleted channels in Microsoft Teams can be restored within 30 days. During this period, deleted channels continue to count toward your Microsoft Teams channel limits. For more information, see Limits and specifications for Microsoft Teams.
Post Message
Use the Post Message step to send a message to a channel in a team using text, constants, and outputs from previous steps to populate the inputs.
Inputs
Inputs with an asterisk* are required.
|
Label API mapping |
Description |
|---|---|
|
Team* |
The name or ID of the team the channel belongs to. |
|
Channel* |
The name or ID of the channel where you want to send the message. |
|
Message* body.content |
The message you want to post to the channel. You can use basic HTML to format the message (for example, <b>, <i>, <a>, <ol>, <ul>, and <br>). |
|
Reply To ID replyToId |
The ID of the parent message or root message this message is a reply to. |
Outputs
These outputs are available to use as inputs in steps further along the flow.
|
Label API mapping |
Description |
|---|---|
|
Message ID id |
The ID of the message created. If this is a parent message, you can use this ID as the Reply To ID in another "Post Message" step. |
|
Channel ID |
The ID of the channel the message was added to. |
|
Team ID |
The ID of the team the message was added to. |
Post to Channel (workflow)
Use the Post to Channel (workflow) step to automatically post a message to a channel in Microsoft Teams through an automated Microsoft Teams workflow. You'll need to create and configure a Microsoft Teams workflow, then use the generated URL to create an endpoint in the Post to Channel step.
To get create and configure a Microsoft Teams workflow:
- In Microsoft Teams select the Workflows app.
- From the top-right select + New flow.
- Select the Post to a channel when a webhook request is received template.
- In the template, open the "When a Teams webhook request is received" trigger.
- Set who can trigger the flow to either Any user in my tenant or Anyone.
- Copy the HTTP POST URL.
- Save your changes to create the workflow.
- Use the URL provided to configure the step in xM Flow Designer.
In your xMatters instance:
- Open the flow where you added the Post to Channel step.
- Click the pencil icon to open the step configuration.
- Click the Endpoint tab.
- Enter the HTTP POST URL you copied into the Base URL field.
- Click Save.
Inputs
Inputs with an asterisk* are required.
| Label | Description |
|---|---|
| Message* | The text of the message you want to post to the Microsoft Teams channel. You can map alert information and outputs from previous steps of the flow to include them in the message that's posted. |
Outputs
These outputs are available to use as inputs in steps further along the flow.
|
Label |
Description |
|---|---|
| Result |
The result returned by the Microsoft Teams workflow. Available options are:
|
Post to Channel (Connector) - deprecated
This step will be deprecated by Microsoft at the end of March 2026. To ensure your flows work as expected, use the Post Message step instead.
Use the Post to Channel step to automatically post a message to a channel in Microsoft Teams, using the input to populate the message.
To use this step, you need to set up an incoming webhook connector in your Microsoft Teams channel. You can find details in the Microsoft Teams help. Use the unique URL generated when you set up the connector as the Base URL when you configure an endpoint in xMatters.
Inputs
Inputs with an asterisk* are required.
|
Label API mapping |
Description |
|---|---|
|
Message* text |
The text of the message you want to post to the Microsoft Teams channel. You can map alert information and outputs from previous steps of the flow to include them in the message that's posted. |
Create Online Meeting
Use the Create Online Meeting step to automatically create a new instant meeting using text, constants, and outputs from previous steps to populate the inputs. Outputs of this step include a URL users can click to join the meeting (instant meetings are not automatically added to the calendar), dial-in information for audio conferencing, and meeting chat details.
Inputs
Inputs with an asterisk* are required.
|
Label |
Description |
|---|---|
|
Subject* |
The subject or title you want to give to the newly created meeting. |
| Incident ID | Associates the meeting with an incident in xMatters, adding it as a collaboration channel. For more information on adding collaboration channels, see the incident resolution workflow guide, or learn about incident management in xMatters. |
| Require Passcode | If 'true', a passcode is required to join the meeting. Default value is 'true'. |
| Co-organizers | A comma-separated list of Microsoft users’ UPNs (User Principal Names) to set as meeting co-organizers. The UPN is typically the user's email address. |
| Presenters | A comma-separated list of Microsoft users’ UPNs (User Principal Names) to set as presenters. The UPN is typically the user's email address. |
| Who Can Present | Participants allowed to be presenters. Leave blank to use your organization’s default option. Available values are: everyone, organization, roleIsPresenter, organizer. |
| Who Can Admit from Lobby | Participants allowed to admit people to the meeting from the lobby. Leave blank to use your organization’s default option. Available values are: organizerAndCoOrganizersAndPresenters, organizerAndCoOrganizers. |
| Who Can Bypass Lobby | Participants allowed to bypass the lobby. Leave blank to use your organization’s default option. Available values are: organizer, organization, organizationAndFederated, everyone, invited, organizationExcludingGuests. |
| Allow Dial-in Bypass Lobby | If 'true', dial-in participants can bypass the lobby. Leave blank to use your organization’s default option. Available values are: true, false. |
| Allow Recording | If 'true', the option to record the meeting is enabled. Leave blank to use your organization’s default option. Available values are: true, false. |
| Record Automatically | If ’true’, the meeting is recorded automatically. Leave blank to use your organization’s default option. Available values are: true, false. |
| Allow Transcription | If 'true', the option to transcribe the meeting is enabled. Leave blank to use your organization’s default option. Available values are: true, false. |
| Share Chat History | Specify if meeting chat history is shared with participants. Leave blank to use your organization’s default option. Available values are: all, none. |
| Meeting Chat Mode | Specify the meeting chat mode. Leave blank to use your organization’s default option. Available values are: enabled, disabled, or limited (allow chat only during the meeting). |
| Channel ID | ID of the Microsoft Teams channel to associate with the meeting. Channel members can join the meeting and view the meeting chat. |
| Message ID | ID of the message linked to the meeting chat. Leave blank to start a new message thread. |
| Enable Entry/Exit Announcement | If 'true', participant entry/exit will be announced. Leave blank to use your organization’s default option. Available values are: true, false. |
| Allow Breakout Rooms | If 'true', breakout rooms are enabled. Leave blank to use your organization’s default option. Available values are: true, false. |
| Allow Reactions | If 'true', participants are allowed to send reactions. Leave blank to use your organization’s default option. Available values are: true, false. |
| Allow Mic | If 'true', participants can enable their microphone. Leave blank to use your organization’s default option. Available values are: true, false. |
| Allow Camera | If 'true', participants can enable their camera. Leave blank to use your organization’s default option. Available values are: true, false. |
Outputs
These outputs are available to use as inputs in steps further along the flow.
|
Label API mapping |
Description |
|---|---|
|
Meeting ID (Entry Code) joinMeetingIdSettings.joinMeetingId |
A code that lets users access the meeting if they don't have the Join URL. |
|
Passcode joinMeetingIdSettings.passcode |
The passcode to join the meeting, if required. |
|
Join URL join_url |
A link to the meeting. Users can click this link to join the meeting. Examples: Include this in a field of a Create Alert step to add it to notifications, or add it as a note or update on the issue in your IT management application, such as Jira or Zendesk. |
|
Subject subject |
The subject or title of the created meeting. Example: Like Meeting ID, you can use this output to populate the input of a "Post Message" step or in a step that adds a note to the system that kicked off the flow. |
|
Result |
Result returned by Microsoft Teams. Available values are: Success, Failure. |
| Audio Conferencing Included |
Whether audio conferencing is available for the meeting (true or false). |
|
Toll-Free Number audioConferencing.tollFreeNumber
|
The primary toll-free number to dial into the meeting, if available. |
| Toll Number audioConferencing.tollNumber |
The primary toll number to dial into the meeting, if available. |
|
Conference ID audioConferencing.conferenceId |
The Conference ID of the meeting, if available. |
|
Dial-in Information URL audioConferencing.dialInUrl |
Link at which users can find dial-in information for the meeting, if available. |
|
Meeting Channel ID |
ID of the channel associated with the meeting, if provided. |
|
Meeting Message ID |
ID of the message thread used for the meeting chat, if provided. |
|
Online Meeting Identifier id |
Unique identifier (UUID) of the meeting that was created. Example: You can use this output to populate the input of a "Post Message" step or in a step that adds a note to the system that kicked off the flow. |