Intercom V2

Intercom ETL connector for data replication

Integrate Intercom with Daton

  1. Sign in to Daton

  2. Select Intercom from Integrations page

  3. Provide Integration Name, Replication Frequency, and History. Integration name would be used in creating tables for the integration and cannot be changed later

  4. You will be redirected to Intercom login for authorizing Daton to extract data periodically. Login using Intercom credentials.

5. Post successful authentication, you will be asked to authorize the scopes required by Daton.

6. Post authorization, you will be redirected to Daton to select the tables and columns required.

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

Admins

Help_center_collection

Scroll_Companies

Contacts

Data_Attributes

Tags

Subscription_Types

Segments

Articles

Workflow

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

  2. Users would be able to edit/pause/re-activate/delete integration anytime

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

KeyTypeDescription

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

KeyTypeDescription

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

KeyTypeDescription

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

KeyTypeDescription

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

KeyTypeDescription

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

KeyTypeDescription

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

KeyTypeDescription

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

KeyTypeDescription

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

KeyTypeDescription

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.

Last updated