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.
- Log in to your Intercom account and navigate to the Developer Hub.
- Click Your apps in the top-right corner, then click New app.
- Choose an App name, select your Workspace from the dropdown, and click Create app.
- 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.
- 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
- Log in to your Airbyte Cloud or Airbyte Open Source account.
- In the left navigation bar, click Sources. In the top-right corner, click + New source.
- Find and select Intercom from the list of available sources.
- Enter a Source name to help you identify this source.
- 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.
- 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. - 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:
- Admins (Full table)
- Companies (Incremental)
- Company Segments (Incremental)
- Conversations (Incremental)
- Conversation Parts (Incremental)
- Data Attributes (Full table)
- Customer Attributes (Full table)
- Company Attributes (Full table)
- Contacts (Incremental)
- Segments (Incremental)
- Tags (Full table)
- Teams (Full table)
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:
- 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.
- 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
Version | Date | Pull Request | Subject |
---|---|---|---|
0.3.1 | 2023-10-13 | 31377 | Use our base image and remove Dockerfile |
0.3.0 | 2023-05-25 | 29598 | Update custom components to make them compatible with latest cdk version, simplify logic, update schemas |
0.2.1 | 2023-05-25 | 26571 | Remove authSpecification from spec.json in favour of advancedAuth |
0.2.0 | 2023-04-05 | 23013 | Migrated to Low-code (YAML Frramework) |
0.1.33 | 2023-03-20 | 22980 | Specified date formatting in specification |
0.1.32 | 2023-02-27 | 22095 | Extended Contacts schema adding opted_out_subscription_types property |
0.1.31 | 2023-02-17 | 23152 | Add TypeTransformer to stream companies |
0.1.30 | 2023-01-27 | 22010 | Set AvailabilityStrategy for streams explicitly to None |
0.1.29 | 2022-10-31 | 18681 | Define correct version for airbyte-cdk~=0.2 |
0.1.28 | 2022-10-20 | 18216 | Use airbyte-cdk~=0.2.0 with SQLite caching |
0.1.27 | 2022-08-28 | 17326 | Migrate to per-stream states. |
0.1.26 | 2022-08-18 | 16540 | Fix JSON schema |
0.1.25 | 2022-08-18 | 15681 | Update Intercom API to v 2.5 |
0.1.24 | 2022-07-21 | 14924 | Remove additionalProperties field from schemas |
0.1.23 | 2022-07-19 | 14830 | Added checkpoint_interval for Incremental streams |
0.1.22 | 2022-07-09 | 14554 | Fixed conversation_parts stream schema definition |
0.1.21 | 2022-07-05 | 14403 | Refactored Conversations , Conversation Parts , Company Segments to increase performance |
0.1.20 | 2022-06-24 | 14099 | Extended Contacts stream schema with sms_consent ,unsubscribe_from_sms properties |
0.1.19 | 2022-05-25 | 13204 | Fixed conversation_parts stream schema definition |
0.1.18 | 2022-05-04 | 12482 | Update input configuration copy |
0.1.17 | 2022-04-29 | 12374 | Fixed filtering of conversation_parts |
0.1.16 | 2022-03-23 | 11206 | Added conversation_id field to conversation_part records |
0.1.15 | 2022-03-22 | 11176 | Correct check_connection URL |
0.1.14 | 2022-03-16 | 11208 | Improve 'conversations' incremental sync speed |
0.1.13 | 2022-01-14 | 9513 | Added handling of scroll param when it expired |
0.1.12 | 2021-12-14 | 8429 | Updated fields and descriptions |
0.1.11 | 2021-12-13 | 8685 | Remove time.sleep for rate limit |
0.1.10 | 2021-12-10 | 8637 | Fix 'conversations' order and sorting. Correction of the companies stream |
0.1.9 | 2021-12-03 | 8395 | Fix backoff of 'companies' stream |
0.1.8 | 2021-11-09 | 7060 | Added oauth support |
0.1.7 | 2021-11-08 | 7499 | Remove base-python dependencies |
0.1.6 | 2021-10-07 | 6879 | Corrected pagination for contacts |
0.1.5 | 2021-09-28 | 6082 | Corrected android_last_seen_at field data type in schemas |
0.1.4 | 2021-09-20 | 6087 | Corrected updated_at field data type in schemas |
0.1.3 | 2021-09-08 | 5908 | Corrected timestamp and arrays in schemas |
0.1.2 | 2021-08-19 | 5531 | Corrected pagination |
0.1.1 | 2021-07-31 | 5123 | Corrected rate limit |
0.1.0 | 2021-07-19 | 4676 | Release Intercom CDK Connector |