Get started with a free trial today
Already have an account? Sign in
Stitch’s Intercom integration replicates data using theIntercom API (V2.5). Refer to theSchema section for a list of objects available for replication.
A high-level look at Stitch's Intercom (v2) integration, including release status, useful links, and the features supported in Stitch.
| STITCH | |||
| Release status | Released on December 13, 2022 | Supported by | |
| Stitch plan | Standard | API availability | Available |
| Singer GitHub repository | |||
| REPLICATION SETTINGS | |||
| Anchor Scheduling | Supported | Advanced Scheduling | Supported |
| Table-level reset | Unsupported | Configurable Replication Methods | Unsupported |
| DATA SELECTION | |||
| Table selection | Supported | Column selection | Supported |
| Select all | Supported | ||
| TRANSPARENCY | |||
| Extraction Logs | Supported | Loading Reports | Supported |
On the Stitch Dashboard page, click theAdd Integration button.
Click theIntercom icon.
Enter a name for the integration. This is the name that will display on the Stitch Dashboard for the integration; it’ll also be used to create the schema in your destination.
For example, the name “Stitch Intercom” would create a schema calledstitch_intercom in the destination.Note: Schema names cannot be changed after you save the integration.
The Sync Historical Data setting defines the starting date for your Intercom integration. This means that dataequal to or newer than this date will be replicated to your data warehouse.
Change this setting if you want to replicate data beyond Intercom’s default setting of1 year. For a detailed look at historical replication jobs, check out theSyncing Historical SaaS Data guide.
In theReplication Frequency section, you’ll create the integration’sreplication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.
Intercom integrations support the following replication scheduling methods:
Advanced Scheduling using Cron (Advanced or Premium plans only)
To keep your row usage low, consider setting the integration to replicate less frequently. See theUnderstanding and Reducing Your Row Usage guide for tips on reducing your usage.
Lastly, you’ll be directed to Intercom’s website to complete the setup.

The last step is to select the tables and columns you want to replicate.Learn about the available tables for this integration.
Note: If a replication job is currently in progress, new selections won’t be used until the next job starts.
For Intercom integrations, you can select:
Individual tables and columns
All tables and columns
Click the tabs to view instructions for each selection method.
To track a table, click thecheckbox next to the table’s name. A blue checkmark means the table is set to replicate.
To track a column, click thecheckbox next to the column’s name. A blue checkmark means the column is set to replicate.
Click theTables to Replicate tab.
In the menu that displays, clickTrack all Tables and Fields:

