Skip to contentSkip to navigationSkip to topbar
On this page
Looking for more inspiration?Visit the
(information)
You're in the right place! Segment documentation is now part of Twilio Docs. The content you are used to is still here—just in a new home with a refreshed look.

Intercom Source


Source Info
  • The Intercom Source is an Object Cloud source. This means that it sends information (traits) about a thing that exists and persists over time, such as a person or company, and which can be updated over time. Data from this source can only be exported directly to a warehouse, but it can then be used for further analysis. Learn more about cloud sources.

Intercom(link takes you to an external page) is a customer platform with a suite of products for live chat, marketing, feedback, and support. With Intercom you will be able to send targeted messages to the right people at the right time, manage conversations with leads and customers at scale and create, organize, and publish articles to help people get answers to their questions and get started with your app.

Take your company's email analysis to the next level by adding Intercom as a Source to Segment. Segment automatically collects objects like Users and Conversations and load them into your data warehouse.


Getting Started

getting-started page anchor
  1. From your workspace's /sources page, click add source.

  2. Choose Intercom and press connect.

  3. OAuth into Intercom

    Screenshot of the Connect to Intercom screen in the Intercom setup flow.
  4. Segment verifies the required permissions

    Screenshot of the Permissions Verified screen in the Intercom setup flow.
  5. Configure the name for the Intercom schema in your warehouse

    Screenshot of the SQL Schema Name screen in the Intercom setup flow.
  6. Add a warehouse or connect Intercom to an already existing warehouse in your workspace

    Screenshot of the Add Warehouse screen in the Intercom setup flow.

Segment begins to sync your Intercom data into Segment, and writes it to your warehouse at your next Warehouse run.


Sync

sync page anchor

The Intercom source has a sync component, which means Segment make requests to their API(link takes you to an external page) on your behalf on a 3 hour interval to pull all historical data into Segment. In the initial sync, Segment grabs all the Intercom objects (and their corresponding properties) according to the collections table below. The objects will be written into a designated schema corresponding to the source instance's schema name you designated upon creation. For example, if you went with intercom_prod, the users collection will be accessible at intercom_prod.users in SQL.

The sync component uses an upsert API, so the data in your warehouse loaded using sync will reflect the latest state of the corresponding resource in Intercom. For example, if the users.last_seen_ip will be the latest value upon each sync.

The source syncs and warehouse syncs are independent processes. Source runs pull your data into the Segment Hub, and warehouse runs flush that data to your warehouse. Sources will sync with Segment every 3 hours. Depending on your Warehouses plan, Segment pushes the Source data to your warehouse on the interval associated with your billing plan.


Collections are the groupings of resources Segment pulls from your source. In your warehouse, each collection gets its own table.

CollectionTypeDescription
usersObjectThe Users resource is the primary way of interacting with Intercom. You can create, update and delete your users, and add custom attributes describing them. Users can be viewed individually or as a list, and can queried using tags or segments. For more info, check out the Intercom docs(link takes you to an external page)
companiesObjectCompanies allow you to represent commercial organizations using your product. For more info, check out the Intercom docs(link takes you to an external page)
contactsObjectLeads (previously known as Contacts) are useful for representing logged-out users of your application For more info, check out the Intercom docs(link takes you to an external page)
segmentsObjectA segment is a group of your users defined by rules that you set For more info, check out the Intercom docs(link takes you to an external page)
tagsObjectA tag allows you to label your users and companies and list them using that tag. For more info, check out the Intercom docs(link takes you to an external page)
conversationsObjectConversation are how you can communicate with users in Intercom. For more info, check out the Intercom docs(link takes you to an external page)
adminsObjectAdmins are how you can view your teams and team members. For more info, check out the Intercom docs(link takes you to an external page)
social_profilesObjectSocial data about the user For more info, check out the Intercom docs(link takes you to an external page)
conversation_partsObjectA conversation part describes an element of the conversation. For more info, check out the Intercom docs(link takes you to an external page)

