Intercom integration summary

Stitch’s Intercom integration replicates data using the Intercom REST API (V1.0). Refer to the Schema section for a list of objects available for replication.

Intercom feature snapshot

A high-level look at Stitch's Intercom integration, including release status, useful links, and the features supported in Stitch.

STITCH
Release Status

Released

Supported By

Stitch

Stitch Plan

Paid

DATA SELECTION
Table Selection

Unsupported

Column Selection

Unsupported

REPLICATION SETTINGS
Anchor Scheduling

Supported

Advanced Scheduling

Unsupported

Table-level Reset

Unsupported

Configurable Replication Methods

Unsupported

TRANSPARENCY
Extraction Logs

Unsupported

Loading Reports

Supported

Connecting Intercom

Intercom setup requirements

To set up Intercom in Stitch, you need:

  • A paid Stitch plan. While those currently in the Free Trial will also be able to set up Intercom, replication will be paused until a paid plan is selected after the trial ends.
  • Your Intercom App ID. You can find your Intercom App ID by following these instructions.

Step 1: Add Intercom as a Stitch data source

  1. Sign into your Stitch account.
  2. On the Stitch Dashboard page, click the Add Integration button.

  3. Click the Intercom icon.

  4. 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.

  5. In the Intercom App ID field, enter your Intercom App ID.

Step 2: Define the historical sync

The Sync Historical Data setting will define the starting date for your Intercom integration. This means that data equal 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 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:

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.

List of permissions requested by Stitch to access Intercom

  1. If you aren’t already logged into Intercom, you’ll be prompted to do so.
  2. Next, a screen requesting access to Intercom will display. Note: Stitch will only ever read your data.
  3. Click Connect.
  4. After the authorization process successfully completes, you’ll be redirected back to Stitch.
  5. Click All Done.

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.

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 Replication

Intercom Replication and Attribution Windows

Every time Stitch runs a replication job for Intercom, the last 30 days’ worth of data will be replicated for these tables:

  • companies

  • company_segments

  • users

Stitch replicates data in this way to account for updates made to existing records within the default attribution window of 30 days, thus ensuring you won’t make decisions based on stale (or false) data. As a result, you may see a higher number of replicated rows than what’s being generated in Intercom.

Setting the Replication Frequency to a higher frequency - like 30 minutes - can result in re-replicating recent data and contribute to greater row usage. Selecting a lower frequency can help keep your row count low.


Intercom table schemas

admins

Replication Method :

Full Table

Primary Key :

id

API endpoint :

listAdmins

The admins table contains info about the admins and teams in your Intercom account.

id
STRING

The admin or team ID.

Reference:

type
STRING

The admin type. This value will be either admin or team.

name
STRING

The name of the admin or team.

email
STRING

The email address of the admin. This will be NULL for teams.

away_mode_enabled
BOOLEAN

Indicates if the admin is currently set in away mode.

away_mode_reassign
BOOLEAN

Indicates if the admin is set to automatically reassign new conversations to the app’s default inbox.

team_ids
ARRAY

A list of the IDs of the teams the admin is a part of.

value
INTEGER

The ID of the team the admin is a part of.

admins (table), team_ids (attribute)

companies

Replication Method :

Key-based Incremental

Replication Key :

updated_at

Primary Key :

id

API endpoint :

scrollOverAllCompanies

The companies table contains info about the companies (or commercial organizations) that use your Intercom product.

Custom Attributes

If applicable, Stitch will replicate custom fields related to companies in Intercom.

id
STRING

The Intercom-defined company ID.

Reference:

updated_at
DATE-TIME

The time the company was last updated.

company_id
STRING

The ID that you assigned to the company.

created_at
DATE-TIME

The time the company was added to Intercom.

remote_created_at
DATE-TIME

The time the company was created by you.

name
STRING

The name of the company.

custom_attributes
OBJECT

If applicable, the custom attributes you’ve applied to the company.

session_count
INTEGER

The number of recorded sessions for the company.

monthly_spend
NUMBER

The amount of revenue the company generates for your business.

user_count
NUMBER

The number of users in the company.

plan
STRING

The name of the plan associated with the company.

type
STRING

The value of this field will be company.

segments
ARRAY

A list of the IDs of the segments associated with the company.

segments
ARRAY

A list of the IDs of the segments associated with the company.

id
STRING

The segment ID.

Reference:

type
STRING

The value of this field will be segment.

companies (table), segments (attribute)
companies (table), segments (attribute)

tags
ARRAY

A list of the IDs of the tags associated with the company.

