Send Klaviyo Data to Insider One

Prev Next

You cannot make any changes to External Platform Integrations without having either an Administrator or an Editor with PII access in InOne. Refer to User Roles for further information.

This guide shows how to set up the Klaviyo integration in InOne. After setup, InOne syncs Klaviyo profiles, events, and subscription changes to Insider One on separate schedules.

The table below summarizes the key capabilities and behavior of the integration.

Capability

Details

Auth method

API Key

Data flow

One-way: Klaviyo to Insider One

Sync behavior

Incremental for all three sync types

Sync modes

Profile Sync, Event Sync, Subscription Profile Sync (run independently)

Scheduling

Three separate schedules, one per sync type

Requirements

Ensure you have the required credentials before setting up the integration.

You must have a Klaviyo API Key. This is a private API key generated in Klaviyo.

To obtain it, navigate to Klaviyo > Account > Settings > API Keys. Create a Full Access or scoped key with Profiles (Read) and Events (Read) permissions.

This integration does not require OAuth. The API key is stored securely and is not exposed after setup.

Step 1: Create a new integration

  1. Navigate to Components > Integrations > External Integrations for the setup

  2. Select the Klaviyo platform to view methods in the Klaviyo category. 

  3. Give the integration a unique name and click Save.

Step 2: Enter your Klaviyo API Key

Navigate to Klaviyo to enter your Klaviyo private API key. Must have at a minimum Profiles (Read) and Events (Read) permissions.

Click Next to proceed.

Step 3: Identifier Mapping

Map Klaviyo profile fields to Insider One identifier types. At least one mapping is required.

Field

Description

Identifier Type

The Insider One identifier type: Email Address, Phone Number, UUID, or any custom identifier configured for your account.

Source Field

The Klaviyo profile field to use as the identifier value (e.g. email, phone_number, id).

Click + Add to Profile Identifier Mapping to add rows. Click Next when done.

Step 4: Attribute Mapping

Map Klaviyo profile fields to Insider One user profile attributes.

  • Column Mappings: Each row maps a Klaviyo profile property to an Insider One attribute. The field value is written to the matched user profile on each sync.

  • Fixed Value Mappings: Sets a static value on every synced profile, regardless of what Klaviyo contains. Common use: set data_source to klaviyo.

Click Next when done.

Step 5: Event Mapping

Map Klaviyo metric names to Insider One event types.

Field

Description

Klaviyo Metric Name

The name of the Klaviyo metric (event type) to map, e.g. Placed Order, Clicked Email.

Insider One Event Type

The corresponding Insider One event type to fire when this Klaviyo metric is received.

Add one row per Klaviyo metric you want to sync. Metrics not listed here are ignored.

Click Next when done.

Step 6: Event Parameter Mapping

Map Klaviyo event properties to Insider One event parameters for the events configured in Step 5.

  • Column Mappings: Each row maps a Klaviyo event property to an Insider One event parameter (e.g. $value to order_value).

  • Fixed Value Mappings: Sets a static parameter value on every synced event.

Click Next when done.

Step 7: Additional Settings

This page configures schedules for all three sync flows and advanced options.

Schedules

Field

Description

Profile Sync Schedule

Cron expression (UTC) for how often Klaviyo profiles are synced.

Event Sync Schedule

Cron expression (UTC) for how often Klaviyo events are synced.

Subscription Sync Schedule

Cron expression (UTC) for how often subscription-change events are processed.

Sync Behavior

Field

Description

Initial Sync Lookback Hours

On the very first run, how many hours back to look for profiles and events. Set to 0 for a full historical sync from the beginning of your Klaviyo account.

Max Pages

Safety limit on the number of pages fetched per sync run. Each page contains up to 100 profiles.

Advanced

Field

Description

Skip Hook

Suppresses Architect journey triggers for all users upserted in this run.

Phone Number Settings

Normalizes phone values to E.164 format and optionally adds a country code.

Identifier Settings

Controls behavior when an identifier value fails validation.

Click Finish to save and activate the integration.

How do the three sync flows work?

Flow

What it does

Sync method

Profile Sync

Fetches Klaviyo profiles updated since the last run. Updates Insider One user profiles with mapped attributes.

Incremental: filters by updated in your Klaviyo Profile.

Event Sync

Fetches Klaviyo metric events (e.g., Placed Order, Clicked Email) created since the last run. Fires matching Insider One events.

Incremental: filters by event creation time

Subscription Profile Sync

Detects subscription-status changes (opt-in, opt-out), reloads the affected profiles, and upserts them to Insider One.

Incremental: tracks subscription-change events

All three flows run independently on their own schedules. A failure in one flow does not block the others.

Troubleshooting

Symptom

What to check

API key rejected

Confirm the key is a private API key, not a public key. Verify it has Profiles and Events read permissions.

Profiles not syncing

Check the Profile Sync Schedule and confirm the integration is active. On the first run, only profiles updated within the last Initial Sync Lookback Hours are fetched.

Events not syncing

Verify the Klaviyo metric name in Event Mapping matches exactly (case-sensitive) the metric name in Klaviyo.

Profiles missing attributes

Confirm the Klaviyo property is added in Attribute Mapping and exists on the profile in Klaviyo. Custom properties must be referenced by their exact key.

Sync pagination cut off

If profile pages exceed Max Pages, the sync stops early to prevent replay loops. Increase Max Pages or run syncs more frequently to reduce per-run volume.

Subscription changes are not reflecting

Confirm the Subscription Sync Schedule is active. This flow re-fetches the full profile for any contact whose subscription status changed, then upserts the updated profile.

Frequently Asked Questions

Q: Does the integration fetch all Klaviyo profiles on each run or only changes?
A: Only profiles updated since the last sync run are fetched. The integration is fully incremental using Klaviyo's greater-than(updated, <timestamp>) filter. The first run uses the Initial Sync Lookback Hours setting to limit scope.

Q: Do all three sync flows need to be active?
A: No. If you only need profile data, you can leave Event Mapping empty, and the event flows will produce no output. All three flows run on their own schedules regardless; unused flows simply produce no records.

Q: What happens if a Klaviyo profile has no email or phone?
A: The profile is skipped if no valid identifier can be resolved from the mapped fields. Configure Identifier Settings to choose whether to skip just the identifier or the entire record.

Q: Can duplicate events be created in Insider One?
A: The integration uses deduplication based on timestamp and record IDs at the sync boundary. Overlapping sync windows (e.g., very frequent schedules) include a short overlap period; records already processed in the previous run are deduplicated before upsert.

Q: Will syncing profiles trigger Architect journeys?
A: By default, yes. Enable Skip Hook to suppress journey triggers. Note that Skip Hook is an org-level setting and must be enabled by the Insider One team.

Q: How do I sync all historical Klaviyo data?
A: Set Initial Sync Lookback Hours to 0 on the first run. This fetches all profiles from the beginning of your Klaviyo account history. Switch it back to a smaller value (e.g. 24) after the backfill completes, to keep subsequent runs efficient.