Skip to content

Microsoft Teams

Microsoft Teams

Microsoft Teams is Microsoft 365’s corporate collaboration platform, bringing together chat, video calls, topic-based channels, and file storage in a single environment. With the SquadOS integration, your agents can send messages to chats and channels, create and manage teams, schedule online meetings, check user presence, and search files and messages — all automated via the Microsoft Graph API.

This tool uses OAuth 2.0 (OAUTH2) to connect. It also supports application authentication (S2S_OAUTH2) for server-to-server scenarios.

You will need the following fields:

FieldRequiredDescription
client_idYesApplication ID registered in Azure Entra ID (formerly Azure AD).
client_secretYesClient secret generated in the Azure portal for the registered application.
tenant_idYesMicrosoft 365 tenant ID of your organization.
  1. Go to the Azure portal and sign in with an organizational admin account.
  2. Navigate to Azure Active Directory (or Microsoft Entra ID) → App registrationsNew registration.
  3. Fill in the application name, select the desired account type, and set the redirect URI.
  4. After creating the application, copy the Application (client) ID and the Directory (tenant) ID.
  5. Go to Certificates & secretsNew client secret, set the expiry, and copy the generated value.
  6. Under API permissions, add the necessary Microsoft Graph permissions (e.g., Chat.ReadWrite, Channel.ReadBasic.All, Team.ReadBasic.All, Presence.Read).
  7. Click Grant admin consent to activate the permissions.
  1. Go to Tools in the side menu (/admin/tools).
  2. Open the Available tab and search for Microsoft Teams.
  3. Click the card to open the details modal and hit Connect.
  4. You’re taken to the secure connection page hosted by Composio, where you authorize access via OAuth 2.0 with your organizational Microsoft account.
  5. Once done, you’re sent back to SquadOS with the account connected and the tool available for your agents. (Connection-flow details in Organization Tools.)

MICROSOFT_TEAMS_TEAMS_POST_CHANNEL_MESSAGE

Posts a new top-level message to a channel in Microsoft Teams. Use to send automated notifications, alerts, or updates to a specific channel.

NameTypeRequiredDescription
team_idstringYesThe unique identifier of the Microsoft Teams team containing the channel.
channel_idstringYesThe unique identifier of the channel within the specified team where the message will be posted.
contentstringYesThe content of the message to be sent. Can be plain text or HTML, determined by content_type.
content_typestringNoThe format of the message content. Defaults to text. Use html for formatted messages.
subjectstringNoThe subject of the chat message, in plaintext.
importancestringNoThe importance of the chat message: normal, high, or urgent. Defaults to normal.
mentionsarrayNoList of entities mentioned in the chat message. Use with HTML content containing <at> tags.
attachmentsarrayNoReferences to attached objects like files, tabs, meetings, etc.
summarystringNoSummary text for push notifications and summary views.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_TEAMS_POST_CHAT_MESSAGE

Sends a non-empty message (text or HTML) to a specified, existing Microsoft Teams chat. Content must be valid HTML if content_type is html.

NameTypeRequiredDescription
chat_idstringYesUnique identifier for the Microsoft Teams chat to receive the message.
contentstringYesMessage content, either plain text or HTML (see content_type).
content_typestringNoContent format: text (plain) or html.
subjectstringNoThe subject of the chat message, in plaintext.
importancestringNoThe importance of the chat message: normal, high, or urgent. Defaults to normal.
mentionsarrayNoList of entities mentioned in the chat message. Supported entities: user, bot, team, channel, chat, and tag.
attachmentsarrayNoReferences to attached objects like files, tabs, meetings, or cards.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_POST_MESSAGE_REPLY

Sends a reply to an existing message, identified by message_id, within a specific channel_id of a given team_id in Microsoft Teams.

NameTypeRequiredDescription
team_idstringYesThe unique identifier (GUID) of the Microsoft Teams team that owns/hosts the channel. For shared channels, this must be the host team ID.
channel_idstringYesThe unique identifier of the channel containing the message to reply to. Standard channels use format 19:{alphanumeric}@thread.tacv2.
message_idstringYesThe unique identifier of the specific message within the channel to which this reply is directed.
contentstringYesThe body of the reply message. Can be plain text or HTML, as specified by the content_type field.
content_typestringNoSpecifies the format of the content field: text or html. Defaults to text.
importancestringNoPriority level of the reply message: normal, high, or urgent.
mentionsarrayNoList of entities mentioned in the reply.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_TEAMS_CREATE_CHAT