tags
ARRAY

A list of the IDs of the tags associated with the company.

id
STRING

The tag ID.

Reference:

type
STRING

The value of this field will be tag.

companies (table), tags (attribute)
companies (table), tags (attribute)

company_segments

Replication Method :

Full Table

Primary Key :

id

API endpoint :

listSegments

The company_segments table contains info about company segments. A segment is a group of users that are defined by a set of rules.

id
STRING

The segment ID.

Reference:

updated_at
DATE-TIME

The time the segment was last updated.

created_at
DATE-TIME

The time the segment was created.

name
STRING

The name of the segment.

person_type
STRING

The type of record. This will either be user or lead.

type
STRING

The value of this field will be segment.


contacts

Replication Method :

Key-based Incremental

Replication Key :

updated_at

Primary Key :

id

API endpoint :

listLeads

The contacts table contains info about the logged-out users, or leads, of your Intercom app.

Note: contacts is equivalent to the leads object in Intercom’s API. See Intercom’s documentation for more info.

Custom Attributes

If applicable, Stitch will replicate custom fields related to contacts (leads) in Intercom.

id
STRING

The lead’s Intercom-defined ID.

Reference:

updated_at
DATE-TIME

The time the lead was last updated.

created_at
DATE-TIME

The time the lead was added to Intercom.

user_id
STRING

An Intercom-generated ID for the lead.

email
STRING

The email associated with the lead.

phone
STRING

The phone number associated with the lead.

name
STRING

The name of the lead.

last_request_at
DATE-TIME

The time the lead last made a request.

avatar
OBJECT

Details about the avatar associated with the lead.

image_url
STRING

The URL of the avatar image associated with the lead.

type
STRING

The value of this field will be avatar.

contacts (table), avatar (attribute)

unsubscribed_from_emails
BOOLEAN

Indicates if the lead is unsubscribed from emails.

location_data
OBJECT

Details about the lead’s location.

city_name
STRING

The name of the city associated with the lead’s location.

continent_code
STRING

The continent code associated with the lead’s location.

country_code
STRING

The country code associated with the lead’s location.

country_name
STRING

The name of the country associated with the lead’s location.

latitude
INTEGER

The latitude associated with the lead’s location.

longitude
INTEGER

The longitude associated with the lead’s location.

postal_code
STRING

The postal code associated with the lead’s location.

region_name
STRING

The name of the region associated with the lead’s location.

timezone
STRING

The ISO 8601 timezone associated with the lead’s location.

type
STRING

The value of this field will be location_data.

contacts (table), location_data (attribute)

user_agent_data
STRING

Data about the last user agent the lead was seen using.

last_seen_ip
STRING

The IP address the lead last visited your application from.

companies
ARRAY

Details about the companies the lead is associated with.

companies
ARRAY

Details about the companies the lead is associated with.

id
STRING

The Intercom-defined company ID.

Reference:

company_id
STRING

The ID that you assigned to the company.

name
STRING

The name of the company.

type
STRING

The value of this field will be company.

contacts (table), companies (attribute)
contacts (table), companies (attribute)

social_profiles
ARRAY

Details about the social profiles the lead is associated with.

social_profiles
ARRAY

Details about the social profiles the lead is associated with.

id
STRING

The lead’s user ID on the social platform.

name
STRING

The name of the social service. Ex: facebook

url
STRING

The lead’s user homepage on the social platform.

username
STRING

The lead’s username on the social platform.

type
STRING

The value of this field will be social_profile.

contacts (table), social_profiles (attribute)
contacts (table), social_profiles (attribute)

segments
ARRAY

Details about the segments the lead is associated with.

segments
ARRAY

Details about the segments the lead is associated with.

id
STRING

The segment ID.

Reference:

type
STRING

The value of this field will be segment.

contacts (table), segments (attribute)
contacts (table), segments (attribute)

tags
ARRAY

Details about the tags the lead is associated with.

tags
ARRAY

Details about the tags the lead is associated with.

id
STRING

The tag ID.

Reference:

name
STRING

The name of the tag.

type
STRING

The value of this field will be tag.

contacts (table), tags (attribute)
contacts (table), tags (attribute)

conversations

Replication Method :

Key-based Incremental

Replication Key :

updated_at

Primary Key :

id

API endpoint :

listConversations

The conversations table contains info about user conversations, or conversations initiated by your end-users.

Conversation Parts

To reconstruct an entire conversation, use the conversation_parts associated with the conversation. These are the individual elements - actions, messages, and so on - that make up a conversation.

