Skip to main content

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:

ResourceReplication Mode
campaign_metricsIncremental
campaignsIncremental
channelsFull Refresh
eventsIncremental
list_usersFull Refresh
listsFull Refresh
message_typesFull Refresh
metadata_tablesFull Refresh
templatesFull Refresh
usersIncremental

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

PropertyTitleDescriptionTypeRequired/Default
/credentials/access_tokenAPI KeyThe Iterable API key.stringRequired
/credentials/credentials_titleAuthentication MethodName of the credentials set. Set to Private App Credentials.stringRequired
/project_typeProject TypeThe type of Iterable project, which determines how users are uniquely identified. One of Email-based, UserID-based, or Hybrid.stringRequired
/start_dateStart DateUTC 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_sizeWindow SizeDate 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.stringPT12H

Bindings

PropertyTitleDescriptionTypeRequired/Default
/nameData resourceName of the data resource.stringRequired
/intervalIntervalInterval 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 TypePrimary Key
Email-basedemail
UserID-baseditblUserId
HybriditblUserId

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.