Collections
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