If your destination doesn’t natively support nested data structures, a subtable named conversations__conversation_parts will be created. More info on this table can be found below.

id
STRING

The conversation ID.

updated_at
DATE-TIME

The time the conversation was last updated.

created_at
DATE-TIME

The time the conversation was created.

waiting_since
DATE-TIME

An epoch timestamp that indicates the last time a customer responded to an admin, or the time a customer started waiting for a response.

Note: According to Intercom’s documentation, this field may sometimes contain a value that is 2000 years in the future. This can occur when the last person to respond was an admin or when the conversation was closed aver a customer response.

snoozed_until
DATE-TIME

If set, this is the time in the future that the conversation will be marked as open.

state
STRING

The current state of the conversation. Possible values are:

  • open
  • closed
  • snoozed

conversation_message
OBJECT

Details about the message that started the conversation.

subject
STRING

The conversation message subject, or the subject of the message that started the conversation.

body
STRING

The conversation message body, which may contain HTML. This is the body of the message that started the conversation.

author
OBJECT

Details about the user that created the conversation message.

id
STRING

The ID of the user who created the conversation message.

Depending on the user’s type, this will be a foreign key to the users or admins table.

Reference:

type
STRING

The type of user that created the conversation message. Possible values are:

  • user
  • lead
  • admin
conversations (table), author (attribute)

attachments
ARRAY

Details about the attachments, if any, that are a part of the conversation message.

url
STRING

The attachment URL.

name
STRING

The name of the attachment. Ex: image001.png, presentation.pdf

content_type
STRING

The content type of the attachment. Ex: image/png, application/pdf

height
INTEGER

For image attachments, the height of the image.

width
INTEGER

For image attachments, the width of the image.

filesize
INTEGER

The file size of the attachment.

type
STRING

The value of this field will be upload.

conversations (table), attachments (attribute)

type
STRING

The value of this field will be conversation_message.

conversations (table), conversation_message (attribute)

conversation_parts
ARRAY

Details about the individual elements that make up the conversation.

id
STRING

The conversation part ID.

part_type
STRING

The type of conversation part. Possible values are:

  • comment - A standard reply from a user or admin.
  • note - Created by and only viewable to an admin.
  • assignment - Assignment of the conversation to an admin or nobody. Viewable only to an admin.
  • open - Opens the conversation. Viewable only to an admin.
  • close - Closes the conversation. Viewable only to an admin.

body
STRING

The HTML-encoded body of the conversation part.

created_at
DATE-TIME

The time the conversation part was created.

updated_at
DATE-TIME

The time the conversation part was last updated.

assigned_to
STRING

For assignment types only: the ID of the admin that the conversation is assigned to.

Reference:

author
OBJECT

Details about the admin or user that created the conversation part.

id
STRING

The ID of the admin or user that created the conversation part.

Reference:

type
STRING

The type of user that created the conversation part.

conversations (table), author (attribute)

attachments
ARRAY

Details about the attachments, if any, that are a part of the conversation part.

url
STRING

The attachment URL.

name
STRING

The name of the attachment. Ex: image001.png, presentation.pdf

content_type
STRING

The content type of the attachment. Ex: image/png, application/pdf

height
INTEGER

For image attachments, the height of the image.

width
INTEGER

For image attachments, the width of the image.

filesize
INTEGER

The file size of the attachment.

type
STRING

The value of this field will be upload.

conversations (table), attachments (attribute)
conversations (table), conversation_parts (attribute)

total_count
INTEGER

The total number of conversation parts in the conversation.

user
OBJECT

Details about the user or lead involved in the conversation.

id
STRING

The ID of the user or lead involved in the conversation.

Reference:

type
STRING

The type of user involved in the conversation. Possible values include:

  • lead
  • user
conversations (table), user (attribute)

assignee
OBJECT

Details about the admin assigned to the conversation.

id
STRING

The ID of the admin that the conversation is assigned to.

Reference:

type
STRING

The type of admin the conversation is assigned to. Possible values are:

  • nobody_admin - Indicates the conversation is assigned to Nobody.
  • admin - Indicates the conversation is assigned to an admin.
conversations (table), assignee (attribute)

customers
ARRAY

Details about the customers (users or leads) involved in the conversation.

id
STRING

The user’s ID.

Reference:

type
STRING

The value of this field will be user.

conversations (table), customers (attribute)

open
BOOLEAN

Indicates whether a conversation is open (true) or closed (false).

read
BOOLEAN

Indicates whether a conversation has been read.

tags
ARRAY

