Skip to content

Integrations

Klaviyo

Set up Klaviyo OAuth for email marketing, SMS, and customer data

Connect the application’s users to Klaviyo for email marketing, SMS, and customer data.

PropertyValue
Provider IDklaviyo
CategoryMarketing
PKCERequired (S256)
Token refreshAutomatic
Redirect URIShown in Developer Portal

Go to Klaviyo Manage Apps

Sign in to Klaviyo as an owner, admin, or manager and open Settings > Manage Apps.

Create an app

Click Create App and enter the app name.

Configure the redirect URL

Add the Alter callback URL (from the Developer Portal) to the app’s redirect URL allowlist.

Set scopes

Set the app’s scopes as a space-separated list. The scopes requested at authorization time must be part of the app’s configured scope set — scopes not configured on the app are ignored.

Get credentials

Copy the Client ID and Client Secret.

Open the Developer Portal

Go to portal.alterauth.com and navigate to the application.

Add Klaviyo provider

Go to OAuth Providers > Add Provider > Klaviyo.

Enter credentials

  • Client ID: Paste the Klaviyo Client ID
  • Client Secret: Paste the Klaviyo Client Secret

Select scopes

Choose the scopes the application needs. accounts:read is required and selected by default.

Save

Click Save. The provider is now active.

accounts:read is required and selected by default.

ScopeDescription
accounts:readRead account information such as the account ID and name
brands:readRead the account’s brands
brands:writeCreate, update, and delete brands
campaigns:readRead campaigns and campaign performance data
campaigns:writeCreate and update campaigns
catalogs:readRead catalog items, categories, and variants
catalogs:writeCreate and update catalog items, categories, and variants
conversations:readRead conversations
conversations:writeCreate and update conversations
coupons:readRead coupons
coupons:writeCreate and update coupons
custom-objects:readRead custom objects and their records
custom-objects:writeCreate, update, and delete custom objects and their records
coupon-codes:readRead coupon codes
coupon-codes:writeCreate and update coupon codes
data-privacy:readRead data privacy requests
data-privacy:writeCreate data privacy deletion requests
events:readRead events and event metrics
events:writeCreate events
flows:readRead flows and flow performance data
flows:writeCreate and update flows
forms:readRead forms and form performance data
forms:writeCreate, update, and delete sign-up forms
images:readRead images
images:writeUpload and update images
lists:readRead lists and list memberships
lists:writeCreate and update lists and list memberships
metrics:readRead metrics and metric aggregates
metrics:writeCreate and update metrics
profiles:readRead profiles, profile properties, and consent status
profiles:writeCreate and update profiles and suppress or subscribe profiles
push-tokens:readRead push tokens
push-tokens:writeCreate and update push tokens
reviews:readRead product reviews
reviews:writeUpdate reviews
segments:readRead segments and segment memberships
segments:writeCreate and update segments
sender-config:readRead sending domains and sender settings
sender-config:writeCreate, update, and delete sending domains and sender settings
subscriptions:readRead subscription status
subscriptions:writeSubscribe and unsubscribe profiles
tags:readRead tags and tag groups
tags:writeCreate and update tags and tag groups
templates:readRead email templates
templates:writeCreate, update, and delete templates
tracking-settings:readRead tracking settings
tracking-settings:writeUpdate tracking settings
translations:readRead content translations
translations:writeCreate, update, and delete content translations
usage:readRead account usage data
web-feeds:readRead web feeds
web-feeds:writeCreate, update, and delete web feeds
webhooks:readRead webhook subscriptions
webhooks:writeCreate and update webhook subscriptions
  • Klaviyo requires PKCE (S256) for all OAuth clients, including confidential ones. Alter Vault handles PKCE automatically.
  • Tokens grant access to the Klaviyo account, not an individual user. Only owner, admin, and manager roles can authorize apps.
  • Access tokens expire after 1 hour. The refresh token persists until the app is uninstalled, revoked, or unused for 90 days.
  • Request the least permissive scope set — Klaviyo rejects Marketplace listings that request more permissions than necessary.
  • See the Klaviyo OAuth documentation for more details.

Alter policy rules can target these attested operations and families for operation-level and parameter-aware controls.