Creates a new chat. If a oneOnOne chat with the specified members already exists, its details are returned; group chats are always newly created. The authenticated user MUST be included as one of the members.

NameTypeRequiredDescription
chatTypestringYesType of chat: oneOnOne (between two users) or group (multiple users).
membersarrayYesList of members. The authenticated user MUST be included. For oneOnOne chats, exactly two members; for group chats, at least two members with one having the owner role.
topicstringNoSubject or title for the chat. REQUIRED for group chats; ignored for oneOnOne.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_CREATE_TEAM

Creates a new Microsoft Teams team with optional template, channels, and members.

NameTypeRequiredDescription
displayNamestringYesDisplay name of the team as it will appear in Microsoft Teams.
visibilitystringNoTeam visibility: private (only owners can add members), public (anyone in the organization can join), or hiddenMembership. Default: public.
descriptionstringNoBrief description of the team’s purpose. Maximum 1024 characters.
membersarrayNoList of initial team members. At least one member with owner role is recommended.
channelsarrayNoCollection of channels to create in the team. The General channel is created automatically.
templateOdataBindstringNoURL reference to the team template (e.g., standard, educationClass).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_CREATE_CHANNEL

Creates a new standard, private, or shared channel within a Microsoft Teams team.

NameTypeRequiredDescription
team_idstringYesThe GUID of the existing Microsoft Teams team where the new channel will be created.
namestringYesThe display name for the new channel. Maximum length is 50 characters. Cannot contain the following characters: ~ # % & * { } + / \ : < > ? | ' " , or control characters. Cannot start with an underscore or period.
descriptionstringNoAn optional, user-friendly description of the channel’s purpose. Maximum length is 1024 characters.
membership_typestringNoMembership type: standard (all team members), private (specific subset), or shared (can include people outside the team).
is_favorite_by_defaultbooleanNoIndicates whether the channel should be marked as recommended for all team members.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_TEAMS_LIST

Retrieves Microsoft Teams accessible by the authenticated user, with support for filtering, property selection, and pagination.

NameTypeRequiredDescription
topintegerNoMaximum number of teams to return per page (1–999).
filterstringNoOData v4.0 filter string to refine results (e.g., startsWith(displayName,'A')).
selectstringNoComma-separated team properties to retrieve (e.g., id,displayName,description).
countbooleanNoWhen true, includes the total count of items in @odata.count.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_TEAMS_LIST_CHANNELS

Retrieves channels for a specified Microsoft Teams team, with options to include shared channels, filter results, and select properties.

NameTypeRequiredDescription
team_idstringYesUnique identifier (GUID/UUID) of the Microsoft Teams team.
filterstringNoOData v4 query string to filter channels (e.g., startswith(displayName,'Sales') or membershipType eq 'private').
selectstringNoComma-separated channel properties to return (e.g., id,displayName,description).
include_shared_channelsbooleanNoIf true, include channels shared with the team.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_TEAMS_LIST_CHANNEL_MESSAGES

Tool to list messages in a Teams channel when team_id and channel_id are known. Use to enumerate channel message history and obtain message_id for follow-on operations.

NameTypeRequiredDescription
team_idstringYesUnique identifier (GUID) of the Microsoft Teams team.
channel_idstringYesUnique identifier of the channel within the team.
topintegerNoMaximum number of messages to return per page (1–50). Microsoft Graph enforces a maximum of 50 messages per request.
expandstringNoOptional expansion parameter. Only replies is supported, which includes message replies.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_LIST_TEAM_MEMBERS

Tool to list members of a Microsoft Teams team. Use when you need to retrieve the members of a specific team for auditing or notifications.

NameTypeRequiredDescription
team_idstringYesGUID of the Microsoft Teams team to retrieve members from.
topintegerNoOptional maximum number of members to request per Microsoft Graph page (1–999).
filterstringNoOptional OData filter expression to filter members by userId, displayName, or email.
selectstringNoOptional comma-separated list of properties to include in the response (e.g., id,displayName,email).
next_linkstringNoOpaque Microsoft Graph @odata.nextLink URL returned by a previous response for pagination.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_ADD_TEAM_MEMBER

Tool to add a user to a Microsoft Teams team. Use when granting or updating membership for a user.

NameTypeRequiredDescription
team_idstringYesThe unique ID (GUID) of the Microsoft Team to which the member will be added.
user_idstringYesThe user’s Graph ID (GUID) or userPrincipalName (email) to add to the team. Guest users must be referenced by object ID.
rolesarrayNoRoles to assign to the member. Use ['owner'] for a team owner or ['guest'] for a guest. Omit or leave empty to add as a standard member.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_REMOVE_TEAM_MEMBER