The tags associated with the conversation.

tags
ARRAY

The tags associated with the conversation.

id
STRING

The tag ID.

Reference:

name
STRING

The name of the tag.

type
STRING

The value of this field will be tag.

conversations (table), tags (attribute)
conversations (table), tags (attribute)

type
STRING

The value of this field will be conversation.


segments

Replication Method :

Full Table

Primary Key :

id

API endpoint :

listSegments

The segments table contains info about the segments - or groups of users defined by a set of rules - in your Intercom account.

id
STRING

The segment ID.

Reference:

updated_at
DATE-TIME

The time the segment was last updated.

created_at
DATE-TIME

The time the segment was created.

name
STRING

The name of the segment.

person_type
STRING

The type of record. This will either be user or lead.

type
STRING

The value of this field will be segment.


tags

Replication Method :

Full Table

Primary Key :

id

API endpoint :

listTags

The tags table contains info about the tags in your Intercom account.

id
STRING

The tag ID.

Reference:

name
STRING

The name of the tag.

type
STRING

The value of this field will be tag.


users

Replication Method :

Key-based Incremental

Replication Key :

updated_at

Primary Key :

id

API endpoint :

List Users

The users table contains info about the users in your Intercom account.

Custom Attributes

If applicable, Stitch will replicate custom fields related to users in Intercom.

id
STRING

The user ID.

Reference:

updated_at
DATE-TIME

The time the user was last updated.

created_at
DATE-TIME

The time the user was added to Intercom.

signed_up_at
DATE-TIME

The time the user signed up.

email
STRING

The email address associated with the user.

name
STRING

The full name of the user.

phone
STRING

The phone number associated with the user.

last_request_at
DATE-TIME

The time the user last made a request.

session_count
INTEGER

The number of sessions recorded for the user.

avatar
OBJECT

Details about the avatar associated with the user.

image_url
STRING

The URL of the avatar image associated with the user.

type
STRING

The value of this field will be avatar.

users (table), avatar (attribute)

unsubscribed_from_emails
BOOLEAN

Indicates if the user is unsubscribed from emails.

location_data
OBJECT

Details about the user’s location.

city_name
STRING

The name of the city associated with the user’s location.

continent_code
STRING

The continent code associated with the user’s location.

country_code
STRING

The country code associated with the user’s location.

country_name
STRING

The name of the country associated with the user’s location.

latitude
INTEGER

The latitude associated with the user’s location.

longitude
INTEGER

The longitude associated with the user’s location.

postal_code
STRING

The postal code associated with the user’s location.

region_name
STRING

The name of the region associated with the user’s location.

timezone
STRING

The ISO 8601 timezone associated with the user’s location.

type
STRING

The value of this field will be location_data.

users (table), location_data (attribute)

user_agent_data
STRING

Data about the last user agent the user was seen using.

last_seen_ip
STRING

The IP address the user last visited your application from.

pseudonym
STRING

If the user was previously a lead, this field will contain the pseudonym used. Ex: Pink Giraffe

anonymous
BOOLEAN

Indicates if the user is a lead. This will always be false.

companies
ARRAY

Details about the companies the user is associated with.

companies
ARRAY

Details about the company the user is associated with.

id
STRING

The Intercom-defined company ID.

Reference:

company_id
STRING

The ID that you assigned to the company.

name
STRING

The name of the company.

type
STRING

The value of this field will be company.

users (table), companies (attribute)
users (table), companies (attribute)

social_profiles
ARRAY

Details about the social profiles the user is associated with.

social_profiles
ARRAY

Details about the social profiles the user is associated with.

id
STRING

The user’s user ID on the social platform.

name
STRING

The name of the social service. Ex: facebook

url
STRING

The user’s user homepage on the social platform.

username
STRING

The user’s username on the social platform.

type
STRING

The value of this field will be social_profile.

users (table), social_profiles (attribute)
users (table), social_profiles (attribute)

segments
ARRAY

Details about the segments the user is associated with.

segments
ARRAY

Details about the segments the user is associated with.

id
STRING

The segment ID.

Reference:

type
STRING

The value of this field will be segment.

users (table), segments (attribute)
users (table), segments (attribute)

tags
ARRAY

Details about the tags the user is associated with.

tags
ARRAY

Details about the tags the user is associated with.

id
STRING

The tag ID.

Reference:

name
STRING

The name of the tag.

type
STRING

The value of this field will be tag.

users (table), tags (attribute)
users (table), tags (attribute)

type
STRING

The value of this field will be user.



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.