Skip to main content

Overview

Klaviyo is an email and SMS marketing automation platform used for targeted campaigns, customer segmentation, and marketing analytics. This connector extracts campaign metadata, automation flows, event data, and metric definitions from the Klaviyo API.

Configuration

1

Add account access

To connect Klaviyo to Nekt, you need a Private API Key with read access.
FieldDescription
Private API KeyYour Klaviyo private API key. Found in Settings > API Keys in your Klaviyo account. The key must have read scopes for campaigns, events, flows, and metrics.
Start Date(Optional) Start date for incremental data sync in ISO 8601 format (e.g., 2024-01-01T00:00:00Z). Only applies to streams that support incremental replication.
To create an API key, go to your Klaviyo account Settings > API Keys > Create Private API Key. Grant Read access to Campaigns, Events, Flows, and Metrics.
2

Select streams

Choose which streams you want to sync. Available streams are listed in the Streams and Fields section below.
3

Configure data streams

For each selected stream, configure:
  • Layer: Choose the destination layer (e.g., Bronze).
  • Folder: Organize data within the layer.
  • Table name: The table name in your lakehouse.
  • Sync Type: Incremental (recommended) or Full Sync.
4

Configure data source

Set up the source-level configuration:
  • Description: Add a description for this data source.
  • Triggers: Configure sync triggers (schedule or manual).
  • Delta Log Retention Days: Number of days to retain delta log history.
  • Full Sync: Optionally force a full sync on first run.
5

Check your new source

After saving, verify the source appears in your Sources list. Run a manual sync to validate that data flows correctly.

Streams and Fields

Email campaign metadata including status, audiences, scheduling, and tracking configuration. Supports incremental sync via updated_at.
FieldTypeDescription
idstringUnique campaign identifier
namestringCampaign name
statusstringCampaign status (e.g., draft, scheduled, sent)
archivedbooleanWhether the campaign is archived
audiencesstringTarget audience configuration (JSON)
send_optionsstringSend options configuration (JSON)
tracking_optionsstringTracking settings (JSON)
send_strategystringSend strategy configuration (JSON)
created_atdatetimeWhen the campaign was created
scheduled_atdatetimeWhen the campaign is scheduled to send
updated_atdatetimeWhen the campaign was last updated
send_timedatetimeActual send time
Raw event data including email opens, clicks, bounces, purchases, and custom events. Supports incremental sync via datetime. This is the granular data behind Klaviyo’s reporting, enabling custom aggregations downstream.
FieldTypeDescription
idstringUnique event identifier
timestampintegerEvent timestamp (Unix epoch)
event_propertiesstringEvent-specific properties and metadata (JSON)
datetimedatetimeEvent date and time (ISO 8601)
uuidstringEvent UUID
Automation flow definitions including status and trigger configuration. Supports incremental sync via updated.
FieldTypeDescription
idstringUnique flow identifier
namestringFlow name
statusstringFlow status (e.g., draft, manual, live)
archivedbooleanWhether the flow is archived
createddatetimeWhen the flow was created
updateddatetimeWhen the flow was last updated
trigger_typestringWhat triggers the flow (e.g., segment, metric, date)
Metric definitions that describe the types of events tracked in Klaviyo (e.g., “Opened Email”, “Clicked Email”, “Placed Order”). Reference data for joining with events.
FieldTypeDescription
idstringUnique metric identifier
namestringMetric name
createddatetimeWhen the metric was created
updateddatetimeWhen the metric was last updated
integrationstringIntegration details for the metric (JSON)

Implementation Notes

  • Authentication: Uses Klaviyo’s private API key via the Klaviyo-API-Key authorization header.
  • Rate limits: The Klaviyo API enforces rate limits per endpoint. The connector handles rate limiting automatically with backoff.
  • Campaigns filter: The campaigns stream currently syncs email campaigns only. SMS and push campaigns use separate channel filters.
  • Events volume: The events stream can produce a high volume of records. Use the Start Date configuration to limit the initial sync window.
  • JSON fields: Fields like audiences, send_strategy, tracking_options, event_properties, and integration are serialized as JSON strings for maximum flexibility. Parse them downstream as needed.