Skip to main content
Microsoft Teams Logo

Microsoft Teams actions

Team channels, chats, meetings, and calendar via Microsoft Graph

ReadyMicrosoft 365

Overview

The Microsoft Teams action lets AI agents work with your organization through Microsoft Graph: post and read channel messages, manage chats, search conversations, manage teams and channels, and work with calendar events, online meetings, transcripts, and attendance. Administrators enable the integration under Workspace → Actions in the web app. Each user completes sign-in under Your actions so agents run with that user’s Microsoft identity and permissions.

Key Capabilities

  • Channel messaging — Send messages, reply in threads, update text, reactions, permalinks, and search across channels
  • Direct chats — Message users by name or email, read chat history with a person, create 1:1 or group chats
  • Teams and channels — List teams and channels, create or rename channels, create teams, list and add members
  • Users — Look up a user or list directory users in the tenant
  • Meetings and calendar — List and filter meetings, search events by name in a date range, create or edit calendar events, schedule channel meetings
  • Meeting insights — Transcripts, invited attendees, and attendance for Teams online meetings

Available tools

These are the Graph-backed tools your agents can call once the Microsoft Teams action is configured and the user has authenticated. In the product UI they appear under Available actions for this integration.
ToolDescriptionType
get_user_infoGet information about a Teams/Entra userSearch
get_users_listGet list of users available in Microsoft Entra/Teams tenantSearch
get_user_conversationsGet conversation messages with a Teams userSearch
get_user_channelsGet channels accessible to the authenticated Teams userSearch
get_meetingsGet meetings with optional filters (date range, deleted, cancelled, recurring/one-time)Search
search_calendar_events_in_rangeSearch calendar events by partial subject within a time rangeSearch
get_my_meeting_transcriptsGet transcript records, content, and metadata for the user’s online meetingsSearch
get_people_attendedGet attendance records for a Teams online meetingSearch
get_people_invitedGet people invited to a Teams meetingSearch
get_teamsList Microsoft Teams the authenticated user has joinedSearch
get_teamGet details for a specific Microsoft TeamSearch
get_membersList members in a Microsoft Team or channelSearch
get_channelsList channels in a Microsoft TeamSearch
search_messagesSearch messages in Microsoft Teams channelsSearch
get_reactionsGet reactions for a Microsoft Teams channel messageSearch
get_channel_messagesList messages from a Microsoft Teams channelSearch
get_thread_repliesGet replies in a Microsoft Teams message threadSearch
get_message_permalinkGet a permalink/URL for a Microsoft Teams channel messageSearch
get_chatGet details of a specific Microsoft Teams chatSearch
create_eventCreate a calendar event/meeting for the authenticated userAction
create_channel_meetingSchedule an online meeting for a Teams channel in a teamAction
edit_eventEdit or update an existing calendar eventAction
create_teamCreate a new Microsoft TeamAction
add_memberAdd a member to a Microsoft Team or channel (team, standard, or private channel)Action
create_channelCreate a new channel in a Microsoft TeamAction
update_channelUpdate a channel display name or descriptionAction
send_channel_messageSend a message to a Microsoft Teams channelAction
send_user_messageSend a direct message to a Microsoft Teams userAction
reply_to_messageReply to a specific message in a Microsoft Teams channel threadAction
send_message_to_multiple_channelsSend the same message to multiple channels in a Microsoft TeamAction
add_reactionAdd a reaction to a Microsoft Teams channel messageAction
remove_reactionRemove a reaction from a Microsoft Teams channel messageAction
update_messageUpdate an existing Microsoft Teams message in a channel or direct chatAction
create_chatCreate a 1:1 or group chat in Microsoft TeamsAction

Configuration Guide

Step 1: Register an application in Microsoft Entra ID

  1. Sign in to the Azure portal as an administrator (or a user who can register apps).
  2. Open Microsoft Entra ID (Azure Active Directory).
  3. Under Manage, select App registrationsNew registration.
  4. Enter a name (for example, “PipesHub Teams actions”), choose Accounts in any organizational directory and personal Microsoft accounts if you need the broadest sign-in audience (or a stricter option for your tenant), then register.
  5. Copy the Application (client) ID for later.
Microsoft Entra ID app registration overview

Step 2: Add Microsoft Graph API permissions

  1. In the app registration, open API permissions.
  2. Click Add a permissionMicrosoft GraphDelegated permissions.
  3. Add the permissions required by the Teams action (see the table below). Add each permission that appears in your product version; your administrator may consolidate or adjust these over time.
  4. Click Add permissions.
Microsoft Graph delegated API permissions for Teams action

Delegated permissions (reference)

These align with the agent OAuth scope configuration for the Microsoft Teams action. Several permissions are commonly granted via admin consent. See the Microsoft Graph permissions reference for details.
PermissionTypical use
Team.ReadBasic.AllRead basic team properties
Channel.ReadBasic.AllRead basic channel properties
Channel.CreateCreate channels
Channel.Delete.AllDelete channels
ChannelMessage.Read.AllRead channel messages
ChannelMessage.SendSend channel messages
TeamMember.ReadWrite.AllAdd or manage team members
Group.ReadWrite.AllCreate and manage Microsoft 365 groups / teams
Chat.ReadWriteRead and send chat messages
Chat.CreateCreate chats
offline_accessRefresh tokens for long-lived sessions
User.ReadSign-in profile for the signed-in user
User.ReadBasic.AllRead basic profiles of other users
Calendars.ReadRead user calendars
Calendars.Read.SharedRead calendars the user can access
Calendars.ReadBasicBasic calendar read
Calendars.ReadWriteCreate and update events
OnlineMeetings.ReadRead online meeting properties
OnlineMeetingTranscript.Read.AllRead meeting transcripts
OnlineMeetingArtifact.Read.AllRead meeting artifacts
ChannelMember.ReadWrite.AllAdd or manage channel members
  1. On API permissions, review Status for each permission.
  2. If your tenant requires it, click Grant admin consent for [your organization] and confirm.