Operation IDFamiliesMethodProvider pathNotes
assign_template_to_campaign_messagesendPOST/api/campaign-message-assign-template—
cancel_campaign_senddelete, sendPATCH/api/campaign-send-jobs/{id}—
clone_campaignsendPOST/api/campaign-clonealso accepts create_campaign_clone
clone_campaign_audiencesendPOST/api/campaign-audience-clone—
clone_campaign_messagesendPOST/api/campaign-message-clone—
create_campaignsendPOST/api/campaigns—
create_campaign_audiencesendPOST/api/campaign-audiences—
create_campaign_messagesendPOST/api/campaign-messages—
create_campaign_variationsendPOST/api/campaign-variations—
create_flow_actionsendPOST/api/flow-actions—
create_template_preview_send_jobsendPOST/api/template-preview-send-jobs—
publish_formsend, writePOST/api/form-publish-jobs—
schedule_campaign_messagesendPOST/api/campaign-message-schedule—
send_campaignsendPOST/api/campaign-send-jobs—
update_campaignsendPATCH/api/campaigns/{id}—
update_campaign_audiencesendPATCH/api/campaign-audiences/{id}—
update_campaign_messagesendPATCH/api/campaign-messages/{id}—
update_campaign_message_scheduledelete, sendPATCH/api/campaign-message-schedule/{id}—
update_campaign_variationsendPATCH/api/campaign-variations/{id}—
update_image_for_campaign_messagesendPATCH/api/campaign-messages/{id}/relationships/image—
bulk_create_coupon_codespaymentPOST/api/coupon-code-bulk-create-jobs—
create_couponpaymentPOST/api/coupons—
create_coupon_codepaymentPOST/api/coupon-codes—
delete_coupondelete, paymentDELETE/api/coupons/{id}—
delete_coupon_codedelete, paymentDELETE/api/coupon-codes/{id}—
update_couponpaymentPATCH/api/coupons/{id}—
update_coupon_codepaymentPATCH/api/coupon-codes/{id}—
delete_brand_buttondeleteDELETE/api/brand-buttons/{id}—
delete_brand_colordeleteDELETE/api/brand-colors/{id}—
delete_brand_logodeleteDELETE/api/brand-logos/{id}—
delete_brand_social_groupdeleteDELETE/api/brand-social-groups/{id}—
delete_campaigndeleteDELETE/api/campaigns/{id}—
delete_campaign_audiencedeleteDELETE/api/campaign-audiences/{id}—
delete_campaign_messagedeleteDELETE/api/campaign-messages/{id}—
delete_campaign_variationdeleteDELETE/api/campaign-variations/{id}—
delete_catalog_categorydeleteDELETE/api/catalog-categories/{id}—
delete_catalog_itemdeleteDELETE/api/catalog-items/{id}—
delete_catalog_variantdeleteDELETE/api/catalog-variants/{id}—
delete_custom_metricdeleteDELETE/api/custom-metrics/{id}—
delete_data_sourcedeleteDELETE/api/data-sources/{id}—
delete_flowdeleteDELETE/api/flows/{id}—
delete_flow_actiondeleteDELETE/api/flow-actions/{id}—
delete_formdeleteDELETE/api/forms/{id}—
delete_listdeleteDELETE/api/lists/{id}—
delete_translationdeleteDELETE/api/translations/{id}—
create_client_push_tokenadmin, writePOST/client/push-tokens—
create_push_tokenadmin, writePOST/api/push-tokens—
create_tag_groupadmin, writePOST/api/tag-groups—
create_text_messaging_configurationadmin, writePOST/api/text-messaging-configurations—
create_text_messaging_senderadmin, writePOST/api/text-messaging-senders—
create_text_messaging_sender_registrationadmin, writePOST/api/text-messaging-sender-registrations—
create_webhookadmin, writePOST/api/webhooks—
update_tag_groupadmin, writePATCH/api/tag-groups/{id}—
add_profiles_to_listwritePOST/api/lists/{id}/relationships/profiles—
bulk_create_catalog_categorieswritePOST/api/catalog-category-bulk-create-jobs—
bulk_create_catalog_itemswritePOST/api/catalog-item-bulk-create-jobs—
bulk_create_catalog_variantswritePOST/api/catalog-variant-bulk-create-jobs—
bulk_create_client_eventswritePOST/client/event-bulk-create—
bulk_create_data_source_recordswritePOST/api/data-source-record-bulk-create-jobs—
bulk_create_eventswritePOST/api/event-bulk-create-jobs—
clone_universal_contentwritePOST/api/template-universal-content-clone—
create_brand_buttonwritePOST/api/brand-buttons—
create_brand_colorwritePOST/api/brand-colors—
create_brand_logowritePOST/api/brand-logos—
create_brand_social_groupwritePOST/api/brand-social-groups—
create_template_conversion_jobwritePOST/api/template-conversion-jobs—
create_translationwritePOST/api/translations—
unpublish_formwritePOST/api/form-unpublish-jobs—
update_brand_buttonwritePATCH/api/brand-buttons/{id}—
update_brand_colorwritePATCH/api/brand-colors/{id}—
update_brand_email_defaultwritePATCH/api/brand-email-defaults/{id}—
update_brand_logowritePATCH/api/brand-logos/{id}—
update_brand_social_groupwritePATCH/api/brand-social-groups/{id}—
update_brand_voicewritePATCH/api/brand-voice/{id}—
update_formwritePATCH/api/forms/{id}—
update_profilewritePATCH/api/profiles/{id}—
update_translationwritePATCH/api/translations/{id}—
get_action_for_flow_messagereadGET/api/flow-messages/{id}/flow-action—
get_action_id_for_flow_messagereadGET/api/flow-messages/{id}/relationships/flow-action—
get_bulk_create_catalog_items_jobreadGET/api/catalog-item-bulk-create-jobs/{job_id}—
get_bulk_create_categories_jobreadGET/api/catalog-category-bulk-create-jobs/{job_id}—
get_bulk_create_coupon_codes_jobreadGET/api/coupon-code-bulk-create-jobs/{job_id}—
get_bulk_create_variants_jobreadGET/api/catalog-variant-bulk-create-jobs/{job_id}—

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.