io.tt SDK Docs
GuidesCRMKlaviyo

Klaviyo Setup

This guide is for brand managers connecting a Klaviyo account to io.tt. Once setup is complete, every experience signup will create or update a Klaviyo profile automatically. Opted-in participants will be subscribed to the list configured for each experience.

For developer documentation on the SDK fields and Klaviyo property mapping, see the Klaviyo Developer Guide.


Overview

The Klaviyo integration is configured at two levels:

LevelWhat's configuredWho sets it
OrganisationKlaviyo API keyio.tt account manager (once per brand)
ExperienceKlaviyo list IDio.tt account manager (once per experience)

No dashboard access is required from your side — you provide the credentials and list IDs to your io.tt account manager, who configures the integration on your behalf.


What You Need to Provide

1. Klaviyo API Key (once per organisation)

The Klaviyo API key is set once at the organisation level and applies to all experiences for that brand.

What to provideWhere to find it in Klaviyo
Private API KeyKlaviyo → Settings → API Keys → Create Private API Key

When creating the API key, ensure it has the following scopes enabled:

ScopeRequired for
Profiles (read + write)Creating and updating profiles
Lists (read + write)Subscribing profiles to lists
Subscriptions (write)Managing email subscriptions

Use a dedicated API key for io.tt rather than a shared one. This makes it easy to revoke access without affecting other integrations.

2. List ID (once per experience)

Each experience is linked to a specific Klaviyo list. Opted-in participants are subscribed to this list on signup.

What to provideWhere to find it in Klaviyo
List IDKlaviyo → Lists & Segments → select the list → Settings → List ID (e.g. XaBcD1)

You will need one list ID per experience. It is common to:

  • Use a single master marketing list across all experiences for the brand
  • Use separate lists per experience type (e.g. one for competitions, one for loyalty)
  • Use separate lists per campaign for more granular segmentation

Discuss the list structure with your marketing team before setup — it determines how you segment and reach participants in Klaviyo.


What Happens After Setup

Once the integration is live for an experience:

  • Every signup creates or updates a Klaviyo profile using email as the unique identifier
  • Participants who granted marketingConsent: true are subscribed to the experience's configured list
  • Participants who did not grant consent have a profile created but are not subscribed to any list — they will appear in your Klaviyo profiles but not in list-based segments
  • io.tt context data (experience name, experience type, brand name) is written to custom profile properties and available for segmentation

No action is required per signup — once the integration is configured, all experience registrations flow to Klaviyo automatically.


Profile Identity and Deduplication

Klaviyo deduplicates profiles on email. If a participant registers again — either through the same experience or a different one — their existing Klaviyo profile is updated rather than a new one created. Their io.tt context properties (experience name, type) will reflect the most recent registration.

io.tt also sets externalId on the Klaviyo profile using the io.tt participant ID, which allows cross-referencing between platforms.


Checklist

Before going live, confirm the following:

  • Klaviyo Private API Key created with Profiles, Lists, and Subscriptions scopes
  • API key shared with io.tt account manager
  • Klaviyo list(s) created for the experience(s)
  • List ID(s) shared with io.tt account manager, mapped to the correct experience(s)
  • io.tt account manager has confirmed the integration is active

On this page