LoadersIntercom

Intercom Loader

The Intercom loader pulls customer messaging, contact, and conversation data from your Intercom workspace into your data warehouse. It uses Intercom’s REST API with scroll-based pagination and supports incremental sync via the updated_at timestamp.

Prerequisites

  • An Intercom workspace (Starter, Pro, or Premium plan)
  • An Intercom user with Admin permissions
  • A connected Warehouse (target warehouse) with write permissions on the target schema

Authentication

The Intercom loader uses OAuth 2.0 for authentication.

OAuth 2.0 Setup

  1. In SignalSmith, click Add Loader and select Intercom
  2. Click Connect with Intercom
  3. You’ll be redirected to the Intercom authorization page
  4. Select the workspace you want to connect
  5. Review the requested permissions and click Authorize
  6. You’ll be redirected back to SignalSmith with the connection established

SignalSmith requests the following permissions:

PermissionPurpose
Read users and companiesExtract contact and company records
Read conversationsExtract conversation and message data
Read adminsExtract admin/agent user records
Read tags and segmentsExtract tag and segment definitions

SignalSmith automatically handles token refresh. If the OAuth app is uninstalled from your Intercom workspace, you’ll need to re-authenticate.

Available Objects

ObjectAPI NameDescriptionDefault Sync Mode
ContactscontactsUsers and leads in your Intercom workspace (unified contact model)Incremental
CompaniescompaniesOrganizations that contacts belong toIncremental
ConversationsconversationsSupport conversations including state, assignee, and tagsIncremental
Conversation Partsconversation_partsIndividual messages, notes, and actions within conversationsIncremental
AdminsadminsIntercom team members (agents, admins)Full Refresh
TagstagsTag definitions applied to contacts, companies, and conversationsFull Refresh
SegmentssegmentsUser and company segment definitionsFull Refresh
TeamsteamsTeam definitions for conversation routingFull Refresh
Data Attributesdata_attributesCustom attribute definitions for contacts and companiesFull Refresh
ArticlesarticlesHelp center article content and metadataIncremental

Contact Model

Intercom uses a unified contact model where both “Users” (identified contacts) and “Leads” (anonymous or pre-identified contacts) are stored as contacts. The role field distinguishes between user and lead. Custom attributes defined in your Intercom workspace are extracted as additional columns.

Conversation Parts

Conversation parts represent the individual messages, notes, assignment changes, and state transitions within a conversation. They are extracted as a separate table with a foreign key to the parent conversation. This provides the full conversation thread for analysis.

Configuration

SettingDescriptionDefault
ObjectsList of objects to sync— (you choose during setup)
Sync ModeFull Refresh or Incremental (per object)Incremental
Cursor FieldField used for incremental syncupdated_at
Primary KeyField(s) that uniquely identify a recordid
Target SchemaWarehouse schema for Intercom tables— (required)
Table PrefixOptional prefix for table namesintercom_
ScheduleSync frequencyHourly

Scheduling Notes

  • Rate limits: Intercom enforces rate limits based on your plan. Starter plans allow 500 requests per minute; Pro and Premium plans allow higher limits. SignalSmith handles rate limiting with automatic backoff.
  • Scroll API: For large contact and company datasets, SignalSmith uses Intercom’s Scroll API, which provides efficient bulk data extraction without consuming standard rate limit quota.
  • Conversation parts volume: Conversation parts can be high-volume in active support workspaces. Consider syncing conversations without parts if you only need conversation-level metadata.
  • Contact deduplication: Intercom may have duplicate contacts (especially leads). The loader deduplicates by id in the warehouse, but the source data may still reflect duplicates in Intercom.
  • Archived contacts: By default, the loader does not include archived contacts. Enable “Include Archived” if you need historical contact data for analysis.

Schema Mapping

Intercom field types are mapped to warehouse-compatible types:

Intercom TypeWarehouse TypeNotes
stringVARCHAR
integerBIGINT
floatDOUBLE
booleanBOOLEAN
dateTIMESTAMPUnix epoch converted to UTC timestamp
objectJSON / VARCHARNested structures like location, social_profiles
listJSON / VARCHARArrays like tags, segments

Troubleshooting

IssueSolution
”401 Unauthorized”Re-authenticate by clicking “Reconnect” on the loader detail page
”403 Forbidden” on conversationsEnsure the OAuth app has “Read conversations” permission
”429 Rate limit exceeded”SignalSmith handles rate limits automatically. Reduce sync frequency if persistent
Missing custom attributesCustom attributes must be defined in Intercom before they appear in the schema. New attributes are picked up on the next schema discovery
Contacts showing as “lead”Intercom’s unified contact model includes both users and leads. Filter by role = 'user' in your models if needed
Conversation parts table is very largeConsider syncing only conversations (without parts) or reducing the lookback window
OAuth app revokedRe-authenticate from the loader settings page

Next Steps

  • Create a model to transform your raw Intercom data
  • Combine messaging data with CRM data for a unified customer view
  • Build audiences based on conversation activity