Skip to main content

Intercom

This page contains the setup guide and reference information for the Intercom source connector.

Prerequisites

  • Access to an Intercom account with the data you want to replicate

Setup guide

Obtain an Intercom access token (Airbyte Open Source)

To authenticate the connector in Airbyte Open Source, you will need to obtain an access token. You can follow the setup steps below to create an Intercom app and generate the token. For more information on Intercom's authentication flow, refer to the official documentation.

  1. Log in to your Intercom account and navigate to the Developer Hub.
  2. Click Your apps in the top-right corner, then click New app.
  3. Choose an App name, select your Workspace from the dropdown, and click Create app.
  4. To set the appropriate permissions, from the Authentication tab, click Edit in the top right corner and check the permissions you want to grant to the app. We recommend only granting read permissions (not write). Click Save when you are finished.
  5. Under the Access token header, you will be prompted to regenerate your access token. Follow the instructions to do so, and copy the new token.

Set up the Intercom connector in Airbyte

  1. Log in to your Airbyte Cloud or Airbyte Open Source account.
  2. In the left navigation bar, click Sources. In the top-right corner, click + New source.
  3. Find and select Intercom from the list of available sources.
  4. Enter a Source name to help you identify this source.
  5. To authenticate:
  • For Airbyte Cloud, click Authenticate your Intercom account. When the pop-up appears, select the appropriate workspace from the dropdown and click Authorize access.
  • For Airbyte Open Source, enter your access token to authenticate your account.
  1. For Start date, use the provided datepicker or enter a UTC date and time programmatically in the format YYYY-MM-DDTHH:mm:ssZ. The data added on and after this date will be replicated.
  2. Click Set up source and wait for the tests to complete.

Supported sync modes

The Intercom source connector supports the following sync modes:

  • Full Refresh
  • Incremental

Supported streams

The Intercom source connector supports the following streams:

Performance considerations

The connector is restricted by normal Intercom request limitations.

The Intercom connector should not run into Intercom API limitations under normal usage. Create an issue if you see any rate limit issues that are not automatically retried successfully.

Build instructions

Build your own connector image

This connector is built using our dynamic built process. The base image used to build it is defined within the metadata.yaml file under the connectorBuildOptions. The build logic is defined using Dagger here. It does not rely on a Dockerfile.

If you would like to patch our connector and build your own a simple approach would be:

  1. Create your own Dockerfile based on the latest version of the connector image.
FROM airbyte/source-intercom:latest

COPY . ./airbyte/integration_code
RUN pip install ./airbyte/integration_code

# The entrypoint and default env vars are already set in the base image
# ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py"
# ENTRYPOINT ["python", "/airbyte/integration_code/main.py"]

Please use this as an example. This is not optimized.

  1. Build your image:
docker build -t airbyte/source-intercom:dev .
# Running the spec command against your patched connector
docker run airbyte/source-intercom:dev spec

Customizing our build process

When contributing on our connector you might need to customize the build process to add a system dependency or set an env var. You can customize our build process by adding a build_customization.py module to your connector. This module should contain a pre_connector_install and post_connector_install async function that will mutate the base image and the connector container respectively. It will be imported at runtime by our build process and the functions will be called if they exist.

Here is an example of a build_customization.py module:

from __future__ import annotations

from typing import TYPE_CHECKING

if TYPE_CHECKING:
# Feel free to check the dagger documentation for more information on the Container object and its methods.
# https://dagger-io.readthedocs.io/en/sdk-python-v0.6.4/
from dagger import Container


async def pre_connector_install(base_image_container: Container) -> Container:
return await base_image_container.with_env_variable("MY_PRE_BUILD_ENV_VAR", "my_pre_build_env_var_value")

async def post_connector_install(connector_container: Container) -> Container:
return await connector_container.with_env_variable("MY_POST_BUILD_ENV_VAR", "my_post_build_env_var_value")

Changelog

VersionDatePull RequestSubject
0.3.12023-10-1331377Use our base image and remove Dockerfile
0.3.02023-05-2529598Update custom components to make them compatible with latest cdk version, simplify logic, update schemas
0.2.12023-05-2526571Remove authSpecification from spec.json in favour of advancedAuth
0.2.02023-04-0523013Migrated to Low-code (YAML Frramework)
0.1.332023-03-2022980Specified date formatting in specification
0.1.322023-02-2722095Extended Contacts schema adding opted_out_subscription_types property
0.1.312023-02-1723152Add TypeTransformer to stream companies
0.1.302023-01-2722010Set AvailabilityStrategy for streams explicitly to None
0.1.292022-10-3118681Define correct version for airbyte-cdk~=0.2
0.1.282022-10-2018216Use airbyte-cdk~=0.2.0 with SQLite caching
0.1.272022-08-2817326Migrate to per-stream states.
0.1.262022-08-1816540Fix JSON schema
0.1.252022-08-1815681Update Intercom API to v 2.5
0.1.242022-07-2114924Remove additionalProperties field from schemas
0.1.232022-07-1914830Added checkpoint_interval for Incremental streams
0.1.222022-07-0914554Fixed conversation_parts stream schema definition
0.1.212022-07-0514403Refactored Conversations, Conversation Parts, Company Segments to increase performance
0.1.202022-06-2414099Extended Contacts stream schema with sms_consent,unsubscribe_from_sms properties
0.1.192022-05-2513204Fixed conversation_parts stream schema definition
0.1.182022-05-0412482Update input configuration copy
0.1.172022-04-2912374Fixed filtering of conversation_parts
0.1.162022-03-2311206Added conversation_id field to conversation_part records
0.1.152022-03-2211176Correct check_connection URL
0.1.142022-03-1611208Improve 'conversations' incremental sync speed
0.1.132022-01-149513Added handling of scroll param when it expired
0.1.122021-12-148429Updated fields and descriptions
0.1.112021-12-138685Remove time.sleep for rate limit
0.1.102021-12-108637Fix 'conversations' order and sorting. Correction of the companies stream
0.1.92021-12-038395Fix backoff of 'companies' stream
0.1.82021-11-097060Added oauth support
0.1.72021-11-087499Remove base-python dependencies
0.1.62021-10-076879Corrected pagination for contacts
0.1.52021-09-286082Corrected android_last_seen_at field data type in schemas
0.1.42021-09-206087Corrected updated_at field data type in schemas
0.1.32021-09-085908Corrected timestamp and arrays in schemas
0.1.22021-08-195531Corrected pagination
0.1.12021-07-315123Corrected rate limit
0.1.02021-07-194676Release Intercom CDK Connector