Intercom
Intercom ETL connector for data replication
Intercom
Intercom ETL connector for data replication
Integrate Intercom with Daton
- Sign in to Daton
- Select Intercom from Integrations page
- Provide Integration Name, Replication Frequency, and History. Integration name would be used in creating tables for the integration and cannot be changed later
- You will be redirected to Intercom login for authorizing Daton to extract data periodically. Login using Intercom credentials.
- Post successful authentication, you will be asked to authorize the scopes required by Daton.
- Post authorization, you will be redirected to Daton to select the tables and columns required.
- Submit the integration
Snapshot
Features |
Details |
Release Status |
Released |
Source API Version |
v2.4 |
Table Selection |
Yes |
Column Selection |
Yes |
Edit Integration |
Yes |
Replication Type Selection |
No |
Authentication Parameters |
Intercom account email Intercom account password |
Replication Type |
Full Replication Key Based Incremental |
Replication Key |
Date |
Suggested Replication Frequency |
24 hrs |
List of Tables/APIs Supported
Leads |
conversationCount |
Segments |
Users |
userSegmentCount |
Teams |
Conversations |
userTagCount |
Articles |
Companies |
adminConversationCount |
SubscriptionTypes |
Tags |
companySegmentCount |
ConversationDataAttributes |
Counts |
companyTagCount |
CustomerDataAttributes |
Admins |
companyUserCount |
ContactDataAttributes |
Workflow
- Integrations would be in Pending state initially and will be moved to Active state as soon as the first job loads data successfully on to the configured warehouse
- Users would be able to edit/pause/re-activate/delete integration anytime
- Users can view job status and process logs from the integration details page by clicking on the integration name from the active list
Intercom Data
DataAttributes (Company, Contact, Conversation)
Purpose: You can fetch a list of all the company/contact/conversation data attributes. Data attributes are metadata used to describe your company, contact and conversation models.
Source API Documentation https://developers.intercom.com/intercom-api-reference/reference/data-attribute-model
Replication: Full Replication
Replication Key: NA
Fields
Key | Type | Description |
type |
string |
Value is data_attribute
|
model |
string |
Value is contact for user/lead attributes, and company for company attributes. |
name |
string |
Name of the attribute Examples: email region_name for region_name stored in location_data object image_url for image_url stored in avatar object paid_subscriber for CDA named paid_subscriber |
full_name |
string |
Full name of the attribute. Should match the name unless it’s a nested attribute. Examples: email location_data.region_name avatar.image_url custom_attributes.paid_subscriber
We can split full_name on . to access nested user object values. |
label |
string |
Readable name of the attribute (i.e. name you see in the UI) |
description |
string |
Readable description of the attribute |
data_type |
string |
Type of data stored in the attribute. Possible values: string integer float boolean date
|
options |
list |
List of predefined options for attribute value |
api_writable |
boolean |
Can this attribute be updated through API |
ui_writable |
boolean |
Can this attribute be updated in the UI |
custom |
boolean |
Set to true if this is a CDA |
archived |
boolean |
Only applicable to CDAs |
created_at |
timestamp |
The time the CDA was created. Only applicable to CDAs. |
updated_at |
timestamp |
The last time the CDA was updated. Only applicable to CDAs |
admin_id |
string |
Teammate who created the attribute. Only applicable to CDAs |
Leads, Users
Purpose: Fetch a list of all leads and users in two separate tables. Both the tables come from the 'Contacts' API which will specify whether they are a 'user' or a 'lead' through the 'role' attribute.
Source API Documentation https://developers.intercom.com/intercom-api-reference/reference/contacts-model
Replication: Key-Based Replication
Replication Key: updated_at
Fields
Key | Type | Description |
type |
String |
The type of object - contact . |
id |
String |
The unique identifier for the contact which is given by Intercom. |
workspace_id |
String |
The id of the workspace which the contact belongs to. |
external_id |
String |
A unique identifier for the contact which is given to Intercom. |
role |
String |
The role of the contact - user or lead . |
email |
String |
The contacts email. |
phone |
String |
The contacts phone. |
name |
String |
The contacts name. |
avatar |
String |
An image URL containing the avatar of a contact. |
owner_id |
Integer |
The id of an admin that has been assigned account ownership of the contact. |
social_profiles |
List |
A list of social profiles associated to the contact. |
has_hard_bounced |
Boolean |
Whether the contact has had an email sent to them hard bounce. |
marked_email_as_spam |
Boolean |
Whether the contact has marked an email sent to them as spam. |
unsubscribed_from_emails |
Boolean |
Whether the contact is unsubscribed from emails. |
created_at |
Date (UNIX timestamp) |
The time when the contact was created. |
updated_at |
Date (UNIX timestamp) |
The time when the contact was last updated. |
signed_up_at |
Date (UNIX timestamp) |
The time specified for when a contact signed up. |
last_seen_at |
Date (UNIX timestamp) |
The time when the contact was last seen (either where the Intercom Messenger was installed or when specified manually). |
last_replied_at |
Date (UNIX timestamp) |
The time when the contact last messaged in. |
last_contacted_at |
Date (UNIX timestamp) |
The time when the contact was last messaged. |
last_email_opened_at |
Date (UNIX timestamp) |
The time when the contact last opened an email. |
last_email_clicked_at |
Date (UNIX timestamp) |
The time when the contact last clicked a link in an email. |
language_override |
String |
A preferred language setting for the contact, used by the Intercom Messenger even if their browser settings change. |
browser |
String |
The name of the browser which the contact is using. |
browser_version |
String |
The version of the browser which the contact is using. |
browser_language |
String |
The language set by the browser which the contact is using. |
os |
String |
The operating system which the contact is using. |
location |
Object |
An object showing location details of the contact. |
android_app_name |
String |
The name of the Android app which the contact is using. |
android_app_version |
String |
The version of the Android app which the contact is using. |
android_device |
String |
The Android device which the contact is using. |
android_os_version |
String |
The version of the Android OS which the contact is using. |
android_sdk_version |
String |
The version of the Android SDK which the contact is using. |
android_last_seen_at |
Date (UNIX timestamp) |
The last time the contact used the Android app. |
ios_app_name |
String |
The name of the iOS app which the contact is using. |
ios_app_version |
String |
The version of the iOS app which the contact is using. |
ios_device |
String |
The iOS device which the contact is using. |
ios_os_version |
String |
The version of iOS which the contact is using. |
ios_sdk_version |
String |
The version of the iOS SDK which the contact is using. |
ios_last_seen_at |
Date (UNIX timestamp) |
The last time the contact used the iOS app. |
custom_attributes |
Object |
The custom attributes which are set for the contact. |
tags |
Addressable List |
The tags which have been added to the contact. |
notes |
Addressable List |
The notes which have been added to the contact. |
companies |
Addressable List |
The companies which the contact belongs to. |
utm_campaign |
String |
Identifies a specific product promotion or strategic campaign |
utm_content |
String |
Identifies what specifically was clicked to bring the user to the site |
utm_medium |
String |
Identifies what type of link was used |
utm_source |
String |
Identifies which site sent the traffic |
utm_term |
String |
Identifies search terms |
referrer |
String |
The URL of the page the contact was last on. |
Companies
Purpose: You can fetch a list of companies. Companies allow you to represent commercial organizations using your product. Each company will have its own description and be associated with users.
Source API Documentation https://developers.intercom.com/intercom-api-reference/reference/company-model
Replication: Key-Based Replication
Replication Key: updated_at
Fields
Key | Type | Description |
type |
String |
Value is 'company'. |
id |
String |
The Intercom defined id representing the company. |
created_at |
Date (UNIX timestamp) |
The time the company was added to Intercom. |
remote_created_at |
Date (UNIX timestamp) |
The time the company was created by you. |
updated_at |
Date (UNIX timestamp) |
The last time the company was updated. |
last_request_at |
Date (UNIX timestamp) |
The time the company last recorded making a request. |
company_id |
String |
The company id you have defined for the company. |
name |
String |
The name of the company. |
custom_attributes |
Object |
The custom attributes you have set on the company. |
session_count |
Integer |
How many sessions the company has recorded. |
monthly_spend |
Integer |
How much revenue the company generates for your business. |
user_count |
Integer |
The number of users in the company. |
plan |
Object |
The name of the plan you have associated with the company. |
size |
Integer |
The number of employees in the company. |
website |
String |
The URL for the company website. |
industry |
String |
The industry that the company operates in. |
Admins
Purpose: Admins are how you can view your teammates within Intercom that have access to a workspace.
Source API Documentation https://developers.intercom.com/intercom-api-reference/reference/admin-model
Replication: Full Replication
Replication Key: NA
Fields
Key |
Type |
Description |
type |
string |
Value is admin . |
id |
string |
The id of the admin |
name |
string |
The name of the admin |
email |
string |
The email address of the admin |
job_title |
string |
The job title of the admin |
away_mode_enabled |
boolean |
Identifies if this admin is currently set in away mode. |
away_mode_reassign |
boolean |
Identifies if this admin is set to automatically reassign new conversations to the apps default inbox. |
has_inbox_seat |
boolean |
Identifies if a teammate has a paid inbox seat to restrict/allow features that require them |
team_ids |
list |
This is a list of teams id's that you are part of |
avatar |
url |
Image for the associated team or teammate |
Teams
Purpose: Teams are groups of admins within Intercom.
Source API Documentation https://developers.intercom.com/intercom-api-reference/reference/teams-model
Replication: Full Replication
Replication Key: NA
Fields
Key | Type | Description |
type |
string |
Value is team . |
id |
string |
The id of the team |
name |
string |
The name of the team |
admin_ids |
list |
The list of admin id's that are a part of the team |
Tags
Purpose: A tag allows you to label your users and companies and list them using that tag. It also describes how users and companies can be tagged or untagged individually or in bulk.
Source API Documentation https://developers.intercom.com/intercom-api-reference/reference/tag-model
Replication: Full Replication
Replication Key: NA
Fields
Key | Type | Description |
type |
string |
value is 'tag' |
id |
string |
The id of the tag |
name |
string |
The name of the tag |
Segments
Purpose: A segment is a group of your contacts defined by rules that you set. Contacts are automatically added to the segment every time the user updates to match those rules. Segments are different to tags, in that contacts need to be added to tags manually and tag members are not automatically managed.
Source API Documentation https://developers.intercom.com/intercom-api-reference/reference/segment-model
Replication: Full Replication
Replication Key: NA
Fields
Key | Type | Description |
type |
string |
value is segment'. |
id |
string |
The unique identifier representing the segment. |
name |
string |
The name of the segment. |
created_at |
timestamp |
The time the segment was created. |
updated_at |
timestamp |
The time the segment was updated. |
person_type |
string |
Type of the record: user or lead. |
count |
integer |
The number of items in the user segment. It's returned when include_count=true is included in the request. |
Counts
Purpose: Counts are a legacy way to periodically obtain data for the purposes of tracking rates of change in contact and company data.
Source API Documentation https://developers.intercom.com/intercom-api-reference/reference#counts
Replication: Full Replication
Replication Key: NA
The total count object contains the summary of the following fields in a workspace. The count of tags and segments includes archived tags and segments.
Fields
type |
string |
value is 'count.hash' |
company |
object |
Contains the number of companies in your App |
segment |
object |
Contains the number of segments in your App |
tag |
object |
Contains the number of tags in your App |
user |
object |
Contains the number of users in your App |
lead |
object |
Contains the number of leads in your App |
Conversation Count
Purpose: The conversation count supplies global counts about your app's conversations
Source API Documentation https://developers.intercom.com/intercom-api-reference/reference#counts
Replication: Full Replication
Replication Key: NA
Fields
Key | Type | Description |
type |
string |
value is 'count' |
conversation |
object |
Contains counts related to conversations |
conversation.assigned |
number |
Contains the number of assigned conversations |
conversation.closed |
number |
Contains the number of closed conversations |
conversation.open |
number |
Contains the number of open conversations |
conversation.unassigned |
number |
Contains the number of unassigned conversations |
Admin Conversation Count
Purpose: The admin conversation count supplies per Admin counts
Source API Documentation https://developers.intercom.com/intercom-api-reference/reference/admin-conversations
Replication: Full Replication
Replication Key: NA
Fields
type |
string |
value is 'count' |
conversation |
object |
Contains counts related to admins |
conversation.admin |
array |
Contains and array of objects detailing each Admin |
conversation.admin.open |
number |
Contains the number of open conversations for the Admin |
conversation.admin.closed |
number |
Contains the number of closed conversations for the Admin |
conversation.admin.id |
string |
Contains the Admin id |
conversation.admin.name |
string |
Contains the Admin name |
User Segment/Tag Count
Purpose: The count of tags and segments including archived tags and segments.
Source API Documentation https://developers.intercom.com/intercom-api-reference/reference/user-tag-counts
Replication: Full Replication
Replication Key: NA
Fields
Key | Type | Description |
type |
string |
value is 'count' |
user |
object |
Contains a field called segment containing segment counts |
user.segment |
array |
Contains a list of segment counts |
user.tag |
array |
Contains a list of tag counts |
Company User/Segment/Tag Count
Purpose: Company wise count of users, segments and tags including archived tags and segments.
Source API Documentation https://developers.intercom.com/intercom-api-reference/reference/user-tag-counts
Replication: Full Replication
Replication Key: NA
Fields
type |
string |
value is 'count' |
company |
object |
Contains a field called segment containing segment counts |
company.segment |
array |
Contains a list of segment objects their name and their number of companies tagged |
company.tag |
array |
Contains a list of tag objects with their name and their number of companies tagged |
company.user |
array |
Contains an array of companies with their name and their number of users |
Conversations
Purpose: To fetch a list of all conversations. Conversations are how you can communicate with users in Intercom. They are created when a contact replies to an outbound message, or when one admin directly sends a message to a single contact.
Source API Documentation https://developers.intercom.com/intercom-api-reference/reference/conversation-model
Replication: Key-Based Replication
Replication Key: updated_at
Fields
type |
String |
Always conversation . |
id |
String |
The id representing the conversation. |
created_at |
Timestamp |
The time the conversation was created. |
updated_at |
Timestamp |
The last time the conversation was updated. |
source |
Object |
The Conversation Part that originated this conversation, which can be Contact, Admin, Campaign, Automated or Operator initiated. |
contacts |
List |
The list of contacts (users or leads) involved in this conversation. This will only contain one customer unless more were added via the group conversation feature. |
teammates |
List |
The list of teammates who participated in the conversation (wrote at least one conversation part). |
title |
String |
The title given to the conversation. |
admin_assignee_id |
Integer |
The id of the admin assigned to the conversation. If it's not assigned to an admin it will return null. |
team_assignee_id |
String |
The id of the team assigned to the conversation. If it's not assigned to a team it will return null. |
custom_attributes |
Object |
An object containing the different custom attributes associated to the conversation as key-value pairs. |
open |
Boolean |
Indicates whether a conversation is open (true) or closed (false). |
state |
String |
Can be set to "open", "closed" or "snoozed". |
read |
Boolean |
Indicates whether a conversation has been read. |
waiting_since |
Timestamp |
The last time a Contact responded to an Admin. In other words, the time a customer started waiting for a response. Set to null if last reply is from an Admin. |
snoozed_until |
Timestamp |
If set this is the time in the future when this conversation will be marked as open. i.e. it will be in a snoozed state until this time. |
tags |
List |
A list of tags objects associated with the conversation. |
first_contact_reply |
Object |
An object containing information on the first users message. For a contact initiated message this will represent the users original message. |
priority |
String |
If marked as priority, it will return priority or else not_priority . |
sla_applied |
Object |
The SLA Applied object contains the details for which SLA has been applied to this conversation. |
conversation_rating |
Object |
The Conversation Rating object which contains information on the rating and/or remark added by a Contact and the Admin assigned to the conversation. |
statistics |
Object |
A Statistics object containing all information required for reporting, with timestamps and calculated metrics. |
conversation_parts |
List |
A list of Conversation Part objects for each part message in the conversation. This is only returned when Retrieving a Conversation, and ignored when Listing all Conversations. There is a limit of 500 parts. |
Subscription Types
Purpose: List of all subscription types. A subscription type lets customers easily opt out of non-essential communications without missing what’s important to them.
Source API Documentation https://developers.intercom.com/intercom-api-reference/reference/conversation-model
Replication: Key-Based Replication
Replication Key: updated_at
Fields
Key | Type | Description |
type |
String |
The type of the object - subscription
|
id |
String |
The unique identifier representing the subscription type. |
state |
String |
The state of the subscription type: live , draft , archived . |
default_translation |
Object |
A translation object with the localised version of the subscription type in the default language for the workspace. |
translations |
Array |
An array of translations objects with the localised version of the subscription type in each available locale within your translation settings. |
consent_type |
String |
Describes the type of consent, this is always opt_out . |