Intercom Source

Intercom 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. We’ll automatically collect objects like Users and Conversations and load them into your data warehouse.

This is an Object Cloud Source which can export data from its third party tool and import it directly into your Segment warehouse.

Getting Started

  1. From your workspace’s /sources page, click add source.

  2. Choose Intercom and press connect.

  3. OAuth into Intercom

  4. We will verify all the required permissions

  5. Configure the name for the Intercom schema in your warehouse

  6. Add a warehouse or connect Intercom to an already existing warehouse in your workspace

Voila! We’ll begin syncing your Intercom data into Segment momentarily, and it will be written to your warehouse at your next Warehouse run.

Components

Sync

Our Intercom destination has a sync component, which means we’ll make requests to their API on your behalf on a 3 hour interval to pull the latest data into Segment. In the initial sync, we’ll grab 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.

Our sync component uses an upsert API, so the data in your warehouse loaded via 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, we will push the Source data to your warehouse on the interval associated with your billing plan.

At the moment, we don’t support filtering which objects or properties get synced. If you’re interested in this feature, please let us know!

Collections

Collections are the groupings of resources we pull 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
companiesObjectCompanies allow you to represent commercial organizations using your product. For more info, check out the Intercom docs
contactsObjectLeads (previously known as Contacts) are useful for representing logged-out users of your application For more info, check out the Intercom docs
segmentsObjectA segment is a group of your users defined by rules that you set For more info, check out the Intercom docs
tagsObjectA tag allows you to label your users and companies and list them using that tag. For more info, check out the Intercom docs
conversationsObjectConversation are how you can communicate with users in Intercom. For more info, check out the Intercom docs
adminsObjectAdmins are how you can view your teams and team members. For more info, check out the Intercom docs
social_profilesObjectSocial data about the user For more info, check out the Intercom docs
conversation_partsObjectA conversation part describes an element of the conversation. For more info, check out the Intercom docs

Collection Properties

Users

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)

Companies

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
sizeThe number of employees in the company
websiteThe URL for the company website
industryThe industry that the company operates in

Contacts

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

Segments

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

Tags

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

Conversations

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
userThe user the conversation concerns
customersThe list of customers (users or leads) involved in this conversation. This will only contain one customer unless more were added via the group conversation feature
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)
stateCan be set to “open”, “closed” or “snoozed”
readIndicates whether a conversation has been read
total_countThe number of conversation parts in this conversation

Admins

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
job_titleThe job title of the admin
away_mode_enabledIdentifies if this admin is currently set in away mode to automatically reassign new conversations to your app’s default inbox
away_mode_reassignWhen in away mode you can still reply to conversations. If this is set to true then any replies will automatically go into your app’s default inbox
team_idsThis is a list of teams id’s that you are part of. Only set if the type is ‘admin’
admin_ids This is the list of admins on the team. Only set if the type is ‘team’
avatarImage for the associated team or teammate

Social Profiles

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

Conversation Parts

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

Adding Destinations

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


If you have any questions, or see anywhere we can improve our documentation, please let us know!