Property NameDescription
idThe Intercom defined id representing the user
user_idThe user id you have defined for the user. (Max limit of 255 UTF-8 characters, and should not have trailing or leading spaces)
anonymousWhether or not this is a Lead. Always false (read only)
avatarAn avatar object for the user
companiesA list of companies for the user
emailThe email you have defined for the user (Max limit of 255 UTF-8 characters, and should not have trailing or leading spaces)
phoneThe phone number of the user
created_atThe time (in seconds) the user was added to Intercom
remote_created_atThe time the user was created by you
updated_atThe last time the user was updated
signed_up_atThe time (in seconds) the user signed up
last_request_atThe time the user last recorded making a request
session_countHow many sessions the user has recorded (read only)
unsubscribed_from_emailsWhether the user is unsubscribed from emails
location_dataA Location Object relating to the user. To update location data send in a value for last_seen_ip and the IP will be used to populate location data
nameThe full name of the user
segmentsA list of segments associated with the user
tagsA list of tags associated with the user
last_seen_ipAn ip address (e.g. "1.2.3.4") representing the last ip address the user visited your application from. (Used for updating location_data)
user_agent_dataData about the last user agent the user was seen using. To update this value use last_seen_user_agent
custom_attributesThe custom attributes you have set on the user (case sensitive)

Property NameDescription
idThe Intercom defined id representing the company
company_idThe company id you have defined for the company
created_atThe time the company was added to Intercom
remote_created_atThe time the company was created by you
updated_atThe last time the company was updated
last_request_atThe time the company last recorded making a request
nameThe name of the company
custom_attributesThe custom attributes you have set on the company
session_countHow many sessions the company has recorded
monthly_spendHow much revenue the company generates for your business
user_countThe number of users in the company
planThe name of the plan you have associated with the company

Property NameDescription
idThe Intercom defined id representing the Lead
created_atThe time the Lead was added to Intercom
updated_atThe last time the Lead was updated
user_idThe user id you have defined for the user. (Max limit of 255 UTF-8 characters, and should not have trailing or leading spaces)
last_request_atThe time the Lead last recorded making a request
nameThe name of the Lead
emailThe email you have defined for the user (Max limit of 255 UTF-8 characters, and should not have trailing or leading spaces)
phoneThe phone number of the user
custom_attributesThe custom attributes you have set on the Lead
unsuscribed_from_emailsWhether the Lead is unsubscribed from emails
location_dataA Location Object relating to the Lead. To update location_data use last_seen_ip which will be translated to the appropriate location_data
last_seen_ipAn ip address (e.g. "1.2.3.4") representing the last ip address the user visited your application from. (Used for updating location_data)
user_agent_dataData about the last user agent the user was seen using. To update this value use last_seen_user_agent
companiesA list of companies for the user
avatarAn avatar object for the Lead

Property NameDescription
idThe Intercom defined id representing the segment
nameThe name of the segment
created_atThe time the segment was created
updated_atThe time the segment was updated
person_typeType of the record: user or lead
countThe number of items in the user segment. It's returned when include_count=true is included in the request

Property NameDescription
idThe id of the tag
nameThe name of the tag

Property NameDescription
idThe id representing the conversation
created_atThe time the conversation was created
updated_atThe last time the conversation was updated
messageThe message that started the conversation rendered for presentation
assigneeThe admin the conversation is currently assigned to. Note nobody_admin indicates the conversation is assigned to Nobody
openIndicates whether a conversation is open (true) or closed (false)
readIndicates whether a conversation has been read
total_countThe number of conversation parts in this conversation
tagsA list of tags associated with the conversation

Property NameDescription
idThe id of the admin or team
nameThe name of the admin or team
emailThe email address of the admin. This attribute is null for teams.
typeA string that represents the object's type. Has the value Admin

Property NameDescription
idOptional. User ID on the service
nameThe name of the service (for example, twitter, facebook)
urlThe user homepage on the service
usernameUser name or handle on the service

Property NameDescription
idThe id representing the conversation part
assigned_toThe id of the admin that the conversation is assigned to (not null only when part_type: assignment )
authorThe user or admin that created the part
bodyThe html encoded body of the comment
created_atThe time the conversation part was created
notified_atThe time the user was notified with the conversation part
part_typeThe type of conversation part
updated_atThe last time the conversation part was updated

Currently, Warehouses are the only supported destination for object-cloud sources.