web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Automate / Teams Channel List Con...
Power Automate
Suggested Answer

Teams Channel List Conversation

(0) ShareShare
ReportReport
Posted on by 4

I have a Microsoft List that’s linked to a Teams channel, and I can access this list from our SharePoint site. However, I can’t see the associated Teams conversation anywhere in SharePoint.I’ve tried adding a column using teamsConversationMetadata, but this doesn’t display the conversation itself. Apparently it’s a limitation on the sharepoint. 
Is there any way to automatically export or add the Teams conversation in SharePoint (or even excel) alongside the list item? I tried building a Power Automate flow with the “When a new channel message is added” trigger and the “Get messages” action. However, I still don’t see the full conversation thread, and I can’t find a way to get a link to just the parent message so that I can store it on the related list item. Thanks in advance.

IMG_8054.png
IMG_8053.png

Your file is currently under scan for potential threats. Please wait while we review it for any viruses or malicious content.

Categories:
I have the same question (0)
  • Expiscornovus Profile Picture
    33,830 Most Valuable Professional on at
     
    Out of interest, where did you find that teamsConversationMetadata column name?
     
    Personally, I have never seen that in documentation or in REST API or Graph API methods.
     
     
    Happy to help out 😁

    I share more #PowerAutomate and #SharePointOnline content on my Blog, LinkedIn, Bluesky profile or Youtube Channel
  • Suggested answer
    CU08011550-0 Profile Picture
    4 on at
    When I open the list in Sharepoint --> Add Column --> Show or hide columns
    It opens a list of columns that can be added to the list view, one of them is the teamsConversationMetadata.
    Unfortunately its only the metadata, the content of the message itself is not stored, which is what I need.
     
  • Suggested answer
    Simon Lavallee GC-CRA Profile Picture
    2 on at
     
    Send HTTP Request to SharePoint, POST (really a POST, not a GET)
    _api/SP.TeamChannelManager.GetConversations()
     
    Headers
    accept
    application/json;odata=verbose
    content-type
    application/json;odata=verbose
     
    Payload body, Replace three variables: _YOUR_ITEM_ID_    _YOUR_SITE_NAME_    _YOUR_LIST_NAME_
    {\"listItemId\":_YOUR_ITEM_ID_,\n\"listUrl\":\"/sites/_YOUR_SITE_NAME_/Lists/_YOUR_LIST_NAME_\"}
     
    Source of information: The details about _uri and payload are not found anywhere in the public facing MSFT docs. The class itself is enumerated in the CSOM docs here and here and that's it. Would be nice if someone finds more official details but looks like this is only contained in internal docs. In the mean time, we can hack our way to meet your objective:
    • Run MS Teams in the web browser
    • Open dev pannel (F12), go to Networks tab > Fetch/XHR filter
    • Go to a channel with a List tab installed and open the item details form and open the 'Conversation side pannel'
    • Filter the network calls by SP.TeamChannelManager and then inspect the headers and payload to get a sample (what I posted above)
    • There are two types of calls that I found:
      • SP.TeamChannelManager.GetConversations()
        • retrieves the attached first conversation id for the given list item
        • this is a POST even if you are using it to get information
        • the response includes the {conversation id also knows as message id} {channel id} {team id}
        • from here you can do your other calls like 'Get message details' to reconstruct the entire conversation with all its replies
      • SP.TeamChannelManager.SaveConversations()
        • this is the POST event that attaches a conversation to a list item
        • this was not the original question so I will not expand too much on this, but you can
          • trigger a new conversation for a list item (via the Teams in web browser)
          • find the .SaveConversations() call and inspect the payload to get started.
          • This allows to automate the posting of a new message in a channel and then attach it to a list item to make it 'the conversation about item x'.
          • Very useful for requests/ticketing systems where you want to use a channel post as notification for a new ticket that was created, but then by attaching the notification to the ticket list item, you'll be able to keep each conversation for each ticket recorded.
          • We often get complaints from clients who do not want to get rid of email notifications because the emails stick in their inbox until they action it, versus Teams notifications that get lost in the feed. With this approach of having a list item that 'sticks until it gets actioned' the conversations don't get lost in the feed, and it essentially creates a live chat system for requests and tickets.
          • Let me know if you want more details about this approach :)
    While doing some testing, I also noticed that the response you get from .GetConversations() is going to be an array if the same List was installed as a tab in more than one channel and that multiple conversations exists for the same list item in different channels at the same time. Whatever logic you are building to extract these conversations should therefore include a check for the channel id from where you want to extract, in case some users have installed the same list as a tab in another channel. Example response with two conversations about the same list item for the same list installed in two separate channels:
    "body": {
    "d": {
    "GetConversations""{\"v1\":[
    {\"conversationId\":\"1774123456789\",\"channelId\":\"19:712e8fd2ab9c41c8aa30e18123456789@thread.tacv2\",\"teamId\":\"19:-mfQVqnkfS0qCdzRGfoA2uhAl2OGeA53bsu123456789@thread.tacv2\"},
    {\"conversationId\":\"1774112345678\",\"channelId\":\"19:3d267283da274649986b8bc123456789@thread.tacv2\",\"teamId\":\"19:-mfQVqnkfS0qCdzRGfoA2uhAl2OGeA53bsu123456789@thread.tacv2\"}
    ]}"
    }
     
    And the same goes if you use .SaveConversations(), you can pass it an array of conversations to attach to a single list item via the updatedConversationsObject. Let's say you post two notifications each in their respective channel, you can then do a single call with .SaveConversations like this:
    {
    \"listUrl\": \"sites/TE0004B/Lists/193A712e8fd2ab9c41c8aa30e18911b159d040threadtacv2\",
    \"listItemId\": 6,
    \"updatedConversationsObject\": \"{\\\"v1\\\":[
    {\\\"conversationId\\\":\\\"1774960936725\\\",\\\"channelId\\\":\\\"19:712e1234567891c8aa30e18123456789@thread.tacv2\\\",\\\"teamId\\\":\\\"19:-mfQVqnkfS0q123456789uhAl2OGeA53bsu123456789@thread.tacv2\\\"},
    {\\\"conversationId\\\":\\\"1774961641360\\\",\\\"channelId\\\":\\\"19:3d26123456789649986b8bc123456789@thread.tacv2\\\",\\\"teamId\\\":\\\"19:-mfQVqnkfS0q123456789uhAl2OGeA53bsu123456789@thread.tacv2\\\"}
    ]}\"}"
    }
     

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Users!

Kudos to our 2025 Community Spotlight Honorees

Congratulations to our 2025 community superstars!

Congratulations to the March Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Power Automate

#1
Haque Profile Picture

Haque 636

#2
Valantis Profile Picture

Valantis 372

#3
11manish Profile Picture

11manish 335

Last 30 days Overall leaderboard