The best knowledge in your organization isn’t always in SharePoint. It’s buried in a Teams channel at 4:47 PM on a Thursday, sandwiched between a confused-raccoon GIF and a VPN complaint. That’s institutional knowledge: the tips, workarounds, and tribal wisdom that never make it into formal docs. The TeamsMessages capability lets you ground a declarative agent in Teams conversations so it can surface that wisdom from group chats, 1:1 conversations, and channel threads alike.
Why Teams Conversations Matter
New hires read the Employee Handbook and skim the IT Setup Guide, but then they hit questions no document anticipated:
- “Has anyone figured out how to connect to the printer on the 3rd floor?”
- “What’s the best approach for the compliance quiz?”
- “Is there a trick to getting the expense tool to accept international receipts?”
These answers exist: locked inside Teams conversations, slowly scrolling off-screen into oblivion. Grounding your declarative agent in Teams channels turns those fleeting messages into a searchable, citable knowledge source that blends formal documentation with real peer-validated advice.
Configuring the Teams Capability
The simplest configuration is a non-scoped TeamsMessages capability. This gives your agent access to all Teams conversations the current user can see, including group chats, 1:1 messages, and channel threads:
{
"name": "TeamsMessages"
}
That’s it. No URLs, no IDs, no configuration. The agent can now search and retrieve messages from every Teams conversation the user has access to. This is perfect for a general-purpose assistant where you want the broadest possible context.
Why You Should Scope TeamsMessages
While the non-scoped version is powerful, scoping to specific channels or conversations gives you better results for focused agents:
- Relevance: A scoped agent returns answers from the channels that matter, not from every random group chat
- Performance: Fewer sources to search means faster, more precise results
- Trust: Users trust answers more when they know the agent is pulling from curated, authoritative channels rather than every conversation in their inbox
For the Zava Insurance HR Buddy, scoping to the “New Hires 2026” channel ensures the agent surfaces onboarding tips from fellow new hires, not unrelated project chatter.
Scoping to Specific Channels
Add a urls array to target specific Teams channels:
{
"name": "TeamsMessages",
"urls": [
{
"url": "https://teams.microsoft.com/l/channel/19%[email protected]/New%20Hires%202026?groupId=..."
}
]
}
How to Get a Channel or Conversation ID
Getting the right URL depends on what you’re targeting:
For channels:
- Open Microsoft Teams
- Navigate to the channel you want to index
- Right-click the channel name
- Select “Get link to channel”
- Copy the URL
The URL looks like this:
https://teams.microsoft.com/l/channel/19%[email protected]/New%20Hires%202026?groupId=12345678-abcd-...
For group chats and 1:1 conversations:
- Open the chat in Microsoft Teams
- Click the three-dot menu (⋯) next to the chat name
- Select “Get link to conversation”
- Copy the URL
The URL looks like this:
https://teams.microsoft.com/l/chat/19%[email protected]/0?tenantId=...
Both channel URLs and conversation URLs work in the urls array, so you can mix and match group chats, 1:1 conversations, and channel threads in a single capability.
Combining with Other Knowledge Sources
Combine Teams messages with other grounding sources in the capabilities array. Here’s the Zava Insurance HR Buddy with both SharePoint and scoped Teams grounding:
"capabilities": [
{
"name": "OneDriveAndSharePoint",
"items_by_url": [
{
"url": "https://zavainsurance.sharepoint.com/sites/HR/Shared Documents/Onboarding"
}
]
},
{
"name": "TeamsMessages",
"urls": [
{
"url": "https://teams.microsoft.com/l/channel/19%[email protected]/New%20Hires%202026?groupId=..."
}
]
}
]
You can add multiple URLs in the urls array to index several channels and conversations at once (up to 5 per capability). Want to ground your agent in the “New Hires 2026” channel, the “IT Help” channel, and a 1:1 chat with the onboarding coordinator? Just add more URL entries.
What Gets Indexed
When you point your agent at a Teams channel, the Microsoft 365 Copilot platform indexes:
- Channel messages: Every top-level post in the channel
- Replies: Threaded responses within those messages
- Shared files: Documents shared directly in the channel
The platform handles retrieval, chunking, and synthesis automatically: no RAG pipeline, no embeddings, no vector databases.
The agent respects the Teams permission model. If the person chatting with the agent isn’t a member of the team, they won’t get results from that channel. This is crucial for enterprise scenarios where channel access is scoped to specific groups or departments.
The Magic: Peer Wisdom Meets Formal Docs
When your agent is grounded in both SharePoint documents and Teams conversations, it can synthesize answers from multiple sources simultaneously.
Imagine someone asks our Zava Insurance HR Buddy agent:
Without Teams grounding (SharePoint only), the response is accurate but thin:
Accurate. Correct. And about as helpful as a fortune cookie.
With Teams grounding added, the agent blends formal documentation with real peer advice:
The agent cited both sources, official documentation and peer conversation, giving new hires the kind of answer that feels like a mentor who’s read all the docs and talked to everyone.
This captures something traditionally impossible to scale: human experience. The tips, the gotchas, the “I wish someone had told me” moments: they’re already in your Teams channels. You’re just making them discoverable.
No Infrastructure Required
Worth emphasizing: there is no infrastructure to manage.
- No RAG pipeline: the platform handles retrieval and synthesis
- No embeddings: no vector databases to provision or maintain
- No data connectors: Teams is already inside the Microsoft 365 security boundary
- No ETL jobs: content is indexed automatically
You’re literally pointing the agent at a URL and deploying. The platform handles the rest.
Compare that to building a custom knowledge retrieval system: you’d need a document ingestion pipeline, a vector store, an embedding model, a retrieval API, a re-ranking layer, and a synthesis prompt. For each source. With access control bolted on.
Or… you write five lines of JSON.
The Value You Just Unlocked
A single capability declaration gave us:
- Instant conversational intelligence: The agent reads, synthesizes, and cites real Teams conversations on demand, from group chats, 1:1 messages, and channel threads
- Flexible scoping: From full conversation access (zero config) to pinpointed channels or specific chat threads using URLs
- Peer wisdom at scale: Tips, workarounds, and tribal knowledge that used to be lost in scrollback are now searchable and citable
- Multi-source synthesis: Combined with SharePoint or other grounding sources, the agent blends formal docs with real human experience
- Zero infrastructure: No message export pipeline, no indexing service, no custom Graph API integration
- Built-in security: Teams permission model applies automatically; users only see conversations they already have access to
The HR Buddy went from answering questions with static documentation to surfacing the real, human, “I wish someone had told me” advice that lives in Teams conversations.
Resources
Have questions or want to share what you're building? Connect with me on LinkedIn or check out more on The Manifest.