Klaviyo
5 min
connect your klaviyo marketing data to chord klaviyo is the email, sms, and push platform that powers segmentation, lifecycle flows, and campaign sends chord ingests campaign, flow, event, list, segment, and profile data from klaviyo so you can model engagement, deliverability, and attribution alongside the rest of your stack what chord ingests from klaviyo chord pulls 11 datasets from your klaviyo account each dataset becomes its own table in your chord snowflake schema flows email and sms automation flows name, status, trigger type, creation date metrics every metric tracked in klaviyo (native and integration sourced) name, integration source, creation date email campaigns one off email sends send options, tracking config, schedule, audience sms campaigns one off sms sends send options, tracking config, schedule, audience mobile push campaigns push notification sends send options, tracking config, schedule lists static contact lists name, opt in process, profile count, creation date segments dynamic audience segments name, profile count, creation and update timestamps events every customer event landed in klaviyo (native and integration sourced) event properties, metric, profile, timestamp profiles customer profile records email, phone, identifiers, properties, timestamps list profiles bridge table mapping profiles to lists with joined at timestamps segment profiles bridge table mapping profiles to segments heads up the three profile datasets (profiles, list profiles, segment profiles) are off by default on accounts with millions of profiles they fan out heavily and can slow your tenant's overall ingestion if you need any of them, ask your chord contact to enable them per resource generate a klaviyo private api key you'll need a klaviyo private api key with the seven read scopes listed below the key is created in klaviyo account settings and pasted into chord hub heads up only klaviyo account owners and users with the "manage api keys" permission can create private api keys if your role doesn't include it, ask an admin on the account to either generate the key for you or grant your user the permission first log in to your klaviyo account click your account name in the bottom left corner of the navigation, then click settings click api keys click create private api key name the key something recognizable, e g chord data sync choose custom for the scopes panel and set each of the seven required scopes below to read (leave everything else as no access ) click create copy the key value, klaviyo only shows it once and there is no way to reveal it later required scopes chord needs all seven of these read scopes for the connector to pull every dataset cleanly make sure each one is set to read in the custom scopes panel before saving the key flows (read only) metrics (read only) campaigns (read only) lists (read only) segments (read only) profiles (read only) events (read only) connect the key in chord open chord hub and go to data sources → add source pick klaviyo from the data source list paste the private api key you just copied into the api key field click save — chord makes a test call against the klaviyo profiles endpoint to confirm the key works the first sync kicks off automatically; subsequent syncs run on your tenant's standard ingestion schedule troubleshooting what does the validate step actually check? chord makes a small read against https //a klaviyo com/api/profiles/ and confirms the key returns a 200 response with no permission error it does not pull or store any records — that happens on the first scheduled sync after you save the credential the validate step failed with a scope error what now? klaviyo private keys are not editable after creation — to change scopes you have to make a new one go back to account → settings → api keys in klaviyo, click create private api key with all seven read scopes enabled, paste the new key into the same chord credential entry, and test the connection once again then delete the old key in klaviyo do klaviyo private api keys expire? no keys stay valid until someone with manage api keys permission manually revokes them in account → settings → api keys if a previously working key suddenly fails, check that page first to confirm it's still listed and active how do i rotate the key? generate a new private api key in klaviyo with the same seven read scopes, paste it into the same chord credential entry, and save chord uses the new key on the next scheduled sync once you've confirmed the new key validates and the next sync runs cleanly, delete the old key from klaviyo why don't i see profiles or membership data in copilot? the profiles, list profiles, and segment profiles datasets are disabled by default on chord managed klaviyo connectors if your use case needs any of them (cohort modeling, list level reporting, segment membership joins), ask your chord contact to enable them and the next sync will start populating those tables need help? if you hit a scope or permission issue you can't resolve, reach out to help\@chord co mailto\ help\@chord co with the exact error message we'll trace the request and tell you which scope is missing