Removes a member from a Microsoft Teams team.

NameTypeRequiredDescription
team_idstringYesThe unique identifier of the team.
membership_idstringYesThe unique identifier of the team member’s membership record.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_CREATE_MEETING

Use to schedule a new standalone Microsoft Teams online meeting not linked to any calendar event.

NameTypeRequiredDescription
subjectstringYesThe subject or title for the online meeting.
start_date_timestringYesThe start date and time of the meeting in ISO 8601 format (e.g., 2024-08-15T10:00:00Z).
end_date_timestringYesThe end date and time of the meeting in ISO 8601 format. Must be after start_date_time.
user_idstringNoThe user ID on whose behalf to create the meeting. Required when using application permissions (S2S).
participantsarrayNoAn optional list of participants to invite to the meeting.
allow_recordingbooleanNoIndicates whether recording is enabled for the meeting.
allowed_presentersstringNoSpecifies who can be a presenter: everyone (default), organization, roleIsPresenter, or organizer.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_GET_PRESENCE

Tool to get a specific user’s presence information. Use when checking availability status, activity, or work location for a particular user.

NameTypeRequiredDescription
user_idstringYesThe unique identifier (GUID) or user principal name (UPN) of the user. Use me to get the authenticated user’s presence.
selectstringNoComma-separated OData property names to include in the response (e.g., availability,activity).
expandstringNoComma-separated list of relationships to expand inline (e.g., statusMessage).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_SET_PRESENCE

Tool to set the presence information for a user’s application presence session. Use when you need to update a user’s presence state in Microsoft Teams. Valid combinations: Available/Available, Busy/InACall, Busy/InAConferenceCall, Away/Away, or DoNotDisturb/Presenting.

NameTypeRequiredDescription
user_idstringYesThe unique identifier (GUID) of the user whose presence session to set.
session_idstringYesThe ID of the application’s presence session. Should typically match the application ID (appId) from the OAuth token.
availabilitystringYesThe base presence information: Available, Busy, Away, or DoNotDisturb.
activitystringYesThe supplemental information to availability: Available, InACall, InAConferenceCall, Away, or Presenting.
expiration_durationstringNoThe expiration of the app presence session in ISO 8601 duration format. Valid range: PT5M to PT4H.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_SEARCH_MESSAGES

Search Microsoft Teams messages using powerful KQL syntax. Supports sender (from:), date filters (sent:), attachments, and boolean logic. Works across all Teams chats and channels the user has access to. NOTE: Requires an organizational Microsoft 365 account (Azure AD/Entra ID) — does NOT work with personal Microsoft accounts.

NameTypeRequiredDescription
querystringNoKQL search query string. Examples: from:user@example.com AND sent>=2024-10-01, punchlist OR termination, sent>today-30 AND hasattachment:yes. Empty queries default to sent>=2020-01-01.
sizeintegerNoThe maximum number of search results to return per page.
from_indexintegerNoThe 0-based starting index for pagination.
enable_top_resultsbooleanNoIf true, sorts results by relevance; otherwise, sorts by date in descending order.
regionstringNoGeographic region: NAM, EMEA, or APAC. ONLY required when using application permissions (S2S).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_SEARCH_FILES

Search files in Microsoft Teams using KQL syntax. Find files by name, type, content, author, and modification date across all Teams and channels.

NameTypeRequiredDescription
querystringYesSearch query for files in Teams. Supports keywords, filenames, and content search. Examples: filetype:pdf AND lastmodifiedtime>=2024-10-01, contract AND budget, filename:report AND author:user@example.com.
sizeintegerNoThe maximum number of file results to return per page.
from_indexintegerNoThe 0-based starting index for pagination.
regionstringNoSpecifies the geographic region for the search request. ONLY required when using application permissions (S2S): NAM, EMEA, or APAC.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_GET_CHANNEL_MESSAGE

Retrieves a specific message from a Microsoft Teams channel using its Team, Channel, and Message IDs.

NameTypeRequiredDescription
team_idstringYesID of the Team containing the channel where the message is located.
channel_idstringYesID of the Channel within the specified Team that contains the message.
message_idstringYesID of the message to retrieve from the channel.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_GET_CHAT

Tool to retrieve a single chat by ID. Use when you need to get details about a specific chat.

NameTypeRequiredDescription
chat_idstringYesThe unique identifier of the chat to retrieve. Format: 19:abc123def456@thread.v2 for group chats or 19:user1_user2@unq.gbl.spaces for one-on-one chats.
expandarrayNoList of related entities to expand in the response. Supported values: members and lastMessagePreview.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_GET_MY_PROFILE

