Connect Klaviyo to Rig
Create one read-only private API key in Klaviyo and paste it into Rig. Profiles, events, campaigns, flows and segments then land in your warehouse, where you can join email performance to actual orders rather than to Klaviyo's own attribution.
- Requirements
- Access to Klaviyo account settings
- Time required
- 5 mins
Before you start
- Access to
Account→Settings→API Keysin Klaviyo. - By the end you will have one value to paste into Rig: a private API key beginning
pk_.
Create a private API key
- In Klaviyo, go to
Account→Settings→API Keys. - Click
Create Private API Keyand name it something you will recognise later, such as "Rig". - Grant the read scopes in the next section.
- Create the key and copy the
pk_value. Klaviyo shows it once.
Private, not public
Klaviyo also issues a public API key, the six-character site ID used in tracking snippets. That is not this. Rig needs the private key, which starts with pk_.
Grant the read scopes
Klaviyo presents scopes as per-object toggles rather than a list you can paste, so set each of these to Read. Rig never writes, so no write scope is needed anywhere.
| Scope | What it unlocks in Rig |
|---|---|
| Profiles | Subscribers and their attributes, including custom properties |
| Events | Opens, clicks, orders and every other tracked event |
| Lists | Lists and who is on them |
| Segments | Segments and their membership |
| Campaigns | Campaign sends and their performance |
| Flows | Automated flows |
| Metrics | The metric definitions events are recorded against |
| Templates | Email templates |
| Catalogs | Catalog items, for product-level analysis |
A missing scope does not error, it just returns nothing
Rig syncs exactly what the key can read. Leave one off and that stream quietly stays empty, which usually surfaces weeks later as "why is there no flow data in Rig?". Grant all nine up front.
Connect it in Rig
- In Rig, open
Connectionsand go toSources & actions. - Search for Klaviyo and open the card.
- Private API key: paste the
pk_value. - Click
Test, thenSync.
What Rig pulls in
Klaviyo lands in its own klaviyo schema:
- Profiles and events
- Lists and segments
- Campaigns and flows
- Metrics and catalog items
Good to know
- Custom properties land as a single JSON column. Klaviyo lets every brand define its own profile and event properties, and unpacking them into columns produces dozens of sparse child tables that break whenever a new property appears. Rig keeps them intact in one column instead, which stays queryable and does not fall over when your team adds a survey field.
- The first event sync is the long one. Event history is typically the largest table a brand has, and Klaviyo's rate limit depends on your plan, roughly 60 requests a minute on smaller plans and several hundred on larger ones. Expect the first run to take hours rather than minutes, and to be much quicker after that.
- Metrics and catalog items refresh in full on every sync, because Klaviyo offers no way to filter them by date. They are small, so this is cheap.
Troubleshooting
- Authentication fails immediately: check you pasted the private key and not the public site ID, and that you copied the whole
pk_string. - One stream is empty and the rest are fine: that scope was not granted. Edit the key in Klaviyo, add the missing read scope, and sync again. The key itself does not change.
- The sync is slow: this is usually your plan's rate limit rather than a problem. Larger Klaviyo plans allow a higher request rate.