Grant admin consent for Microsoft Graph permissions

Step 4: Create a client secret

  1. Open Certificates & secrets.
  2. Under Client secrets, click New client secret, add a description and expiry, then Add.
  3. Copy the secret value immediately; it is shown only once.
Create and copy client secret in Azure

Step 5: Create the Microsoft Teams action in PipesHub

These steps require a workspace administrator. Open Workspace → Actions (or /workspace/actions/team). Use the path that matches whether your organization already has a Microsoft Teams org instance.

Case A — Organization does not have a Microsoft Teams instance yet

  1. In the sidebar, open Workspace, then Actions.
  2. On the catalog, find Microsoft Teams. With no org instance yet, the card is Not configured and the primary control is Setup.
  3. Click Setup on the Microsoft Teams card (or open the card and start setup). The Action configuration drawer opens.
Workspace Actions catalog showing Microsoft Teams with Setup when the organization has no instance yet

Case B — Organization already has at least one Microsoft Teams instance

  1. In the sidebar, open Workspace, then Actions.
  2. Find Microsoft Teams in the catalog. When an org instance already exists, clicking the card opens the Microsoft Teams type page (instances list) instead of launching setup immediately.
  3. On the type page, click Add instance. The Action configuration drawer opens.
Microsoft Teams action type page with Add instance when the organization already has instances

Complete configuration (both cases)

  1. In the Action configuration drawer, set Instance name (for example, “Production Teams”).
  2. Enter Client ID and Client secret from Entra (and Tenant ID if the form shows it—your directory GUID, domain, or common for the default multi-tenant and personal Microsoft account behavior, as described in the product UI).
  3. Click Create to save the organization action instance.
After you create an OAuth-backed action, the product may remind you that each user must sign in from Your actions before they can use it in agents.

Step 6: Copy the Redirect URI and register it in Azure

The Action configuration drawer does not show the redirect URL; you copy it from Manage action configuration after the instance exists.
  1. On the Microsoft Teams action page, find your new instance in the list.
  2. Open Manage action configuration (the settings control on the instance row).
  3. Under Redirect URI, copy the value (or use Copy). It matches your deployment host and this pattern: https://<your-pipeshub-host>/toolsets/oauth/callback/teams The path segment teams matches the Microsoft Teams action type. The value must match what you register in Entra exactly (scheme, host, path; no stray trailing slash unless your deployment includes one).
  4. In the Entra app registration, open Authentication.
  5. Under Platform configurations, add a Web platform if needed.
  6. Under Redirect URIs, paste the exact Redirect URI from PipesHub.
  7. For a web-based OAuth callback, you can enable Access tokens and ID tokens under Implicit grant and hybrid flows only if your organization’s security policy requires it; many confidential-client flows use the authorization code flow only.
  8. Save the Authentication blade.
The Redirect URI in Azure must match the value from PipesHub exactly (including scheme, host, path, and trailing slashes).
Add Redirect URI in Azure app registration Authentication

Step 7: Sign in and authorize

Administrators (org instance)
On Workspace → Actions, open Microsoft Teams, select your instance, and use Authenticate to complete the Microsoft sign-in and consent flow. After redirect back to PipesHub, the instance should show as authenticated.
End users
Each person who should use Microsoft Teams in agents opens Your actions in the workspace sidebar (/workspace/actions/personal), finds Microsoft Teams, and completes Authenticate for the organization instance they need.
Microsoft account consent for Teams action OAuth

FAQ

AspectTeams ConnectorMicrosoft Teams action
PurposeSync and index Teams-related content for search in PipesHubLet agents call Microsoft Graph in real time (messages, meetings, membership, and more)
Data flowPrimarily one-way import into PipesHubTwo-way: read and write through APIs
When to useSearch historical Teams or Microsoft 365 content already indexedCreate events, post messages, add members, fetch live meeting transcripts, and similar operations
Use a connector when you need retrieval over indexed data; use the Microsoft Teams action when the agent should act in Teams or Graph on behalf of the signed-in user (within granted permissions).

Channel message search scans recent messages per channel (bounded by the tool’s parameters). Ask for a specific team or channel when possible so results stay focused.

Usage Tips

How do I post in a Teams channel?
Ask the agent to send a message to the right team and channel. It can use get_teams and get_channels to resolve IDs, then send_channel_message.
How do I direct-message someone?
Ask to “DM” or “chat with” a person by display name, email, or UPN. The Microsoft Teams action uses send_user_message and resolves the user when possible.
How do I reply in a thread?
Ask to reply to a specific message or thread in a channel. The agent uses reply_to_message with the parent message ID when it is known, or reads the thread with get_channel_messages / get_thread_replies first.
How do I find or schedule a meeting?
Use natural language with a time range. The agent can call get_meetings, search_calendar_events_in_range, create_event, or create_channel_meeting depending on whether the meeting is personal or tied to a channel.
How do I get a meeting transcript or who attended?
Ask for the transcript or attendance for a specific online meeting. The agent uses get_my_meeting_transcripts, get_people_attended, or get_people_invited as appropriate, often after resolving the meeting from calendar or join information.
How do I add someone to a team or private channel?
Ask to add the user by email or ID and specify the team (and private channel if needed). The agent uses add_member; use get_members to inspect membership first if helpful.