After you finish setting up Intercom, itsSync Status may show asPending on either the Stitch Dashboard or in the Integration Details page.
For a new integration, aPending status indicates that Stitch is in the process of scheduling the initial replication job for the integration.This may take some time to complete.
Initial replication jobs with Anchor Scheduling
If using Anchor Scheduling, an initial replication job may not kick off immediately. This depends on the selected Replication Frequency and Anchor Time. Refer to theAnchor Scheduling documentation for more information.
The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.
Schemas and versioning
Schemas and naming conventions can change from version to version, so we recommend verifying your integration’s version before continuing.
The schema and info displayed below is forversion 2 of this integration.
This is the latest version of the Intercom integration.
Table and column names in your destination
Depending on your destination, table and column names may not appear as they are outlined below.
For example: Object names are lowercased in Redshift (CusTomERs >customers), while case is maintained in PostgreSQL destinations (CusTomERs >CusTomERs). Refer to theLoading Guide for your destination for more info.
Theadmins table lists info about the admins in your Intercom account. An admin is a user, or teammate, in your Intercom account.
Full Table | |
Primary Key | id |
| Useful links |
admin_ids ARRAY | |
avatar OBJECT
| |
away_mode_enabled BOOLEAN | |
away_mode_reassign BOOLEAN | |
STRING | |
has_inbox_seat BOOLEAN | |
id STRING | |
job_title STRING | |
name STRING | |
team_ids ARRAY | |
type STRING |
Thecompanies table contains info about companies that use your Intercom product.
If applicable, Stitch will replicate custom fields related tocompanies in Intercom.
Intercom’s API limits the number of simultaneous requests a single Intercom app, or connection, can make to the endpoint. Stitch uses this endpoint to replicate company data. Currently, only one request can occur at a time.
If multiple connections exist and they attempt to use this endpoint at the same time, only the connection who made the request first will succeed.
This means that if Stitch attempts to extract data when another connection is using the endpoint, Extraction will fail and anerror will surface in the Extraction Logs.
To prevent or minimize this issue, we recommend limiting the number of connections a single workspace has or scheduling extraction jobs in Stitch around your other connections’ usage.
Key-based Incremental | |
Primary Key | id |
Replication Key | updated_at |
| Useful links |
company_id STRING | |||
created_at DATE-TIME | |||
custom_attributes OBJECT | |||
id STRING | |||
industry STRING | |||
last_request_at DATE-TIME | |||
monthly_spend NUMBER | |||
name STRING | |||
plan OBJECT
| |||
remote_created_at DATE-TIME | |||
segments ARRAY
| |||
session_count INTEGER | |||
size INTEGER | |||
tags ARRAY
| |||
type STRING | |||
updated_at DATE-TIME | |||
user_count INTEGER | |||
website STRING |
Thecompany_attributes lists data attributes for a specified company in your Intercom account.
Full Table | |
Primary Key | _sdc_record_hash |
| Useful links |
_sdc_record_hash STRING |
admin_id STRING |
api_writable BOOLEAN |
archived BOOLEAN |
created_at DATE-TIME |
custom BOOLEAN |
data_type STRING |
description STRING |
full_name STRING |
id INTEGER |
label STRING |
model STRING |
name STRING |
options ARRAY |
type STRING |
ui_writable BOOLEAN |
updated_at DATE-TIME |
Thecompany_segments table contains information about company segments in your Intercom account.
Key-based Incremental | |
Primary Key | id |
Replication Key | updated_at |
| Useful links |
count INTEGER |
created_at DATE-TIME |
id STRING |
name STRING |
person_type STRING |
type STRING |
updated_at DATE-TIME |
Thecontact_attributes table contains information about contact attributes in your Intercom account.
Full Table | |
Primary Key | _sdc_record_hash |
| Useful links |
_sdc_record_hash STRING |
admin_id STRING |
api_writable BOOLEAN |
archived BOOLEAN |
created_at DATE-TIME |
custom BOOLEAN |
data_type STRING |
description STRING |
full_name STRING |
id INTEGER |
label STRING |
model STRING |
name STRING |
options ARRAY |
type STRING |
ui_writable BOOLEAN |
updated_at DATE-TIME |
Thecontacts table contains info about users and leads in your Intercom account.
If applicable, Stitch will replicate custom fields related tocontacts in Intercom.
Key-based Incremental | |
Primary Key | id |
Replication Key | updated_at |
| Useful links |
android_app_name STRING | ||||||||
android_app_version STRING | ||||||||
android_device STRING | ||||||||
android_last_seen_at DATE-TIME | ||||||||
android_os_version STRING | ||||||||
android_sdk_version STRING | ||||||||
avatar STRING | ||||||||
browser STRING | ||||||||
browser_language STRING | ||||||||
browser_version STRING | ||||||||
companies ARRAY
| ||||||||
created_at DATE-TIME | ||||||||
custom_attributes OBJECT | ||||||||
STRING | ||||||||
external_id STRING | ||||||||
has_hard_bounced BOOLEAN | ||||||||
id STRING | ||||||||
ios_app_name STRING | ||||||||
ios_app_version STRING | ||||||||
ios_device STRING | ||||||||
ios_last_seen_at DATE-TIME | ||||||||
ios_os_version STRING | ||||||||
ios_sdk_version STRING | ||||||||
language_override STRING | ||||||||
last_contacted_at DATE-TIME | ||||||||
last_email_clicked_at DATE-TIME | ||||||||
last_email_opened_at DATE-TIME | ||||||||
last_replied_at DATE-TIME | ||||||||
last_seen_at DATE-TIME | ||||||||
location OBJECT
| ||||||||
marked_email_as_spam BOOLEAN | ||||||||
name STRING | ||||||||
notes OBJECT
| ||||||||
os STRING | ||||||||
owner_id INTEGER | ||||||||
phone STRING | ||||||||
role STRING | ||||||||
signed_up_at DATE-TIME | ||||||||
social_profiles OBJECT
| ||||||||
tags ARRAY
| ||||||||
type STRING | ||||||||
unsubscribed_from_emails BOOLEAN | ||||||||
updated_at DATE-TIME | ||||||||
workspace_id STRING |
Theconversation_parts table lists the individual parts of conversations in your Intercom account.
Note: When this table is replicated, all conversation parts associated with an updated conversation will be replicated.
Key-based Incremental | |
Primary Key | id |
Replication Key | updated_at |
| Useful links |
assigned_to STRING | |||||||
attachments ARRAY
| |||||||
author OBJECT
| |||||||
body STRING | |||||||
conversation_created_at DATE-TIME | |||||||
conversation_id STRING | |||||||
conversation_total_parts INTEGER | |||||||
conversation_updated_at DATE-TIME | |||||||
created_at DATE-TIME | |||||||
external_id STRING | |||||||
id STRING | |||||||
notified_at DATE-TIME | |||||||
part_type STRING | |||||||
redacted BOOLEAN | |||||||
type STRING | |||||||
updated_at DATE-TIME |
Theconversations table contains info about user conversations in your Intercom account.
Key-based Incremental | |
Primary Key | id |
Replication Key | updated_at |
| Useful links |
admin_assignee_id INTEGER | ||||||||||||||||||||||||
contacts ARRAY
| ||||||||||||||||||||||||
conversation_message OBJECT
| ||||||||||||||||||||||||
conversation_rating OBJECT
| ||||||||||||||||||||||||
created_at DATE-TIME | ||||||||||||||||||||||||
custom_attributes OBJECT | ||||||||||||||||||||||||
customer_first_reply OBJECT
| ||||||||||||||||||||||||
customers ARRAY
| ||||||||||||||||||||||||
first_contact_reply OBJECT
| ||||||||||||||||||||||||
id STRING | ||||||||||||||||||||||||
open BOOLEAN | ||||||||||||||||||||||||
priority STRING | ||||||||||||||||||||||||
read BOOLEAN | ||||||||||||||||||||||||
sent_at DATE-TIME | ||||||||||||||||||||||||
sla_applied OBJECT
| ||||||||||||||||||||||||
snoozed_until DATE-TIME | ||||||||||||||||||||||||
source OBJECT
| ||||||||||||||||||||||||
state STRING | ||||||||||||||||||||||||
statistics OBJECT
| ||||||||||||||||||||||||
tags ARRAY
| ||||||||||||||||||||||||
team_assignee_id INTEGER | ||||||||||||||||||||||||
teammates OBJECT
| ||||||||||||||||||||||||
title STRING | ||||||||||||||||||||||||
type STRING | ||||||||||||||||||||||||
updated_at DATE-TIME | ||||||||||||||||||||||||
user OBJECT
| ||||||||||||||||||||||||
waiting_since DATE-TIME |
Thesegments table contains information about segments within your Intercom account.
Key-based Incremental | |
Primary Key | id |
Replication Key | updated_at |
| Useful links |
count INTEGER |
created_at DATE-TIME |
id STRING |
name STRING |
person_type STRING |
type STRING |
updated_at DATE-TIME |
Thetags table contains information about tags within your Intercom account.
Full Table | |
Primary Key | id |
| Useful links |
id STRING |
name STRING |
type STRING |
Theteams table contains information about teams in your Intercom account.
Full Table | |
Primary Key | id |
| Useful links |
admin_ids ARRAY |
id STRING |
name STRING |
type STRING |
| Related | Troubleshooting |
Did this article help? If you have questions or feedback, feel free tosubmit a pull request with your suggestions,open an issue on GitHub, orreach out to us.