Microsoft Teams

Can You Display Teams Channel Posts on a Modern SharePoint Page?

There is no native Teams channel-posts web part. Compare a Teams deep link, SharePoint News, Viva Engage and a governed SPFx and Graph build.

Collab365 · Published 23 April 2026 · Refreshed 20 August 2026 · 7 min read

There is no Microsoft-provided modern SharePoint web part that embeds a live Microsoft Teams channel conversation with its posts and replies.

The current native conversation web part is Viva Engage Conversations, which displays a Viva Engage community or conversation—not Teams channel posts. If the discussion must stay in Teams, the safest default is to link the SharePoint page to the relevant channel or post. Build a custom SharePoint Framework (SPFx) web part only when a read-only feed is a real business requirement and you can own its permissions, accessibility, retention and maintenance.

Also use the right term: a Teams channel contains posts and threaded replies. A Teams chat is a separate one-to-one, group or meeting conversation. The APIs and permissions are not interchangeable.

Choose the least complicated option that meets the need

Requirement Recommended approach
Help page visitors reach the working discussion Add a normal link or Quick Links item to the Teams channel or specific post
Put an interactive community conversation on a SharePoint page Use the Viva Engage Conversations web part, if Viva Engage is the agreed discussion system
Surface approved announcements Publish them as SharePoint News; link back to Teams for working discussion
Show selected Teams channel posts in SharePoint Build a governed read-only SPFx web part using Microsoft Graph
Recreate the full Teams read-and-reply experience in SharePoint Do not treat this as a small web-part job; reassess the requirement

This distinction matters. A live conversation is not just text: it has membership, replies, edits, deletions, mentions, reactions, attachments, meeting cards, apps, policy and retention behaviour. A partial clone can look trustworthy while silently omitting context.

Option 1: link people to the real Teams conversation

For most project and departmental pages, this is the best answer.

Microsoft documents deep links to a Teams channel and a particular channel conversation. In the Teams client you can normally use Copy link or Get link from the channel or post menu, avoiding hand-built identifiers.

On the SharePoint page:

  1. Add a Button, Link or Quick Links web part.
  2. Use clear text such as Open the Project Alpha channel in Teams.
  3. Explain what belongs there: questions, decisions, daily coordination or support.
  4. Test as a Team member and as a page visitor who is not a member.

A link does not override Teams membership. That is a benefit: Teams remains the authoritative conversation surface and enforces its own access.

Do not paste a channel URL into SharePoint’s Embed web part and assume it creates a supported feed. Teams authentication, framing restrictions and its client experience are not a general-purpose SharePoint embed contract.

Option 2: use SharePoint News for durable information

If the real need is “show the latest decisions or announcements,” a chat feed may be the wrong content model.

Publish the durable summary as SharePoint News and use Teams for discussion. This gives page visitors a clear, maintained answer without asking them to reconstruct it from a fast-moving thread.

A simple operating pattern is:

  1. Agree which channel is the working discussion.
  2. Assign an owner for the SharePoint page or news post.
  3. After a decision, update the durable SharePoint content.
  4. Add a link from the SharePoint item back to the relevant Teams post where appropriate.
  5. Date the summary and identify its owner.

This is not automatic synchronization. It is deliberate publishing, and that can be much more useful than exposing every conversational message.

Option 3: use Viva Engage when the page itself needs conversation

Microsoft’s current SharePoint guidance documents the Viva Engage Conversations web part. It lets people take part in a Viva Engage conversation from the SharePoint page.

Choose it when the audience and purpose fit a broad community or organizational conversation. Do not describe it as a Teams channel viewer, and do not create a second community merely to mirror a Team. Decide which platform owns the conversation before launch.

Option 4: build a read-only SPFx web part with Microsoft Graph

If a page genuinely needs a selected Teams channel feed, SharePoint Framework is Microsoft’s supported SharePoint extensibility model. Microsoft Graph can list channel messages, while listing the replies is a separate API operation.

