Pipory
Node reference

Microsoft Teams

Microsoft Teams node reference - all 57 operations, the credential it needs, and a worked example.

Microsoft Teams via the Microsoft Graph v1.0 API (Communication). 57 operations: channel messages (send, reply, list, get, update), chat messages (send, list, get, pin and unpin), chats and chat members, teams (list, get, create, update settings, archive, unarchive, clone), team members, channels (create, read, update, delete, files folder), channel members, channel tabs and the Teams app catalog, users and presence — plus the legacy incoming-webhook card post for saved workflows.

Credential: Microsoft (OAuth) - see Credentials.

Delegated permissions

Each operation below lists the delegated permission it needs. Delegated permissions are added to your own Entra app registration under API permissions → Microsoft Graph → Delegated permissions, then consented to when you connect the Microsoft credential. Every permission below is the DELEGATED one, because Pipory's Microsoft credential is an authorization-code flow acting as the signed-in user — application permissions are deliberately not listed, since Graph cannot send a Teams message app-only outside migration mode and most app-only Teams access is resource-specific consent declared in a Teams app manifest rather than in Entra. Graph permissions do not nest the way Google's scopes do: Chat.ReadWrite does not imply ChatMessage.Send, and Team.ReadBasic.All does not imply Channel.ReadBasic.All, so a workflow that reads and writes usually needs both halves granted. If a run fails with a permission error, the node names the missing delegated permission in the error - grant it and re-run; you do not need to rebuild the workflow.

Operations (57)

Channel messages

OperationWhat it doesDelegated permission
sendChannelMessageSend channel messageChannelMessage.Send
replyToChannelMessageReply to a channel messageChannelMessage.Send
listChannelMessagesList channel messagesChannelMessage.Read.All
getChannelMessageGet channel messageChannelMessage.Read.All
listChannelMessageRepliesList replies to a messageChannelMessage.Read.All
getChannelMessageReplyGet a replyChannelMessage.Read.All
updateChannelMessageUpdate channel messageChannelMessage.ReadWrite

Chat messages

OperationWhat it doesDelegated permission
sendChatMessageSend chat messageChatMessage.Send
listChatMessagesList chat messagesChat.Read
getChatMessageGet chat messageChat.Read
listPinnedChatMessagesList pinned messagesChat.Read
pinChatMessagePin a chat messageChatMessage.Send
unpinChatMessageUnpin a chat messageChat.ReadWrite

Chats & chat members

OperationWhat it doesDelegated permission
listChatsList my chatsChat.ReadBasic
getChatGet chatChat.ReadBasic
createChatCreate chat (1:1 or group)Chat.Create
updateChatUpdate chat topicChat.ReadWrite
listChatMembersList chat membersChat.ReadBasic
addChatMemberAdd chat memberChatMember.ReadWrite
removeChatMemberRemove chat memberChatMember.ReadWrite

Teams

OperationWhat it doesDelegated permission
listJoinedTeamsList teams I've joinedTeam.ReadBasic.All
listAllTeamsList all teams in the orgTeam.ReadBasic.All
getTeamGet teamTeam.ReadBasic.All
createTeamCreate teamTeam.Create
updateTeamUpdate team settingsTeamSettings.ReadWrite.All
archiveTeamArchive teamTeamSettings.ReadWrite.All
unarchiveTeamUnarchive teamTeamSettings.ReadWrite.All
cloneTeamClone teamTeam.Create

Team members

OperationWhat it doesDelegated permission
listTeamMembersList team membersTeamMember.Read.All
getTeamMemberGet team memberTeamMember.Read.All
addTeamMemberAdd team memberTeamMember.ReadWriteNonOwnerRole.All
updateTeamMemberRoleChange team member roleTeamMember.ReadWriteNonOwnerRole.All
removeTeamMemberRemove team memberTeamMember.ReadWriteNonOwnerRole.All

Channels

OperationWhat it doesDelegated permission
listChannelsList channelsChannel.ReadBasic.All
getChannelGet channelChannel.ReadBasic.All
getPrimaryChannelGet the General channelChannel.ReadBasic.All
createChannelCreate channelChannel.Create
updateChannelUpdate channelChannelSettings.ReadWrite.All
deleteChannelDelete channelChannel.Delete.All
getChannelFilesFolderGet the channel's files folderFiles.Read.All

Channel members

OperationWhat it doesDelegated permission
listChannelMembersList channel membersChannelMember.Read.All
addChannelMemberAdd channel memberChannelMember.ReadWrite.All
updateChannelMemberRoleChange channel member roleChannelMember.ReadWrite.All
removeChannelMemberRemove channel memberChannelMember.ReadWrite.All

Tabs & apps

OperationWhat it doesDelegated permission
listChannelTabsList channel tabsTeamsTab.Read.All
addChannelTabAdd a tab to a channelTeamsTab.Create
updateChannelTabUpdate a tabTeamsTab.ReadWriteSelfForTeam
deleteChannelTabRemove a tabTeamsTab.ReadWriteSelfForTeam
listCatalogAppsList Teams apps in the catalogAppCatalog.Submit

People & presence

OperationWhat it doesDelegated permission
getMeGet the signed-in userUser.Read
getUserGet a userUser.ReadBasic.All
listUsersList / search usersUser.ReadBasic.All
getMyPresenceGet my presencePresence.Read
getUserPresenceGet a user's presencePresence.Read.All
setUserPreferredPresenceSet a user's presencePresence.ReadWrite
clearUserPreferredPresenceClear a user's presencePresence.ReadWrite

Legacy webhook

OperationWhat it doesDelegated permission
sendWebhookMessagePost to a webhook URL (legacy card)(no scope — this posts to a webhook URL whose secret is in the URL itself, not to Microsoft Graph)

Example

Post into a channel as the signed-in user

The connector-webhook path this node used to rely on is retired — Microsoft disabled Office 365 Connectors in Teams in May 2026, so a pasted connector URL now delivers nothing. This is the Graph replacement. It sends as the signed-in user because that is the only flow the Microsoft credential implements, and on Teams that is not a compromise: application permissions cannot send a Teams message at all outside migration mode.

Set Operation to sendChannelMessage, then fill in:

FieldValueNotes
teamId{{ vars.teamsTeamId }}The team's group id
channelId{{ vars.teamsChannelId }}The channel within it
messageContent<p>Deploy <b>{{ myTrigger.sha }}</b> finished.</p>HTML when contentType is html
contentTypehtmlhtml or text

Sets {{post.messageId}} and {{post.webUrl}}. A credential connected with only the Mail or Files scope preset 403s here until it is reconnected with a Teams preset ticked. Teams throttles POST message to 1 request/second per user.