Skip to main content

Collections

Setting up Intercom for ELT & CDC

Overview

ELT & CDC uses the API provided by Intercom to sync the data. Intercom API Reference

Requirements

  • You need to authenticate via OAuth2.
  • Click the Authenticate button on the dashboard, sign in to Intercom, and grant access to Integrate.io.

Sync modes

Streams that expose a server-side updated_at filter through the Intercom Search API run in Continuous Sync: Contacts, Conversations, Tickets, and Conversation Parts (which rides the incremental Conversations stream). Companies uses the Intercom Scroll API and the reference collections (Admins, Teams, Tags, Segments, Data Attributes, Articles) run as full-refresh on each sync because their list endpoints do not expose an updated_at filter.

Notes

  • Data Attributes uses a composite primary key of (model, full_name) because standard Intercom attributes have a null id.
  • Tickets serializes ticket_state as an object and admin_assignee_id and team_assignee_id as strings. Conversations uses integer assignee ids.
  • Companies uses the Intercom Scroll API. A scroll cursor expires after about 60 seconds of inactivity. When the cursor expires mid-pagination, Integrate.io restarts the scroll from the beginning (up to 2 restarts by default). Companies is full-refresh with idempotent upsert, so re-emitting from page 1 is safe.

Resyncing tickets after a schema change

If a Tickets table already exists from a run made before the ticket_state, admin_assignee_id, and team_assignee_id types were corrected, the new column types can conflict on load. Drop the destination table and resync to resolve the conflict.
Last modified on July 8, 2026