# Intercom

Intercom is a customer communication platform.

It replicates data using the [Intercom API](https://developers.intercom.com/docs/references/introduction).

See the [Schema](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Intercom.htm#Schema) section for a list of objects available for replication.

## Preparing for authentication

To access your data, you need to authenticate the connection with your account credentials.

Information noteMake sure that the account you use has read access to the tables you want to fetch.

To generate your client ID and secret:

1. Log into your [Intercom Developers](https://developers.intercom.com/) account.
2. Select Developer Hub at the top of the page.
3. Create a new OAuth application.
4. Navigate to Authentication from the left navigation bar and click Edit.
5. Make sure OAuth is activated.
6. Make sure Authorized Redirect URIs is set to https://connector.qlik.com/auth/oauth/v3.htm.
7. Copy the client ID and client secret that are generated, to use in the connection settings.

## Creating the connection

For more information, see [Connecting to SaaS applications](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/connecting-web-applications.htm).

1. Click Authenticate when you have filled in the required connection settings.

   You may be asked to log in to the source application.

   A window is displayed with an authentication code.

2. Copy the code to the clipboard and return to the connection dialog.

3. Paste the code in Complete authentication with the code provided by the source and click Verify.

   Tip noteYou may need to scroll down to see this field.

   When status is Verified, the authentication is verified.

4. Provide a name for the connection in Connection name.

5. Select Open connection metadata to define metadata for the connection when it has been created.

Connection settings

| Setting | Description |
| --- | --- |
| Data gateway | Select a Data Movement gateway if required by your use case.<br><br>Information note<br><br>This field is not available with the Qlik Talend Cloud Starter subscription, as it does not support Data Movement gateway. If you have another subscription tier and do not want to use Data Movement gateway, select None.<br><br>For information on the benefits of Data Movement gateway and use cases that require it, see [Qlik Data Gateway - Data Movement](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm). |
| Start Date | Enter the date, in the format `MM/DD/YYYY`, from which the data must be replicated from your source to your target. |
| Client ID | Client ID of your Intercom account. |
| Client Secret | Client secret of your Intercom account. |

## Schema

Information note

Schemas and naming conventions can change from version to version. It is recommended to verify your version before continuing.

Depending on your destination, table and column names may not appear as they are outlined below.

### admins

The `admins` table lists info about the admins in your Intercom account. An admin is a user, or teammate, in your Intercom account.

| **Replication Method** | Full Table |
| --- | --- |
| **Primary Key** | id |
| **Useful links** | [Intercom documentation](https://developers.intercom.com/intercom-api-reference/v2.5/reference/admin-model)<br><br>[Intercom API method](https://developers.intercom.com/intercom-api-reference/v2.5/reference/list-admins "Opens in new tab: Intercom API method") |

admins table schema

| **admin\_ids**<br><br>ARRAY |
| --- |
| **avatar**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>image_url: STRING</li></ul> |
| **away\_mode\_enabled**<br><br><br>BOOLEAN |
| **away\_mode\_reassign**<br><br><br>BOOLEAN |
| **email**<br><br><br>STRING |
| **has\_inbox\_seat**<br><br><br>BOOLEAN |
| **id**<br><br><br>STRING |
| **job\_title**<br><br><br>STRING |
| **name**<br><br><br>STRING |
| **team\_ids**<br><br>ARRAY |
| **type**<br><br><br>STRING |

### companies

The `companies` table contains info about companies that use your Intercom product.

#### Custom attributes

If applicable, Stitch will replicate custom fields related to `companies` in Intercom.

#### Limitations

Intercom’s API limits the number of simultaneous requests a single Intercom app, or connection, can make to the endpoint. Stitch uses this endpoint to replicate company data. Currently, only one request can occur at a time.

If multiple connections exist and they attempt to use this endpoint at the same time, only the connection who made the request first will succeed.

This means that if Stitch attempts to extract data when another connection is using the endpoint, Extraction will fail and an error will surface in the Extraction Logs.

To prevent or minimize this issue, we recommend limiting the number of connections a single workspace has or scheduling extraction jobs in Stitch around your other connections’ usage.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | updated\_at |
| **Useful links** | [Intercom documentation](https://developers.intercom.com/intercom-api-reference/v2.5/reference/company-model)<br><br>[Intercom API method](https://developers.intercom.com/intercom-api-reference/v2.5/reference/iterating-over-all-companies "Opens in new tab: Intercom API method") |

companies table schema

| **company\_id**<br><br><br>STRING |
| --- |
| **created\_at**<br><br><br>DATE-TIME |
| **custom\_attributes**<br><br><br>OBJECT |
| **id**<br><br><br>STRING |
| **industry**<br><br><br>STRING |
| **last\_request\_at**<br><br><br>DATE-TIME |
| **monthly\_spend**<br><br><br>NUMBER |
| **name**<br><br><br>STRING |
| **plan**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>name: STRING</li><li>type: STRING</li></ul> |
| **remote\_created\_at**<br><br><br>DATE-TIME |
| **segments**<br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li></ul> |
| **session\_count**<br><br><br>INTEGER |
| **size**<br><br><br>INTEGER |
| **tags**<br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li></ul> |
| **type**<br><br><br>STRING |
| **updated\_at**<br><br><br>DATE-TIME |
| **user\_count**<br><br><br>INTEGER |
| **website**<br><br><br>STRING |

### company\_attributes

The `company_attributes` lists data attributes for a specified company in your Intercom account.

| **Replication Method** | Full Table |
| --- | --- |
| **Primary Key** | \_sdc\_record\_hash |
| **Useful links** | [Intercom documentation](https://developers.intercom.com/intercom-api-reference/v2.5/reference/data-attribute-model)<br><br>[Intercom API method](https://developers.intercom.com/intercom-api-reference/v2.5/reference/list-data-attributes "Opens in new tab: Intercom API method") |

company\_attributes table schema

| **\_sdc\_record\_hash**<br><br><br>STRING |
| --- |
| **admin\_id**<br><br><br>STRING |
| **api\_writable**<br><br><br>BOOLEAN |
| **archived**<br><br><br>BOOLEAN |
| **created\_at**<br><br><br>DATE-TIME |
| **custom**<br><br><br>BOOLEAN |
| **data\_type**<br><br><br>STRING |
| **description**<br><br><br>STRING |
| **full\_name**<br><br><br>STRING |
| **id**<br><br><br>INTEGER |
| **label**<br><br><br>STRING |
| **model**<br><br><br>STRING |
| **name**<br><br><br>STRING |
| **options**<br><br>ARRAY |
| **type**<br><br><br>STRING |
| **ui\_writable**<br><br><br>BOOLEAN |
| **updated\_at**<br><br><br>DATE-TIME |

### company\_segments

The `company_segments` table contains information about company segments in your Intercom account.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | updated\_at |
| **Useful links** | [Intercom documentation](https://developers.intercom.com/intercom-api-reference/v2.5/reference/segment-model)<br><br>[Intercom API method](https://developers.intercom.com/intercom-api-reference/v2.5/reference/list-segments "Opens in new tab: Intercom API method") |

company\_segments table schema

| **count**<br><br><br>INTEGER |
| --- |
| **created\_at**<br><br><br>DATE-TIME |
| **id**<br><br><br>STRING |
| **name**<br><br><br>STRING |
| **person\_type**<br><br><br>STRING |
| **type**<br><br><br>STRING |
| **updated\_at**<br><br><br>DATE-TIME |

### contact\_attributes

The `contact_attributes` table contains information about contact attributes in your Intercom account.

| **Replication Method** | Full Table |
| --- | --- |
| **Primary Key** | \_sdc\_record\_hash |
| **Useful links** | [Intercom documentation](https://developers.intercom.com/intercom-api-reference/v2.5/reference/data-attribute-model)<br><br>[Intercom API method](https://developers.intercom.com/intercom-api-reference/v2.5/reference/list-data-attributes "Opens in new tab: Intercom API method") |

contact\_attributes table schema

| **\_sdc\_record\_hash**<br><br><br>STRING |
| --- |
| **admin\_id**<br><br><br>STRING |
| **api\_writable**<br><br><br>BOOLEAN |
| **archived**<br><br><br>BOOLEAN |
| **created\_at**<br><br><br>DATE-TIME |
| **custom**<br><br><br>BOOLEAN |
| **data\_type**<br><br><br>STRING |
| **description**<br><br><br>STRING |
| **full\_name**<br><br><br>STRING |
| **id**<br><br><br>INTEGER |
| **label**<br><br><br>STRING |
| **model**<br><br><br>STRING |
| **name**<br><br><br>STRING |
| **options**<br><br><br>ARRAY |
| **type**<br><br><br>STRING |
| **ui\_writable**<br><br><br>BOOLEAN |
| **updated\_at**<br><br><br>DATE-TIME |

### contacts

The `contacts` table contains info about users and leads in your Intercom account.

#### Custom attributes

If applicable, Stitch will replicate custom fields related to `contacts` in Intercom.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | updated\_at |
| **Useful links** | [Intercom documentation](https://developers.intercom.com/intercom-api-reference/v2.5/reference/contacts-model)<br><br>[Intercom API method](https://developers.intercom.com/intercom-api-reference/v2.5/reference/list-contacts "Opens in new tab: Intercom API method") |

contacts table schema

| **android\_app\_name**<br><br><br>STRING |
| --- |
| **android\_app\_version**<br><br><br>STRING |
| **android\_device**<br><br><br>STRING |
| **android\_last\_seen\_at**<br><br><br>DATE-TIME |
| **android\_os\_version**<br><br><br>STRING |
| **android\_sdk\_version**<br><br><br>STRING |
| **avatar**<br><br><br>STRING |
| **browser**<br><br><br>STRING |
| **browser\_language**<br><br><br>STRING |
| **browser\_version**<br><br><br>STRING |
| **companies**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>type: STRING</li><li>url: STRING</li></ul> |
| **created\_at**<br><br><br>DATE-TIME |
| **custom\_attributes**<br><br><br>OBJECT |
| **email**<br><br><br>STRING |
| **external\_id**<br><br><br>STRING |
| **has\_hard\_bounced**<br><br><br>BOOLEAN |
| **id**<br><br><br>STRING |
| **ios\_app\_name**<br><br><br>STRING |
| **ios\_app\_version**<br><br><br>STRING |
| **ios\_device**<br><br><br>STRING |
| **ios\_last\_seen\_at**<br><br><br>DATE-TIME |
| **ios\_os\_version**<br><br><br>STRING |
| **ios\_sdk\_version**<br><br><br>STRING |
| **language\_override**<br><br><br>STRING |
| **last\_contacted\_at**<br><br><br>DATE-TIME |
| **last\_email\_clicked\_at**<br><br><br>DATE-TIME |
| **last\_email\_opened\_at**<br><br><br>DATE-TIME |
| **last\_replied\_at**<br><br><br>DATE-TIME |
| **last\_seen\_at**<br><br><br>DATE-TIME |
| **location**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>city: STRING</li><li>continent_code: STRING</li><li>country: STRING</li><li>country_code: STRING</li><li>region: STRING</li><li>type: STRING</li></ul> |
| **marked\_email\_as\_spam**<br><br><br>BOOLEAN |
| **name**<br><br><br>STRING |
| **notes**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>data: ARRAY, which is also a nested data structure.												<ul><li>id: STRING</li><li>type: STRING</li><li>url: STRING</li></ul></li><li>has_more: BOOLEAN</li><li>total_count: INTEGER</li><li>type: STRING</li><li>url: STRING</li></ul> |
| **os**<br><br><br>STRING |
| **owner\_id**<br><br><br>INTEGER |
| **phone**<br><br><br>STRING |
| **role**<br><br><br>STRING |
| **signed\_up\_at**<br><br><br>DATE-TIME |
| **social\_profiles**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>data: ARRAY, which is also a nested data structure.																								<ul><li>name: STRING</li><li>type: STRING</li><li>url: STRING</li></ul></li><li>type: STRING</li></ul> |
| **tags**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li></ul> |
| **type**<br><br><br>STRING |
| **unsubscribed\_from\_emails**<br><br><br>BOOLEAN |
| **updated\_at**<br><br><br>DATE-TIME |
| **workspace\_id**<br><br><br>STRING |

### conversation\_parts

The `conversation_parts` table lists the individual parts of conversations in your Intercom account.

**Note**: When this table is replicated, all conversation parts associated with an updated conversation will be replicated.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | updated\_at |
| **Useful links** | [Intercom documentation](https://developers.intercom.com/intercom-api-reference/v2.5/reference/conversation-model)<br><br>[Intercom API method](https://developers.intercom.com/intercom-api-reference/v2.5/reference/retrieve-a-conversation "Opens in new tab: Intercom API method") |

conversation\_parts table schema

| **assigned\_to**<br><br><br>STRING |
| --- |
| **attachments**<br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>content_type: STRING</li><li>filesize: INTEGER</li><li>height: INTEGER</li><li>name: STRING</li><li>type: STRING</li><li>url: STRING</li><li>width: INTEGER</li></ul> |
| **author**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>email: STRING</li><li>id: STRING</li><li>name: STRING</li><li>type: STRING</li></ul> |
| **body**<br><br><br>STRING |
| **conversation\_created\_at**<br><br><br>DATE-TIME |
| **conversation\_id**<br><br><br>STRING |
| **conversation\_total\_parts**<br><br><br>INTEGER |
| **conversation\_updated\_at**<br><br><br>DATE-TIME |
| **created\_at**<br><br><br>DATE-TIME |
| **external\_id**<br><br><br>STRING |
| **id**<br><br><br>STRING |
| **notified\_at**<br><br><br>DATE-TIME |
| **part\_type**<br><br><br>STRING |
| **redacted**<br><br><br>BOOLEAN |
| **type**<br><br><br>STRING |
| **updated\_at**<br><br><br>DATE-TIME |

### conversations

The `conversations` table contains info about user conversations in your Intercom account.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | updated\_at |
| **Useful links** | [Intercom documentation](https://developers.intercom.com/intercom-api-reference/v2.5/reference/conversation-model)<br><br>[Intercom API method](https://developers.intercom.com/intercom-api-reference/v2.5/reference/list-conversations "Opens in new tab: Intercom API method") |

conversations table schema

| **admin\_assignee\_id**<br><br><br>INTEGER |
| --- |
| **contacts**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>type: STRING</li></ul> |
| **conversation\_message**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>attachments: ARRAY, which is also a nested data structure.																								<ul><li>content_type: STRING</li><li>filesize: INTEGER</li><li>height: INTEGER</li><li>name: STRING</li><li>type: STRING</li><li>url: STRING</li><li>width: INTEGER</li></ul></li><li>author: OBJECT, which is also a nested data structure.																								<ul><li>email: STRING</li><li>id: STRING</li><li>name: STRING</li><li>type: STRING</li></ul></li><li>body: STRING</li><li>delivered_as: STRING</li><li>id: STRING</li><li>subject: STRING</li><li>type: STRING</li><li>url: STRING</li></ul> |
| **conversation\_rating**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>contact: OBJECT, which is also a nested data structure.																													<ul><li>id: STRING</li><li>type: STRING</li></ul></li><li>created_at: DATE-TIME</li><li>customer: OBJECT, which is also a nested data structure.												<ul><li>id: STRING</li><li>type: STRING</li></ul></li><li>rating: INTEGER</li><li>remark: STRING</li><li>teammate: OBJECT, which is also a nested data structure.												<ul><li>id: STRING</li><li>type: STRING</li></ul></li></ul> |
| **created\_at**<br><br><br>DATE-TIME |
| **custom\_attributes**<br><br><br>OBJECT |
| **customer\_first\_reply**<br><br><br>OBJECT<br><br>Click to expand customer\_first\_reply<br><br><table><tr><td><p><strong>								created_at							</strong></p><p>							DATE-TIME						</p></td></tr><tr><td><p><strong>								type							</strong></p><p>							STRING						</p></td></tr><tr><td><p><strong>								url							</strong></p><p>							STRING						</p></td></tr></table> |
| **customers**<br><br>ARRAY<br><br>Click to expand customers<br><br><table><tr><td><p><strong>								id							</strong></p><p>							STRING						</p></td></tr><tr><td><p><strong>								type							</strong></p><p>							STRING						</p></td></tr></table> |
| **first\_contact\_reply**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>created_at: DATE-TIME</li><li>type: STRING</li><li>url: STRING</li></ul> |
| **id**<br><br><br>STRING |
| **open**<br><br><br>BOOLEAN |
| **priority**<br><br><br>STRING |
| **read**<br><br><br>BOOLEAN |
| **sent\_at**<br><br><br>DATE-TIME |
| **sla\_applied**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>sla_name: STRING</li><li>sla_status: STRING</li></ul> |
| **snoozed\_until**<br><br><br>DATE-TIME |
| **source**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>attachments: ARRAY</li><li>author: OBJECT, which is also a nested data structure.												<ul><li>email: STRING</li><li>id: STRING</li><li>name: STRING</li><li>type: STRING</li></ul></li><li>body: STRING</li><li>delivered_as: STRING</li><li>id: STRING</li><li>redacted: BOOLEAN</li><li>subject: STRING</li><li>type: STRING</li><li>url: STRING</li></ul> |
| **state**<br><br><br>STRING |
| **statistics**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>count_assignments: INTEGER</li><li>count_conversation_parts: INTEGER</li><li>count_reopens: INTEGER</li><li>first_admin_reply_at: DATE-TIME</li><li>first_assignment_at: DATE-TIME</li><li>first_close_at: DATE-TIME</li><li>first_contact_reply_at: DATE-TIME</li><li>last_admin_reply_at: DATE-TIME</li><li>last_assignment_admin_reply_at: DATE-TIME</li><li>last_assignment_at: DATE-TIME</li><li>last_close_at: DATE-TIME</li><li>last_closed_by: DATE-TIME, which is also a nested data structure.												<ul><li>email: STRING</li><li>id: STRING</li><li>name: STRING</li><li>type: STRING</li></ul></li><li>last_closed_by_id: INTEGER</li><li>last_contact_reply_at: DATE-TIME</li><li>median_time_to_reply: INTEGER</li><li>time_to_admin_reply: INTEGER</li><li>time_to_assignment: INTEGER</li><li>time_to_first_close: INTEGER</li><li>time_to_last_close: INTEGER</li><li>type: STRING</li></ul> |
| **tags**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>applied_at: DATE-TIME</li><li>applied_by: OBJECT, which is also a nested data structure.												<ul><li>id: STRING</li><li>type: STRING</li></ul></li><li>id: STRING</li><li>name: STRING</li><li>type: STRING</li></ul> |
| **team\_assignee\_id**<br><br><br>INTEGER |
| **teammates**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>admins: ARRAY, which is also a nested data structure.												<ul><li>id: STRING</li><li>type: STRING</li></ul></li><li>type: STRING</li></ul> |
| **title**<br><br><br>STRING |
| **type**<br><br><br>STRING |
| **updated\_at**<br><br><br>DATE-TIME |
| **user**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>type: STRING</li></ul> |
| **waiting\_since**<br><br><br>DATE-TIME |

### segments

The `segments` table contains information about segments within your Intercom account.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | updated\_at |
| **Useful links** | [Intercom documentation](https://developers.intercom.com/intercom-api-reference/v2.5/reference/segment-model)<br><br>[Intercom API method](https://developers.intercom.com/intercom-api-reference/v2.5/reference/list-segments "Opens in new tab: Intercom API method") |

segments table schema

| **count**<br><br><br>INTEGER |
| --- |
| **created\_at**<br><br><br>DATE-TIME |
| **id**<br><br><br>STRING |
| **name**<br><br><br>STRING |
| **person\_type**<br><br><br>STRING |
| **type**<br><br><br>STRING |
| **updated\_at**<br><br><br>DATE-TIME |

### tags

The `tags` table contains information about tags within your Intercom account.

| **Replication Method** | Full Table |
| --- | --- |
| **Primary Key** | id |
| **Useful links** | [Intercom documentation](https://developers.intercom.com/intercom-api-reference/v2.5/reference/tag-model)<br><br>[Intercom API method](https://developers.intercom.com/intercom-api-reference/v2.5/reference/list-tags-for-an-app "Opens in new tab: Intercom API method") |

tags table schema

| **id**<br><br><br>STRING |
| --- |
| **name**<br><br><br>STRING |
| **type**<br><br><br>STRING |

### teams

The `teams` table contains information about teams in your Intercom account.

| **Replication Method** | Full Table |
| --- | --- |
| **Primary Key** | id |
| **Useful links** | [Intercom documentation](https://developers.intercom.com/intercom-api-reference/v2.5/reference/teams-model)<br><br>[Intercom API method](https://developers.intercom.com/intercom-api-reference/v2.5/reference/list-teams "Opens in new tab: Intercom API method") |

teams table schema

| **admin\_ids**<br><br>ARRAY |
| --- |
| **id**<br><br><br>STRING |
| **name**<br><br><br>STRING |
| **type**<br><br><br>STRING |