Tool to retrieve a user’s profile (id/UPN/mail/displayName). Supports both delegated auth (use user_id='me') and application-only auth (specify user ID/UPN).

NameTypeRequiredDescription
user_idstringNoThe user’s unique identifier (GUID) or user principal name (email). Use me for delegated auth (currently signed-in user).
selectstringNoComma-separated list of properties to include in the response. Default: id, userPrincipalName, mail, displayName.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_LIST_USERS

Tool to list all users in the organization. Use when you need to retrieve directory users with filtering, pagination, and field selection.

NameTypeRequiredDescription
topintegerNoMaximum number of users to return per page (1–999). Default is 100.
filterstringNoOData filter to refine results by property values (e.g., startswith(displayName,'A')).
searchstringNoOData search query for advanced text search across user properties. Requires ConsistencyLevel: eventual.
selectstringNoComma-separated list of user properties to include (e.g., id,displayName,mail).
orderbystringNoOData orderby clause to sort results (e.g., displayName desc).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_LIST_USER_JOINED_TEAMS

Tool to list the Teams that a specified user is a direct member of (joined teams). Use for access/membership audits.

NameTypeRequiredDescription
user_idstringYesUser ID or user principal name (UPN) to query joined teams for. Use me to query the authenticated user’s joined teams.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_UPDATE_TEAM

Tool to update the properties of a team. Use when you need to modify team settings such as name, description, visibility, or member, messaging, and fun settings.

NameTypeRequiredDescription
team_idstringYesThe unique identifier (GUID) of the team to update.
displayNamestringNoThe name of the team.
descriptionstringNoAn optional description for the team. Maximum length: 1024 characters.
visibilitystringNoThe visibility of the team: private or public.
memberSettingsobjectNoSettings that control what members can do in the team.
messagingSettingsobjectNoSettings that control messaging capabilities in the team.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_ARCHIVE_TEAM

Tool to archive a Microsoft Teams team. Use after confirming the team ID; returns 202 if accepted.

NameTypeRequiredDescription
team_idstringYesThe unique identifier (GUID) of the team to archive.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_UNARCHIVE_TEAM

Tool to unarchive a Microsoft Teams team. Use when you need to restore an archived team to active state.

NameTypeRequiredDescription
team_idstringYesThe unique identifier (GUID) of the archived team to restore.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_ADD_CHAT_MEMBER

Tool to add a conversationMember to a Microsoft Teams chat. Use when adding a user to an existing chat conversation.

NameTypeRequiredDescription
chat_idstringYesThe unique identifier of the chat to which the member will be added.
user_idstringYesThe user’s Graph ID (GUID) or userPrincipalName (email) to add to the chat.
rolesarrayNoRoles to assign to the member. Valid values are owner or guest. Leave empty to add as a standard member.
visible_history_start_date_timestringNoOptional. Timestamp denoting how far back a conversation’s history is shared with the conversation member. Must be in ISO 8601 format (e.g., 2021-01-01T00:00:00Z).
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_PIN_MESSAGE

Pins a message in a Microsoft Teams chat for easy later access.

NameTypeRequiredDescription
chat_idstringYesThe unique identifier of the chat where the message will be pinned.
message_idstringYesThe unique identifier of the message to pin in the chat.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_CHATS_GET_ALL_CHATS

Retrieves all chats accessible by the authenticated user in Microsoft Teams.

NameTypeRequiredDescription
topintegerNoMaximum number of chats to return per page.
filterstringNoOData filter expression to refine the chats returned.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.

MICROSOFT_TEAMS_SEND_ACTIVITY_NOTIFICATION

Tool to send activity notifications to specified recipients in Microsoft Teams. Use when you need to send custom notifications to users, team members, or channel members.

NameTypeRequiredDescription
activityTypestringYesThe type of activity being notified. This should match an activity type defined in the Teams app manifest.
topicobjectYesThe topic of the notification, including source, value, and optional webUrl for deep linking.
previewTextobjectYesThe preview text to display in the notification.
recipientsarrayYesArray of recipients who will receive the notification. Each recipient must specify an @odata.type and corresponding ID fields.
templateParametersarrayNoOptional array of template parameters as key-value pairs for customizing the notification content.
NameTypeRequiredDescription
datastringYesData from the action execution.
errorstringNoError if any occurred during the execution of the action.
successfulbooleanYesWhether or not the action execution was successful.