This integration is powered by Singer's Intercom tap and certified by Stitch. Check out and contribute to the repo on GitHub.
For support, contact Stitch support.
Intercom integration summary
Stitch’s Intercom integration replicates data using the Intercom API (V2.5). Refer to the Schema section for a list of objects available for replication.
Intercom feature snapshot
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 |
Connecting Intercom
Step 1: Add Intercom as a Stitch data source
- Sign into your Stitch account.
-
On the Stitch Dashboard page, click the Add Integration button.
-
Click the Intercom 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 called
stitch_intercom
in the destination. Note: Schema names cannot be changed after you save the integration.
Step 2: Define the historical replication start date
The Sync Historical Data setting defines the starting date for your Intercom integration. This means that:
- For tables using Key-based Incremental Replication, data equal to or newer than this date will be replicated to your destination.
- For tables using Full Table Replication, all data - including records that are older, equal to, or newer than this date - will be replicated to your destination.
Change this setting if you want to replicate data beyond Intercom’s default setting of 1 year. For a detailed look at historical replication jobs, check out the Syncing Historical SaaS Data guide.
Step 3: Create a replication schedule
In the Replication Frequency section, you’ll create the integration’s replication 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 the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.
Step 4: Authorize Stitch to access Intercom
Lastly, you’ll be directed to Intercom’s website to complete the setup.
- If you aren’t already logged into Intercom, you’ll be prompted to do so.
- Next, a screen requesting access to Intercom will display. Note: Stitch will only ever read your data.
- Click Connect.
- After the authorization process successfully completes, you’ll be redirected back to Stitch.
- Click All Done.
Step 5: Set objects to replicate
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.
- In the integration’s Tables to Replicate tab, locate a table you want to replicate.
-
To track a table, click the checkbox next to the table’s name. A blue checkmark means the table is set to replicate.
-
To track a column, click the checkbox next to the column’s name. A blue checkmark means the column is set to replicate.
- Repeat this process for all the tables and columns you want to replicate.
- When finished, click the Finalize Your Selections button at the bottom of the screen to save your selections.
- Click into the integration from the Stitch Dashboard page.
-
Click the Tables to Replicate tab.
- In the list of tables, click the box next to the Table Names column.
-
In the menu that displays, click Track all Tables and Fields:
- Click the Finalize Your Selections button at the bottom of the page to save your data selections.
Initial and historical replication jobs
After you finish setting up Intercom, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.
For a new integration, a Pending 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 the Anchor Scheduling documentation for more information.
Free historical data loads
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.
Intercom table reference
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 for version 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 the Loading Guide for your destination for more info.
admins
Replication Method : |
Full Table |
Primary Key |
id |
API endpoint : |
The admins
table lists info about the admins in your Intercom account. An admin is a user, or teammate, in your Intercom account.
id
The admin ID. |
avatar
The URL to the admin’s avatar. |
away_mode_enabled
Indicates if the admin is currently set in away mode. |
away_mode_reassign
Indicates if the admin is set to automatically reassign new conversations to the app’s default inbox. |
email
The email address of the admin. |
has_inbox_seat
Indicates if the admin has a paid inbox seat to restrict/allow features. |
job_title
The job title of the admin. |
name
The name of the admin. |
team_ids
The IDs of the teams the admin is a member of. |
type
This will be |
companies
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
API endpoint : |
The companies
table contains info about companies that use your Intercom product.
Custom attributes
If applicable, Stitch will replicate custom fields related to companies
in Intercom.
Limitations
Intercom’s API limits the number of simultaneous requests a single Intercom app, or connection, can make to the Scroll over all companies 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 an error 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.
id
The Intercom-generated company ID. |
|||
updated_at
The time the company was last updated. |
|||
company_id
The ID for the company, as defined by you. |
|||
created_at
The time the company was added to Intercom. |
|||
custom_attributes
If applicable, the custom attributes you’ve applied to the company. |
|||
industry
The industry the company operates in. |
|||
last_request_at
The time the company last recorded making a request. |
|||
monthly_spend
The amount of revenue the company generates for your business. |
|||
name
The name of the company. |
|||
plan
The name of the plan associated with the company.
|
|||
remote_created_at
The time the company was created, as a Unix timestamp. |
|||
segments
A list of segments within a company. |
|||
session_count
The number of recorded sessions for the company. |
|||
size
The number of employees in the company. |
|||
tags
A list of tags within a company.
companies (table), tags (attribute)
|
|||
type
This will be |
|||
user_count
The number of users in the company. |
|||
website
The URL for the company’s website. |
company_attributes
Replication Method : |
Full Table |
Primary Key |
_sdc_record_hash |
API endpoint : |
The company_attributes
lists data attributes for a specified company in your Intercom account.
_sdc_record_hash
Stitch-generated SHA 256 hash that includes the values of the |
name
The name of the attribute. |
admin_id
The ID of the admin that created the attribute. |
api_writable
Indicates if the attribute can be updated via Intercom’s API. |
archived
Indicates if the attribute is archived. |
created_at
The time the attribute was created. |
custom
|
data_type
The type of data stored for the attribute. Possible values are:
|
description
The description for the attribute. |
full_name
|
id
|
label
The name of the attribute. |
options
The pre-defined options for the attribute. |
type
This will be |
ui_writable
Indicates if the attribute can be updated via Intercom’s UI. |
updated_at
The last time the attribute was updated. |
company_segments
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
API endpoint : |
The company_segments
table contains information about company segments in your Intercom account.
id
The company segment ID. |
updated_at
The time the company segment was last updated. |
count
|
created_at
The time the company segment was created. |
name
The name of the segment. |
type
The value of this field will be |
person_type
Type of the record: |
contacts
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
API endpoint : |
The contacts
table contains info about users and leads in your Intercom account.
Custom attributes
If applicable, Stitch will replicate custom fields related to contacts
in Intercom.
id
The contact ID. |
||||||||
updated_at
The time the contact was last updated. |
||||||||
android_app_name
The name of the Android app the contact is using, if applicable. |
||||||||
android_app_version
The version of the Android app the contact is using, if applicable. |
||||||||
android_device
The Android device the contact is using, if applicable. |
||||||||
android_last_seen_at
The last time the contact used the Android app, if applicable. |
||||||||
android_os_version
The version of the Android OS the contact is using, if applicable. |
||||||||
android_sdk_version
The version of the Android SDK the contact is using, if applicable. |
||||||||
avatar
|
||||||||
browser
The name of the browser the contact is using. |
||||||||
browser_language
The language set by the browser the contact is using. |
||||||||
browser_version
The version of the browser the contact is using.” |
||||||||
companies
Details about the company the contact is associated with.
|
||||||||
created_at
The time the contact was created. |
||||||||
custom_attributes
The custom attributes set for the contact. |
||||||||
email
The email associated with the lead. |
||||||||
external_id
The unique ID for the contact. |
||||||||
has_hard_bounced
Indicates whether the contact has had an email sent to them hard bounce. |
||||||||
ios_app_name
The name of the iOS app the contact is using, if applicable. |
||||||||
ios_app_version
The version of the iOS app the contact is using, if applicable. |
||||||||
ios_device
The iOS device the contact is using, if applicable. |
||||||||
ios_last_seen_at
The last time the contact used the iOS app, if applicable. |
||||||||
ios_os_version
The version of the iOS OS the contact is using, if applicable. |
||||||||
ios_sdk_version
The version of the iOS SDK the contact is using, if applicable. |
||||||||
language_override
The preferred language setting for the contact. |
||||||||
last_contacted_at
The time when the contact was last messaged. |
||||||||
last_email_clicked_at
The time when the contact last clicked a link in an email sent to them, as a Unix timestamp. |
||||||||
last_email_opened_at
The time when the contact last opened an email sent to them, as a Unix timestamp. |
||||||||
last_replied_at
The time when the contact last sent a message, as a Unix timestamp. |
||||||||
last_seen_at
The time the contact was last seen, as a Unix timestamp. |
||||||||
location
Details about the contact’s location.
|
||||||||
marked_email_as_spam
Indicates if the contact has marked an email sent to them as spam. |
||||||||
name
The name of the lead. |
||||||||
notes
The notes that have been added to the contact.
|
||||||||
os
The operating system the contact is using. |
||||||||
owner_id
The ID of the admin that has been assigned account ownership of the contact. |
||||||||
phone
The phone number associated with the lead. |
||||||||
role
The role of the contact. This will be either |
||||||||
signed_up_at
The time when a contact signed up, as a Unix timestamp. |
||||||||
social_profiles
Details about the social profiles the lead is associated with.
contacts (table), social_profiles (attribute)
|
||||||||
tags
Details about the tags applied to the contact.
contacts (table), tags (attribute)
|
||||||||
type
This will be |
||||||||
unsubscribed_from_emails
Indicates if the contact has unsubscribed from emails. |
||||||||
workspace_id
The ID of the workspace the contact is associated with. |
contact_attributes
Replication Method : |
Full Table |
Primary Key |
_sdc_record_hash |
API endpoint : |
The contact_attributes
table contains information about contact attributes in your Intercom account.
_sdc_record_hash
Stitch-generated SHA 256 hash that includes the values of the |
name
The name of the attribute. |
admin_id
The ID of the admin that created the attribute. |
api_writable
Indicates if the attribute can be updated via Intercom’s API. |
archived
Indicates if the attribute is archived. |
created_at
The time the attribute was created. |
custom
|
data_type
The type of data stored for the attribute. Possible values are:
|
description
The description for the attribute. |
full_name
|
id
|
label
The name of the attribute. |
options
The pre-defined options for the attribute. |
type
This will be |
ui_writable
Indicates if the attribute can be updated via Intercom’s UI. |
updated_at
The last time the attribute was updated. |
conversations
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
API endpoint : |
The conversations
table contains info about user conversations in your Intercom account.
id
The conversation ID. |
||||||||||||||||||||||||
updated_at
The time that the conversation was last updated. |
||||||||||||||||||||||||
assignee
Details about the admin or team assigned to the conversation. |
||||||||||||||||||||||||
contacts
Information about the contacts associated with the conversation.
|
||||||||||||||||||||||||
conversation_message
A list of message details.
|
||||||||||||||||||||||||
conversation_rating
Details about the rating for the conversation.
|
||||||||||||||||||||||||
created_at
The time the conversation was created. |
||||||||||||||||||||||||
customers
Details about the customers involved in the conversation.
|
||||||||||||||||||||||||
first_contact_reply
Details about the contact’s first reply to the conversation.
|
||||||||||||||||||||||||
open
Indicates whether a conversation is open/snoozed ( |
||||||||||||||||||||||||
priority
The conversation’s priority level. |
||||||||||||||||||||||||
read
Indicates whether a conversation has been read. |
||||||||||||||||||||||||
sent_at
|
||||||||||||||||||||||||
sla_applied
Information about the service-level agreement applied to the conversation.
|
||||||||||||||||||||||||
snoozed_until
If set, this is the time in the future when the conversation will be marked as open. |
||||||||||||||||||||||||
source
|
||||||||||||||||||||||||
state
The current state of the conversation. Possible values are:
|
||||||||||||||||||||||||
statistics
Details on conversation statistics.
|
||||||||||||||||||||||||
tags
Details about the tags applied to the conversation.
conversations (table), tags (attribute)
|
||||||||||||||||||||||||
teammates
Information about team members.
|
||||||||||||||||||||||||
type
This will be |
||||||||||||||||||||||||
user
A list of users associated with the conversation. |
||||||||||||||||||||||||
waiting_since
The last time a contact responded to an admin. In other words, the time a customer started waiting for a response. This will be |
||||||||||||||||||||||||
title
|
||||||||||||||||||||||||
admin_assignee_id
|
||||||||||||||||||||||||
team_assignee_id
|
||||||||||||||||||||||||
custom_attributes
|
conversation_parts
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
API endpoint : |
The conversation_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.
id
The conversation part ID. |
|||||||
assigned_to
The ID of the admin that the conversation part is assigned to. |
|||||||
attachments
Details about the attachments, if any, that are a part of the conversation part.
|
|||||||
author
Details about the admin or user that created the conversation part.
conversation_parts (table), author (attribute)
|
|||||||
body
The HTML-encoded body of the conversation part. |
|||||||
conversation_created_at
The time the parent conversation associated with the part was created. |
|||||||
conversation_id
The ID of the conversation associated with the part. |
|||||||
conversation_total_parts
The total number of conversation parts associated with the parent conversation. |
|||||||
conversation_updated_at
The time the parent conversation associated with the part was last updated. |
|||||||
created_at
The time the conversation part was created. |
|||||||
external_id
|
|||||||
notified_at
The time the user was notified with the conversation part. |
|||||||
part_type
The type of the conversation part. |
|||||||
redacted
Indicates whether or not a conversation part has been redacted. |
|||||||
type
This will be |
|||||||
updated_at
The time the conversation part was updated. |
segments
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
API endpoint : |
The segments
table contains information about segments within your Intercom account.
id
The segment ID. |
updated_at
The time the segment was last updated. |
count
The number of items in the segment. |
created_at
The time the segment was created. |
name
The name of the segment. |
person_type
The type of the record: |
type
This will be |
Replication Method : |
Full Table |
Primary Key |
id |
API endpoint : |
The tags
table contains information about tags within your Intercom account.
Replication Method : |
Full Table |
Primary Key |
id |
API endpoint : |
The teams
table contains information about teams in your Intercom account.
id
The team ID. |
admin_ids
The admins that belong to the team. |
name
The name of the team. |
type
This will be |
Related | Troubleshooting |
Questions? Feedback?
Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.