# Extensions/MSTeams

## Get MSTeams Config

> Returns MSTeams config of the organization.\
> Requires \`access\_token\` as a \`Bearer {{token}}\` in the \`Authorization\` header with \`read\` scope.

```json
{"openapi":"3.1.0","info":{"title":"Squadcast","version":"1.0.0"},"tags":[{"name":"Extensions/MSTeams"}],"servers":[{"url":"https://api.squadcast.com","description":"production US env","variables":{}},{"url":"https://api.eu.squadcast.com","description":"production EU env","variables":{}}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"V3.Extensions.MSTeams.MSTeamsConfigResponse":{"type":"object","required":["default_conversation_name","default_conversation_id","is_active","is_default_active","is_custom_channels_active","triggers","tenant_id","from_id","connected_teams"],"properties":{"custom_incident_alert_state":{"allOf":[{"$ref":"#/components/schemas/V3.Extensions.MSTeams.IncidentActionAlertState"}],"description":"A user-friendly way to configure which incident action alerts are active. This is translated by the backend into the 'triggers.custom' array."},"id":{"type":"string","description":"The MongoDB ObjectID of the extension document. Should be included for updates."},"organization_id":{"type":"string","description":"The MongoDB ObjectID of the organization this extension belongs to."},"default_conversation_name":{"type":"string","description":"The display name for the default conversation/channel."},"default_conversation_id":{"type":"string","description":"The unique identifier for the default MS Teams conversation/channel."},"is_active":{"type":"boolean","description":"A master switch to enable or disable the entire integration."},"is_default_active":{"type":"boolean","description":"Determines if notifications should be sent to the default channel."},"is_custom_channels_active":{"type":"boolean","description":"Determines if notifications should be sent to custom-configured channels."},"triggers":{"allOf":[{"$ref":"#/components/schemas/V3.Extensions.MSTeams.Triggers"}],"description":"Configuration for which alerts are sent to the MS Teams channel."},"tenant_id":{"type":"string","description":"The Azure AD Tenant ID of the organization that owns this extension."},"from_id":{"type":"string","description":"The Azure AD Object ID of the user who created this extension."},"connected_teams":{"type":"array","items":{"$ref":"#/components/schemas/V3.Extensions.MSTeams.ConnectedTeams"},"description":"A list of all MS Teams (teams) connected to this organization."}},"description":"The request body for creating or updating an MS Teams extension configuration."},"V3.Extensions.MSTeams.IncidentActionAlertState":{"type":"object","required":["is_trigger_active","is_retrigger_active","is_acknowledge_active","is_resolve_active","is_reassign_active","is_notes_added_active","is_postmortem_active","is_priority_updated_active"],"properties":{"is_trigger_active":{"type":"boolean"},"is_retrigger_active":{"type":"boolean"},"is_acknowledge_active":{"type":"boolean"},"is_resolve_active":{"type":"boolean"},"is_reassign_active":{"type":"boolean"},"is_notes_added_active":{"type":"boolean"},"is_postmortem_active":{"type":"boolean"},"is_priority_updated_active":{"type":"boolean"}},"description":"A set of booleans to easily configure which incident-related alerts are sent to MS Teams."},"V3.Extensions.MSTeams.Triggers":{"type":"object","required":["all_active","custom"],"properties":{"all_active":{"type":"boolean","description":"If true, all alerts are sent, and the 'custom' list is ignored."},"custom":{"type":"array","items":{"$ref":"#/components/schemas/V3.Extensions.MSTeams.EventClass"},"description":"A list of specific event classes to send alerts for. This is used when 'all_active' is false."}},"description":"Defines the trigger conditions for sending alerts."},"V3.Extensions.MSTeams.EventClass":{"anyOf":[{"type":"string"},{"type":"string","enum":["incident_triggered","incident_retriggered","incident_acknowledged","incident_resolved","incident_reassigned","incident_notes_added","incident_postmortem_started","incident_priority_updated","incident_snoozed","incident_unsnoozed","incident_delayed_notifications_resumed"]}],"description":"Represents the specific type of an incident-related event."},"V3.Extensions.MSTeams.ConnectedTeams":{"type":"object","required":["team_id","team_name","channel_configurations"],"properties":{"id":{"type":"string","description":"The MongoDB ObjectID for this connected team entry."},"team_id":{"type":"string","description":"The unique identifier for the team in MS Teams."},"team_name":{"type":"string","description":"The display name of the team in MS Teams."},"channel_configurations":{"type":"array","items":{"$ref":"#/components/schemas/V3.Extensions.MSTeams.ChannelConfiguration"},"description":"A list of channel routing configurations for this team."}},"description":"Represents a connected MS Team and its channel configurations."},"V3.Extensions.MSTeams.ChannelConfiguration":{"type":"object","required":["squadcast_team_id","squadcast_team_name","is_all_services","services","msteams_channel_id","msteams_channel_name"],"properties":{"id":{"type":"string","description":"The MongoDB ObjectID for this specific channel configuration entry."},"squadcast_team_id":{"type":"string","description":"The MongoDB ObjectID of the corresponding team in Squadcast."},"squadcast_team_name":{"type":"string","description":"The name of the corresponding team in Squadcast."},"is_all_services":{"type":"boolean","description":"If true, alerts for all services in the Squadcast Team are sent to this channel."},"services":{"type":"array","items":{"$ref":"#/components/schemas/V3.Extensions.MSTeams.SquadCastServiceMapping"},"description":"An array of specific services to route to this channel. Used when 'is_all_services' is false."},"msteams_channel_id":{"type":"string","description":"The unique identifier of the target channel in MS Teams."},"msteams_channel_name":{"type":"string","description":"The display name of the target channel in MS Teams."}},"description":"Defines a mapping from a Squadcast Team/Service to a specific MS Teams channel."},"V3.Extensions.MSTeams.SquadCastServiceMapping":{"type":"object","required":["squadcast_service_id","squadcast_service_name"],"properties":{"squadcast_service_id":{"type":"string","description":"The MongoDB ObjectID of the Squadcast service."},"squadcast_service_name":{"type":"string","description":"The name of the Squadcast service."}},"description":"Maps a specific Squadcast service to a channel configuration."},"Common.V3.ErrorMeta":{"type":"object","required":["status","error_message"],"properties":{"status":{"anyOf":[{"type":"string"},{"type":"integer"}]},"error_message":{"type":"string"}},"description":"Represents a single response containing data of type T."}}},"paths":{"/v3/extensions/msteams/config":{"get":{"operationId":"MSTeams_getMsteamsConfig","summary":"Get MSTeams Config","description":"Returns MSTeams config of the organization.\nRequires `access_token` as a `Bearer {{token}}` in the `Authorization` header with `read` scope.","parameters":[{"name":"authorization","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/V3.Extensions.MSTeams.MSTeamsConfigResponse"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"409":{"description":"The request conflicts with the current state of the server.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"502":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"504":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}}},"tags":["Extensions/MSTeams"]}}}}
```

## Create Or Update MSTeams Configuration

> Requires \`access\_token\` as a \`Bearer {{token}}\` in the \`Authorization\` header with \`user-write\` scope.

```json
{"openapi":"3.1.0","info":{"title":"Squadcast","version":"1.0.0"},"tags":[{"name":"Extensions/MSTeams"}],"servers":[{"url":"https://api.squadcast.com","description":"production US env","variables":{}},{"url":"https://api.eu.squadcast.com","description":"production EU env","variables":{}}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"V3.Extensions.MSTeams.MSTeamsConfigResponse":{"type":"object","required":["default_conversation_name","default_conversation_id","is_active","is_default_active","is_custom_channels_active","triggers","tenant_id","from_id","connected_teams"],"properties":{"custom_incident_alert_state":{"allOf":[{"$ref":"#/components/schemas/V3.Extensions.MSTeams.IncidentActionAlertState"}],"description":"A user-friendly way to configure which incident action alerts are active. This is translated by the backend into the 'triggers.custom' array."},"id":{"type":"string","description":"The MongoDB ObjectID of the extension document. Should be included for updates."},"organization_id":{"type":"string","description":"The MongoDB ObjectID of the organization this extension belongs to."},"default_conversation_name":{"type":"string","description":"The display name for the default conversation/channel."},"default_conversation_id":{"type":"string","description":"The unique identifier for the default MS Teams conversation/channel."},"is_active":{"type":"boolean","description":"A master switch to enable or disable the entire integration."},"is_default_active":{"type":"boolean","description":"Determines if notifications should be sent to the default channel."},"is_custom_channels_active":{"type":"boolean","description":"Determines if notifications should be sent to custom-configured channels."},"triggers":{"allOf":[{"$ref":"#/components/schemas/V3.Extensions.MSTeams.Triggers"}],"description":"Configuration for which alerts are sent to the MS Teams channel."},"tenant_id":{"type":"string","description":"The Azure AD Tenant ID of the organization that owns this extension."},"from_id":{"type":"string","description":"The Azure AD Object ID of the user who created this extension."},"connected_teams":{"type":"array","items":{"$ref":"#/components/schemas/V3.Extensions.MSTeams.ConnectedTeams"},"description":"A list of all MS Teams (teams) connected to this organization."}},"description":"The request body for creating or updating an MS Teams extension configuration."},"V3.Extensions.MSTeams.IncidentActionAlertState":{"type":"object","required":["is_trigger_active","is_retrigger_active","is_acknowledge_active","is_resolve_active","is_reassign_active","is_notes_added_active","is_postmortem_active","is_priority_updated_active"],"properties":{"is_trigger_active":{"type":"boolean"},"is_retrigger_active":{"type":"boolean"},"is_acknowledge_active":{"type":"boolean"},"is_resolve_active":{"type":"boolean"},"is_reassign_active":{"type":"boolean"},"is_notes_added_active":{"type":"boolean"},"is_postmortem_active":{"type":"boolean"},"is_priority_updated_active":{"type":"boolean"}},"description":"A set of booleans to easily configure which incident-related alerts are sent to MS Teams."},"V3.Extensions.MSTeams.Triggers":{"type":"object","required":["all_active","custom"],"properties":{"all_active":{"type":"boolean","description":"If true, all alerts are sent, and the 'custom' list is ignored."},"custom":{"type":"array","items":{"$ref":"#/components/schemas/V3.Extensions.MSTeams.EventClass"},"description":"A list of specific event classes to send alerts for. This is used when 'all_active' is false."}},"description":"Defines the trigger conditions for sending alerts."},"V3.Extensions.MSTeams.EventClass":{"anyOf":[{"type":"string"},{"type":"string","enum":["incident_triggered","incident_retriggered","incident_acknowledged","incident_resolved","incident_reassigned","incident_notes_added","incident_postmortem_started","incident_priority_updated","incident_snoozed","incident_unsnoozed","incident_delayed_notifications_resumed"]}],"description":"Represents the specific type of an incident-related event."},"V3.Extensions.MSTeams.ConnectedTeams":{"type":"object","required":["team_id","team_name","channel_configurations"],"properties":{"id":{"type":"string","description":"The MongoDB ObjectID for this connected team entry."},"team_id":{"type":"string","description":"The unique identifier for the team in MS Teams."},"team_name":{"type":"string","description":"The display name of the team in MS Teams."},"channel_configurations":{"type":"array","items":{"$ref":"#/components/schemas/V3.Extensions.MSTeams.ChannelConfiguration"},"description":"A list of channel routing configurations for this team."}},"description":"Represents a connected MS Team and its channel configurations."},"V3.Extensions.MSTeams.ChannelConfiguration":{"type":"object","required":["squadcast_team_id","squadcast_team_name","is_all_services","services","msteams_channel_id","msteams_channel_name"],"properties":{"id":{"type":"string","description":"The MongoDB ObjectID for this specific channel configuration entry."},"squadcast_team_id":{"type":"string","description":"The MongoDB ObjectID of the corresponding team in Squadcast."},"squadcast_team_name":{"type":"string","description":"The name of the corresponding team in Squadcast."},"is_all_services":{"type":"boolean","description":"If true, alerts for all services in the Squadcast Team are sent to this channel."},"services":{"type":"array","items":{"$ref":"#/components/schemas/V3.Extensions.MSTeams.SquadCastServiceMapping"},"description":"An array of specific services to route to this channel. Used when 'is_all_services' is false."},"msteams_channel_id":{"type":"string","description":"The unique identifier of the target channel in MS Teams."},"msteams_channel_name":{"type":"string","description":"The display name of the target channel in MS Teams."}},"description":"Defines a mapping from a Squadcast Team/Service to a specific MS Teams channel."},"V3.Extensions.MSTeams.SquadCastServiceMapping":{"type":"object","required":["squadcast_service_id","squadcast_service_name"],"properties":{"squadcast_service_id":{"type":"string","description":"The MongoDB ObjectID of the Squadcast service."},"squadcast_service_name":{"type":"string","description":"The name of the Squadcast service."}},"description":"Maps a specific Squadcast service to a channel configuration."},"Common.V3.ErrorMeta":{"type":"object","required":["status","error_message"],"properties":{"status":{"anyOf":[{"type":"string"},{"type":"integer"}]},"error_message":{"type":"string"}},"description":"Represents a single response containing data of type T."},"V3.Extensions.MSTeams.CreateOrUpdateMSTeamsConfigRequest":{"type":"object","required":["default_conversation_name","default_conversation_id","is_active","is_default_active","is_custom_channels_active","triggers","tenant_id","from_id","connected_teams"],"properties":{"custom_incident_alert_state":{"allOf":[{"$ref":"#/components/schemas/V3.Extensions.MSTeams.IncidentActionAlertState"}],"description":"A user-friendly way to configure which incident action alerts are active. This is translated by the backend into the 'triggers.custom' array."},"id":{"type":"string","description":"The MongoDB ObjectID of the extension document. Should be included for updates."},"organization_id":{"type":"string","description":"The MongoDB ObjectID of the organization this extension belongs to."},"default_conversation_name":{"type":"string","description":"The display name for the default conversation/channel."},"default_conversation_id":{"type":"string","description":"The unique identifier for the default MS Teams conversation/channel."},"is_active":{"type":"boolean","description":"A master switch to enable or disable the entire integration."},"is_default_active":{"type":"boolean","description":"Determines if notifications should be sent to the default channel."},"is_custom_channels_active":{"type":"boolean","description":"Determines if notifications should be sent to custom-configured channels."},"triggers":{"allOf":[{"$ref":"#/components/schemas/V3.Extensions.MSTeams.Triggers"}],"description":"Configuration for which alerts are sent to the MS Teams channel."},"tenant_id":{"type":"string","description":"The Azure AD Tenant ID of the organization that owns this extension."},"from_id":{"type":"string","description":"The Azure AD Object ID of the user who created this extension."},"connected_teams":{"type":"array","items":{"$ref":"#/components/schemas/V3.Extensions.MSTeams.ConnectedTeams"},"description":"A list of all MS Teams (teams) connected to this organization."}},"description":"The request body for creating or updating an MS Teams extension configuration."}}},"paths":{"/v3/extensions/msteams/config":{"post":{"operationId":"MSTeams_createOrUpdateMsteamsConfiguration","summary":"Create Or Update MSTeams Configuration","description":"Requires `access_token` as a `Bearer {{token}}` in the `Authorization` header with `user-write` scope.","parameters":[{"name":"authorization","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/V3.Extensions.MSTeams.MSTeamsConfigResponse"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"409":{"description":"The request conflicts with the current state of the server.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"502":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"503":{"description":"Service unavailable.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}},"504":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/Common.V3.ErrorMeta"}},"required":["meta"]}}}}},"tags":["Extensions/MSTeams"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V3.Extensions.MSTeams.CreateOrUpdateMSTeamsConfigRequest"}}}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.incidents.cloud.solarwinds.com/api-reference/extensions-msteams.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
