Release Status Released Supported By Stitch
Availability Paid Status Page Intercom Status Page
Default Historical Sync 1 year Default Replication Frequency 30 minutes
Whitelisting Unsupported Destination Incompatibilities None

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.

Stitch offers two methods of creating a replication schedule:

  • Replication Frequency: This method requires selecting the interval you want replication to run for the integration. Start times of replication jobs are based on the start time and duration of the previous job. Refer to the Replication Frequency documentation for more information and examples.
  • Anchor scheduling: Based on the Replication Frequency, or interval, you select, this method “anchors” the start times of this integration’s replication jobs to a time you select to create a predictable schedule. Anchor scheduling is a combination of the Anchor Time and Replication Frequency settings, which must both be defined to use this method. Additionally, note that:

    • A Replication Frequency of at least one hour is required to use anchor scheduling.
    • An initial replication job may not begin immediately after saving the integration, depending on the selected Replication Frequency and Anchor Time. Refer to the Anchor Scheduling documentation for more information.

To help prevent overages, 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 high row counts. Selecting a lower frequency can help prevent overages.


Intercom table schemas

admins

Replication Method: Full Table API Endpoint: listAdmins
Primary Key : id

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.


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.

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.


company_segments

Replication Method: Full Table API Endpoint: listSegments
Primary Key : id

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__image_url
STRING

The URL of the avatar image associated with the lead.

avatar__type
STRING

The value of this field will be avatar.

unsubscribed_from_emails
BOOLEAN

Indicates if the lead is unsubscribed from emails.

location_data__city_name
STRING

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

location_data__continent_code
STRING

The continent code associated with the lead’s location.

location_data__country_code
STRING

The country code associated with the lead’s location.

location_data__country_name
STRING

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

location_data__latitude
INTEGER

The latitude associated with the lead’s location.

location_data__longitude
INTEGER

The longitude associated with the lead’s location.

location_data__postal_code
STRING

The postal code associated with the lead’s location.

location_data__region_name
STRING

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

location_data__timezone
STRING

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

location_data__type
STRING

The value of this field will be location_data.

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

Details about the companies the lead is associated with.

If your destination doesn't natively support nested data, this data may be denested into a subtable named contacts__companies.

_sdc_source_key_id
STRING

The lead’s Intercom-defined ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

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.

social_profiles

Details about the social profiles the lead is associated with.

If your destination doesn't natively support nested data, this data may be denested into a subtable named contacts__social_profiles.

_sdc_source_key_id
STRING

The lead’s Intercom-defined ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

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.

segments

Details about the segments the lead is associated with.

If your destination doesn't natively support nested data, this data may be denested into a subtable named contacts__segments.

_sdc_source_key_id
STRING

The lead’s Intercom-defined ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

id
STRING

The segment ID.

Reference:

type
STRING

The value of this field will be segment.

tags

Details about the tags the lead is associated with.

If your destination doesn't natively support nested data, this data may be denested into a subtable named contacts__tags.

_sdc_source_key_id
STRING

The lead’s Intercom-defined ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

id
STRING

The tag ID.

Reference:

name
STRING

The name of the tag.

type
STRING

The value of this field will be tag.


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 warehouse 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__subject
STRING

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

conversation_message__body
STRING

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

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

conversation_message__author__type
STRING

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

  • user
  • lead
  • admin
conversation_message__attachments

Details about the message that started the conversation.

If your destination doesn't natively support nested data, this data may be denested into a subtable named conversations__conversation_message__attachments.

conversation_message__type
STRING

The value of this field will be conversation_message.

conversation_parts

Details about the individual elements that make up the conversation.

If your destination doesn't natively support nested data, this data may be denested into a subtable named conversations__conversation_parts.

_sdc_source_key_id
STRING

The conversation ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

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__id
STRING

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

author__type
STRING

The type of user that created the conversation part.

attachments

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

If your destination doesn't natively support nested data, this data may be denested into a subtable named conversations__conversation_parts__attachments.

total_count
INTEGER

The total number of conversation parts in the conversation.

user__id
STRING

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

Reference:

user__type
STRING

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

  • lead
  • user
assignee__id
STRING

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

Reference:

assignee__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.
customers

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

If your destination doesn't natively support nested data, this data may be denested into a subtable named conversations__customers.

_sdc_source_key_id
STRING

The conversation ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

id
STRING

The user’s ID.

Reference:

type
STRING

The value of this field will be user.

open
BOOLEAN

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

read
BOOLEAN

Indicates whether a conversation has been read.

tags

The tags associated with the conversation.

If your destination doesn't natively support nested data, this data may be denested into a subtable named conversations__tags.

_sdc_source_key_id
STRING

The conversation ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

id
STRING

The tag ID.

Reference:

name
STRING

The name of the tag.

type
STRING

The value of this field will be tag.

type
STRING

The value of this field will be conversation.


segments

Replication Method: Full Table API Endpoint: listSegments
Primary Key : id

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 API Endpoint: listTags
Primary Key : id

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: scrollOverAllUsers

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__image_url
STRING

The URL of the avatar image associated with the user.

avatar__type
STRING

The value of this field will be avatar.

unsubscribed_from_emails
BOOLEAN

Indicates if the user is unsubscribed from emails.

location_data__city_name
STRING

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

location_data__continent_code
STRING

The continent code associated with the user’s location.

location_data__country_code
STRING

The country code associated with the user’s location.

location_data__country_name
STRING

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

location_data__latitude
INTEGER

The latitude associated with the user’s location.

location_data__longitude
INTEGER

The longitude associated with the user’s location.

location_data__postal_code
STRING

The postal code associated with the user’s location.

location_data__region_name
STRING

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

location_data__timezone
STRING

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

location_data__type
STRING

The value of this field will be location_data.

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

Details about the companies the user is associated with.

If your destination doesn't natively support nested data, this data may be denested into a subtable named users__companies.

_sdc_source_key_id
STRING

The user ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

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.

social_profiles

Details about the social profiles the user is associated with.

If your destination doesn't natively support nested data, this data may be denested into a subtable named users__social_profiles.

_sdc_source_key_id
STRING

The user ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

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.

segments

Details about the segments the user is associated with.

If your destination doesn't natively support nested data, this data may be denested into a subtable named users__segments.

_sdc_source_key_id
STRING

The user ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

id
STRING

The segment ID.

Reference:

type
STRING

The value of this field will be segment.

tags

Details about the tags the user is associated with.

If your destination doesn't natively support nested data, this data may be denested into a subtable named users__tags.

_sdc_source_key_id
STRING

The user ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

id
STRING

The tag ID.

Reference:

name
STRING

The name of the tag.

type
STRING

The value of this field will be tag.

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.