WorkerKit

AI workers for Microsoft Teams

Ready-made AI workers for Microsoft Teams: channel digests, briefings delivered as a chat, and alerts that land in the tool your organisation already runs on.

What is an AI worker for Microsoft Teams?

An AI worker for Microsoft Teams is an AI agent scoped to one job inside your Microsoft 365 workspace, such as posting a summary into a team channel or sending you a private briefing as a chat. It connects as your work account, posts only where you scope it, and reading conversations is a separate permission from posting into them.

What these workers do

Post a status digest to a team channel

Delivers a summary assembled from your trackers and calendars into the channel the team already watches.

Send a private briefing as a chat

Delivers a personal agenda or reminder directly to you rather than to a channel, keeping it out of the team's view.

Alert a team when something changes

Posts on a specific condition with enough context to act on, so nobody has to be watching a dashboard.

File requests raised in a channel

Turns asks made in conversation into properly filed work items, where reading that channel is permitted.

How an AI worker runs in Microsoft Teams

Delivering into the tool people already have open

Channels and chats are different choices

Reading conversations asks more of your tenant

Microsoft Teams questions, answered.

Does this need administrator approval?

Connecting a Microsoft 365 work account follows your tenant's consent rules, and reading team conversations in particular is often governed more tightly than posting. Many workers need only to post, which is the lighter permission.

Can it read our team conversations?

Only with read permission and only in the channels you scope it to. A large share of Teams workers hold no read access at all, because their job is to deliver a summary produced from other systems. Since reading conversations is the more sensitive permission, not needing it is a genuine advantage.

Will messages look like they came from me?

No. A worker posts under its own identity, so anyone reading the channel can see the message came from a worker rather than from a colleague. In an organisation where a great deal of decision making happens in Teams, being able to tell the difference at a glance matters more than the convenience of it looking personal.

Can it post into any team?

Only the teams and channels you scope it to, within what your connected account can already reach. It inherits your access and is then narrowed further, never the other way round, so connecting a worker cannot give it a way into a team you were not already a member of.

What AI workers can do in Microsoft Teams

The tools a worker can be granted in Microsoft Teams once you connect it. A kit grants only the ones its job needs, and you can narrow them further on the worker.

List Teams

List the Microsoft Teams the connected user belongs to. Returns each team's id (use as teamId in the other tools) and display name.

List Channels

List a team's channels. Returns each channel's id (use as channelId), name, and type (standard/private/shared). Paginate with nextLink. If `accessInfo` is present, channel access rules limited the results — render it verbatim.

Get Channel

Get one channel's metadata: name, type, and description.

List Chats

List the connected user's chats (1:1, group, and meeting). Returns each chat's id (use as chatId), type, and topic. Paginate with nextLink.

Get Chat

Get one chat's metadata: type, topic, and member summary.

List Team Members

List a team's members with their display name, email, and role.

List Channel Members

List the members of a private or shared channel. Standard channels share the team roster — use teams_list_team_members for those.

List Chat Members

List the participants of a chat with their display name and email.

List Channel Messages

List the top-level messages in a channel, newest first. Set expandReplies=true to inline each message's replies; otherwise fetch them with teams_list_replies. Paginate with nextLink. No server-side date filter exists for channel messages — for a dated window, page until you cross it (chat messages via teams_list_chat_messages DO support 'since'). An empty body with `redacted: true` means a redaction rule removed the text, not that the message was empty; render any `accessInfo` verbatim.

Get Channel Message

Get one channel message by id, including body, author, mentions, and reactions.

List Message Replies

List the replies to a channel message (a thread), oldest first. Paginate with nextLink.

List Chat Messages

List the messages in a chat, newest first. Accepts a since ISO-8601 timestamp for a dated delta (server-side lastModifiedDateTime filter; windowed reads return most-recently-modified first). Paginate with nextLink. An empty body with `redacted: true` is a redaction rule, not an empty message; render any `accessInfo` verbatim.

Get Chat Message

Get one chat message by id, including body, author, mentions, and reactions.

Search Teams Messages

Full-text search across the channel and chat messages the connected user can see. Each hit carries its container ids and a composite cite id (`channel:{channelId}:{id}` or `chat:{chatId}:{id}`). Paginate by passing the response's `nextLink` back verbatim.

Get Presence

Get a user's Teams presence (availability and activity). Omit userId for the connected user's own presence.

Send Channel Message

Post a new top-level message to a channel. To reply within an existing thread, use teams_reply_channel_message instead.

Reply to Channel Message

Post a reply under an existing channel message, continuing its thread.

Send Chat Message

Send a message to an existing chat. Create a new chat first with teams_create_chat if one does not exist.

Set Message Reaction

Add or remove an emoji reaction on a channel or chat message. Set unset=true to remove a previously added reaction. Pass teamId+channelId for a channel message, or chatId for a chat message.

Create Chat

Create a 1:1 or group chat with the given members and return its chatId for teams_send_chat_message. Members are given by email; an address that can't be resolved to a directory member (external/guest/typo) fails the call and is named in the error.

Browse Microsoft Teams kits

All apps