Access Conversation Data

The data for enhanced conversations in Salesforce are saved in on-platform and off-platform objects. Refer to the Messaging Object Model to see which type of data is stored in on-platform versus off-platform objects. We provide tools to help you query, report on, or export this information regardless of where it’s stored.

All on-platform conversation objects are queryable using SOQL, and many are also available through Salesforce standard reporting. For help setting up reports that you can use to track response time, handle time, and other KPIs, see Report on Messaging Activity in Service Cloud.

Off-platform data, such as the actual messages exchanged in a conversation, is not available through SOQL or standard reporting.

There are three supported ways to access off-platform data:

Salesforce provides two APIs for accessing conversation data: the newer Conversation Data GET API and the Conversation Entries Connect Rest API. This section will detail the differences between these APIs and outline their respective limitations for retrieving conversation data.

When you query an individual conversation via API, the call marks that conversation as active, which counts against your organization’s simultaneous active conversation limit. The "active" status persists for 30 minutes of inactivity. Any subsequent API call or new message sent within that window will reactivate the session, restarting the 30-minute timer. Exceeding the simultaneous active conversation limit can lead to errors where new conversations cannot be created.

To avoid this issue, it's important to minimize unnecessary or excessive calls that could push you over your active limit. To illustrate this point, let's consider a scenario with "Admin Anne" at "Example Corp."

Example Corp. has a standard simultaneous conversation limit of 11,000. During peak business hours, they typically have around 8,000 simultaneous conversations ongoing. To minimize the risk of hitting the limit, Admin Anne schedules the majority of her API calls outside business hours when there are generally no simultaneous conversations ongoing. Admin Anne understands that conversations are marked inactive after 30 minutes of inactivity and that an API call will reactivate them. Therefore, during her off-hours API calls when there are no active conversations ongoing, she ensures she doesn't query more than 11,000 conversations within a 30-minute period to stay within the limit.

If API queries are absolutely necessary during business hours, Admin Anne keeps in mind the 8,000 active conversations already in progress. To remain under the 11,000 limit, she caps her API queries to no more than 2,000 conversations within any given 30-minute window during business hours. At 8,000 existing sessions plus 2,000 API-activated sessions, totaling 10,000 sessions, Admin Anne has made the effort to stay below the 11,000 limit.

You can also avoid exceeding your simultaneous conversation limit by fetching an already active conversation. For instance, if you retrieve a conversation via the API immediately after it concludes, and a participant recently sent a message, the conversation is already marked as active, meaning you won't activate any new conversations.

Another consideration when accessing conversation data via API is that voice call entries are only associated with the voice call record after the call ends. Therefore, you may not be able to retrieve conversation entries for voice calls until the call has concluded.

The Conversation Data GET API is planned to eventually replace the legacy Connect REST API. While no end-of-support date has been set for the Connect API, we strongly recommend building all new data access integrations using this new GET API.

The new GET API has the same operational constraints regarding the simultaneous conversation limit as the legacy Connect API. However, it provides a key functional advantage that it returns the full conversation entry payload, including all conversation entry types (such as rich content, URLs, bot messages, bot selections, etc.) that the legacy API omits. Unlike our new GET API, transcripts returned via the Connect REST API are text-only, so they don’t include rich content or bot messages.

Sync your off-platform conversation data to Data Cloud. After off-platform conversation data is synced to Data Cloud, you can:

  • Analyze your messages using Data Cloud Reports.
  • Export the data programmatically via Data Cloud APIs.

Conversation data uses a minimal amount of Data Cloud capacity. If your Salesforce edition includes free Data Cloud, in many cases, the capacity used to store your off-platform conversation data comfortably fits within the limits of the free tier.

To sync off-platform conversation data to Data Cloud:

  1. Enable access to conversation transcripts in Data Cloud. See Analyze Conversation Transcripts in Data Cloud for steps on how to enable access.
  2. Create Data Streams for Conversation Transcripts.

We strongly recommend using Data Cloud to access conversation data because it lacks the limitations found in other data access methods, and its use for conversation data comes at no additional cost for most customers.

To download all of your conversation data from all time, the bulk export tool is the best option. The tool performs a complete export of message data and can only be used once every 7 days. The tool is best used for archival or compliance use cases and not frequent syncing.

See Also