Export Your Intercom Conversations to Third Party Tools

  • 9 January 2024
  • 2 replies
  • 516 views

Userlevel 4
Badge +5

When managing conversation history, it’s not uncommon for Intercom customers to need to export the full contents of a Conversation from Intercom into a third party tool. Depending on the information needed there are a few different approaches to take. 

 

If you don’t need the full text of the Conversation, rather you only need to export the data around the text (ex. which customer you’re speaking to, which admin handled the conversation, etc) then there are 2 different ways to get this data.

Option 1: Via the Data Export option in our Reports

 

1). In the Reports section of your Intercom workspace click on the Data Export option, click on the Conversations or the Tickets tab (depending on which you want to export), and choose your timeframe and any filters that you want to use.

SgTK5GtZwJtWZGHsCLHVochn6W89-dnnY0j60ab3eYZTAIG_5d-jl7nzDVcgDmz22cKg3hOaH05CDFUKLFcLEjX9U5VNpuykIAB0mMBP1CuDmonbL3IdEVa-WomslJHBmzOEhcbNVhWALOLfWe50rjc

2). Choose which fields you want to include in the export from the 4 dropdown menus under the Select Fields to Export section.

24-763J6v8s0oz1Vy6rv09ZzjDHEfh4kXrA3vyDvWDVF8Sz0OqiGLBmGdR0QrymbzY7zCdqmDH7paMUOde1y5vqMgoN5kpFB-uVqmg8N9IiNE_lL7XyU-3pVDxaNUfQaZ1FkItYBeGmrkht8pj-B2gk

3). Click on the Export CSV button. An email with a CSV file of those Conversations will be emailed to the address that you have affiliated with your Intercom workspace.

XMJFjwDpf24Z8tekw0nmk3R_Df1PmJfeBwscYm8GaspU1HcCjWgg0fvTuLLPXQsMISzpy8XgwFLkEp32heQFt-ivBYX_mQlwU4lCh0nircMqcMCo1I_cLpM9mqWW7m25EBcZzXvAK1dDbUp8EJqKF_4

 

Option 2: Via the REST API

 

1). Make a GET request to the /conversations endpoint of our REST API as instructed in our Developer Hub docs here.

2). This will return an Array of Intercom Conversations formatted as JSON objects.

3). The default number of conversations returned per page with this call is 20, but you can increase that amount to up to 150 conversations per page (or lower it to 1) by adding the per_page query parameter at the end of the URL, followed by how many conversations you want returned. For example making the call with https://api.intercom.io/conversations?per_page=75 as the URL would return 75 conversations per page of results.

4). If your filtered results exceed the per page maximum that you have set, then you’ll need to paginate your results as described here. You’ll see an attribute named pages at the top of the returned results that lets you know how many total pages of results you have, how many results are showing per page, what page number of the results you’re currently on, what the number is associated with the next page of results and a starting_after attribute that you’ll need for querying for the next page of your results. It looks something like this …

gApOSvUs-nOT4Xk_B_ip4C6-qo4aTGDRvofOjDbeJ9RVtb65R5XyTZjj-a38LOgIBmGMQWNCP_DAGeIzV5fqLE1aoT42BPT0HETYvNHFz0HZCZc5Jx3toY4rpIv4CIHhFHEr06_JcRjpE_oQfFQ3BOw

5). To get the next page of results you’ll need to add that starting_after attribute to your query parameters and make another GET request. It will return page 2 of your results along with a new starting_after value which you’ll need to use to access page 3 of your results. Like in the screenshot below …

 

RalVHxKLvLYmIjN7b46isGCG4nH50Ol77q_rnkGPTis5YRQV0CJsHi7vXyz9thCsc0xAgmOz_fES40fmBhlJ6VB4tRlo2zgVonJZ1RUCYxk4kdKYpStNcmgFtMUMz3zuQARyBL4uDlqmZoEaSS4XCw0

 

6). Repeat this process until you’ve cycled through all of the pages of your returned results.

 

As mentioned above, these 2 methods will deliver your conversation data, but the results won’t actually include the conversation_parts attribute that stores the actual text of the conversation. To do that, you have another 2 options available.

 

Option 3: Via the REST API … again

 

1). Go through all the steps of Option #2, above.

2). Each conversation that gets returned via that List All Conversations call will have an id attribute associated with it. You will need to make a GET request using our Retrieve a Conversation call, inserting that id attribute to the end of the URL (ex. https://api.intercom.io/conversations/abc123) in order to retrieve that individual conversation.

6AQy5t5X5GsOJyz7FTcaAh1AvIDyMHvNQjFAtKetWal1glIrVLG2NN0BA8iiF6tJ_HpO2AjaQko6_UmyAP5SPBgUfNbgbR_5eAahs112J1XB75yjdb9buJYL-04DNYeIVEXgB_5J3oufUfzinNTF7Nk

3). Repeat step 2 for each Conversation id that gets returned in the List All Conversations call.

 

When dealing with a large quantity of conversations you’ll want to write a script that automatically paginates through that list of all of your conversations, and loops through them pulling the id attributes, and making that Retrieve a Conversation call.

The text of the Conversations and the actions that take place during the Conversation (such as snoozing or assigning) are all stored in the conversation_parts attribute. You can read up on the details of that attribute in our Developer Hub docs here!

 

Option 4: Data Export to AWS S3 Bucket

 

If you are looking to export your data to a bucket in AWS S3, we have built out a tool to simplify that process for you. You can read up on how that works in our article on the topic, here!

 

Hopefully between these 4 options, you can find a solution that works best for your team!

Cheers!


2 replies

Userlevel 2
Badge +1

This is very helpful thank you!!! We need a way to export but also get the content of the conversations so that we can analyze to try and help us improve some of our processes. 

Userlevel 4
Badge +5

Happy to hear that @Erin K !

For those situations where you need all of the conversation_parts to be included in the export, you’ll want to use Options 3 or 4 👍

Reply