This is a software product, not a 30-minute page edit.

Permission design

The list-channel-messages API currently documents:

  • delegated ChannelMessage.Read.All as the least-privileged delegated permission;
  • application ChannelMessage.Read.Group as the least-privileged application permission, using resource-specific consent;
  • broader permissions only when the scenario genuinely requires them.

Prefer a viewer-context design when the web part must respect each visitor’s Teams access. If you use application permissions, never let an app-wide cache or service identity expose a channel to someone who cannot open that channel in Teams.

Private and shared channels add membership and cross-tenant boundaries. Prove those separately rather than assuming standard-channel behaviour.

Data and rendering design

The channel-messages endpoint returns root messages without replies unless you request or retrieve replies. A credible read-only component needs to handle:

  • root posts and threaded replies;
  • pagination;
  • edits and deletions;
  • HTML content and safe rendering;
  • mentions, attachments, hosted content and system messages;
  • loading, empty, error and access-denied states;
  • links back to the authoritative post in Teams;
  • current Graph throttling and change-notification guidance.

Do not render Teams message HTML with an unrestricted raw HTML injection. Sanitize it, keep external links safe and test screen-reader and keyboard navigation.

A safer MVP

Start with:

  1. one explicitly configured standard channel;
  2. read-only root posts;
  3. a short date window;
  4. the signed-in viewer’s authorized Graph call;
  5. author, date, plain text excerpt and Open in Teams link;
  6. no replies, reactions, attachments or posting from SharePoint;
  7. telemetry that excludes message bodies.

Then decide whether the missing conversation features make the component more misleading than useful.

Why a quick Power Apps embed is not the default fix

A canvas app can be placed on a SharePoint page, but that does not make it a supported Teams conversation control. Before proposing it, verify that the current Teams connector exposes the exact read and reply operations you need in Power Apps, that licensing is acceptable, and that the app enforces viewer-level membership.

Even if a connector operation works today, you still own pagination, rich content, threaded replies, error states, accessibility and API limits. Do not copy an unverified formula such as GetMessagesFromChannel(...) from an old article and promise a live feed.

Use Power Apps when you are building a deliberate business app. Do not use it merely as a wrapper around an undocumented imitation of Teams.

Security and governance checklist

Before publishing any custom feed, answer:

  • Who is allowed to see the SharePoint page?
  • Who is allowed to see the Team and channel?
  • What happens when those audiences differ?
  • Are private and shared channels excluded or explicitly supported?
  • Where are message bodies cached, for how long, and under which identity?
  • How do edits, deletions, retention and legal holds affect the copy?
  • Can a removed Team member still see cached data?
  • Are attachments and links fetched only after authorization?
  • Who owns the app registration, consent, certificate and renewal?
  • What is the fallback when Graph returns 403, 429 or 5xx?

If those answers are not owned, publish a link instead.

Frequently asked questions

Is there a native Teams chat web part for modern SharePoint?

No current Microsoft-provided web part embeds Teams channel posts and replies. The documented SharePoint conversation web part is for Viva Engage.

Can the Embed web part show a Teams channel?

Do not rely on it. A Teams URL is not a supported general-purpose embedded conversation surface. Use a link or build a supported custom component.

Can Power Apps display and reply to Teams channel messages?

Do not assume an old connector formula is current or complete. Verify the exact connector operations, licensing, permissions, pagination and message types in your tenant. It is not the default recommendation for reproducing Teams chat in SharePoint.

Can Microsoft Graph read Teams channel posts?

Yes. Microsoft Graph provides channel-message and reply APIs, but they require explicit permissions and a maintained application. Reading the feed does not recreate the full Teams experience.

What is the safest way to reduce context switching?

Use SharePoint for maintained content, add a clear deep link to the authoritative Teams channel or post, and avoid duplicating a conversation unless the duplicate has a named owner and governance model.

If you are deciding whether to link, publish or build, join the SharePoint & Teams Admins Space. Bring the page audience, channel type and the exact interaction you need.