Iterable
This connector captures data from Iterable into Flow collections.
It is available for use in the Flow web application. For local development or open-source workflows, ghcr.io/estuary/source-iterable-native:dev provides the latest version of the connector as a Docker image. You can also follow the link in your browser to see past image versions.
Supported data resources
The following data resources are supported:
| Resource | Replication Mode |
|---|---|
| campaign_metrics | Incremental |
| campaigns | Incremental |
| channels | Full Refresh |
| events | Incremental |
| list_users | Full Refresh |
| lists | Full Refresh |
| message_types | Full Refresh |
| metadata_tables | Full Refresh |
| templates | Full Refresh |
| users | Incremental |
By default, each resource is mapped to a Flow collection through a separate binding.
Prerequisites
To set up the Iterable source connector, you'll need an Iterable server-side API key with standard permissions.
Configuration
You configure connectors either in the Flow web app, or by directly editing the catalog specification file. See connectors to learn more about using connectors. The values and specification sample below provide configuration details specific to the Iterable source connector.
Properties
Endpoint
| Property | Title | Description | Type | Required/Default |
|---|---|---|---|---|
/credentials/access_token | API Key | The Iterable API key. | string | Required |
/credentials/credentials_title | Authentication Method | Name of the credentials set. Set to Private App Credentials. | string | Required |
/project_type | Project Type | The type of Iterable project, which determines how users are uniquely identified. One of Email-based, UserID-based, or Hybrid. | string | Required |
/start_date | Start Date | UTC date and time in the format YYYY-MM-DDTHH:MM:SSZ. Any data generated before this date will not be replicated. If left blank, the start date will be set to 30 days before the present date. | string | |
/advanced/window_size | Window Size | Date window size for export jobs in ISO 8601 format. ex: P30D means 30 days, PT6H means 6 hours. If you have a significant amount of events or users data to backfill, smaller window sizes will allow the connector to checkpoint its progress more frequently. | string | PT12H |
Bindings
| Property | Title | Description | Type | Required/Default |
|---|---|---|---|---|
/name | Data resource | Name of the data resource. | string | Required |
/interval | Interval | Interval between data syncs. | string |
Sample
captures:
${PREFIX}/${CAPTURE_NAME}:
endpoint:
connector:
image: ghcr.io/estuary/source-iterable-native:dev
config:
advanced:
window_size: PT2H
credentials:
credentials_title: Private App Credentials
access_token: <secret>
project_type: Email-based
start_date: 2024-01-01T00:00:00Z
bindings:
- resource:
name: campaigns
target: ${PREFIX}/campaigns
- resource:
name: events
target: ${PREFIX}/events
{...}
Project Types and User Identification
The configured project type determines how the users stream identifies records:
| Project Type | Primary Key |
|---|---|
| Email-based | email |
| UserID-based | itblUserId |
| Hybrid | itblUserId |
See Iterable's documentation for more information.
Events Synthetic ID
The events stream lacks a natural unique identifier from Iterable. The connector computes a synthetic ID _estuary_id by hashing createdAt, email, itblUserId, campaignId, eventName, and eventType to deduplicate events.