> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stackone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Klaviyo OAuth 2.0 connector profile – StackOne setup guide

> Set up the OAuth 2.0 connector profile for Klaviyo in StackOne. One-time admin setup required before your users can link Klaviyo accounts via Hub.

<Warning>A Klaviyo Developer or Partner account is required to create OAuth applications.</Warning>

<Panel>
  <div className="not-prose guides-scope-selector" data-guides-scope-selector data-guide-actions-json="[{&#x22;id&#x22;:&#x22;klaviyo_get_accounts&#x22;,&#x22;label&#x22;:&#x22;Get Accounts&#x22;,&#x22;scopes&#x22;:[&#x22;accounts:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_account&#x22;,&#x22;label&#x22;:&#x22;Get Account&#x22;,&#x22;scopes&#x22;:[&#x22;accounts:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_list_campaigns&#x22;,&#x22;label&#x22;:&#x22;List Campaigns&#x22;,&#x22;scopes&#x22;:[&#x22;campaigns:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_campaign&#x22;,&#x22;label&#x22;:&#x22;Get Campaign&#x22;,&#x22;scopes&#x22;:[&#x22;campaigns:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_create_campaign&#x22;,&#x22;label&#x22;:&#x22;Create Campaign&#x22;,&#x22;scopes&#x22;:[&#x22;campaigns:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_update_campaign&#x22;,&#x22;label&#x22;:&#x22;Update Campaign&#x22;,&#x22;scopes&#x22;:[&#x22;campaigns:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_delete_campaign&#x22;,&#x22;label&#x22;:&#x22;Delete Campaign&#x22;,&#x22;scopes&#x22;:[&#x22;campaigns:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_clone_campaign&#x22;,&#x22;label&#x22;:&#x22;Clone Campaign&#x22;,&#x22;scopes&#x22;:[&#x22;campaigns:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_campaign_recipient_estimation&#x22;,&#x22;label&#x22;:&#x22;Get Campaign Recipient Estimation&#x22;,&#x22;scopes&#x22;:[&#x22;campaigns:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_refresh_campaign_recipient_estimation&#x22;,&#x22;label&#x22;:&#x22;Refresh Campaign Recipient Estimation&#x22;,&#x22;scopes&#x22;:[&#x22;campaigns:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_campaign_recipient_estimation_job&#x22;,&#x22;label&#x22;:&#x22;Get Campaign Recipient Estimation Job&#x22;,&#x22;scopes&#x22;:[&#x22;campaigns:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_tags_for_campaign&#x22;,&#x22;label&#x22;:&#x22;Get Tags For Campaign&#x22;,&#x22;scopes&#x22;:[&#x22;campaigns:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_messages_for_campaign&#x22;,&#x22;label&#x22;:&#x22;Get Messages For Campaign&#x22;,&#x22;scopes&#x22;:[&#x22;campaigns:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_campaign_message&#x22;,&#x22;label&#x22;:&#x22;Get Campaign Message&#x22;,&#x22;scopes&#x22;:[&#x22;campaigns:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_update_campaign_message&#x22;,&#x22;label&#x22;:&#x22;Update Campaign Message&#x22;,&#x22;scopes&#x22;:[&#x22;campaigns:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_assign_template_to_campaign_message&#x22;,&#x22;label&#x22;:&#x22;Assign Template To Campaign Message&#x22;,&#x22;scopes&#x22;:[&#x22;campaigns:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_send_campaign&#x22;,&#x22;label&#x22;:&#x22;Send Campaign&#x22;,&#x22;scopes&#x22;:[&#x22;campaigns:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_cancel_campaign_send&#x22;,&#x22;label&#x22;:&#x22;Cancel Campaign Send&#x22;,&#x22;scopes&#x22;:[&#x22;campaigns:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_create_catalog_item&#x22;,&#x22;label&#x22;:&#x22;Create Catalog Item&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_catalog_item&#x22;,&#x22;label&#x22;:&#x22;Get Catalog Item&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_update_catalog_item&#x22;,&#x22;label&#x22;:&#x22;Update Catalog Item&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_delete_catalog_item&#x22;,&#x22;label&#x22;:&#x22;Delete Catalog Item&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_bulk_create_catalog_items&#x22;,&#x22;label&#x22;:&#x22;Bulk Create Catalog Items&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_bulk_update_catalog_items&#x22;,&#x22;label&#x22;:&#x22;Bulk Update Catalog Items&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_bulk_delete_catalog_items&#x22;,&#x22;label&#x22;:&#x22;Bulk Delete Catalog Items&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_list_catalog_categories&#x22;,&#x22;label&#x22;:&#x22;List Catalog Categories&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_create_catalog_category&#x22;,&#x22;label&#x22;:&#x22;Create Catalog Category&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_catalog_category&#x22;,&#x22;label&#x22;:&#x22;Get Catalog Category&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_update_catalog_category&#x22;,&#x22;label&#x22;:&#x22;Update Catalog Category&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_delete_catalog_category&#x22;,&#x22;label&#x22;:&#x22;Delete Catalog Category&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_bulk_create_catalog_categories&#x22;,&#x22;label&#x22;:&#x22;Bulk Create Catalog Categories&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_bulk_update_catalog_categories&#x22;,&#x22;label&#x22;:&#x22;Bulk Update Catalog Categories&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_bulk_delete_catalog_categories&#x22;,&#x22;label&#x22;:&#x22;Bulk Delete Catalog Categories&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_list_catalog_variants&#x22;,&#x22;label&#x22;:&#x22;List Catalog Variants&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_create_catalog_variant&#x22;,&#x22;label&#x22;:&#x22;Create Catalog Variant&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_catalog_variant&#x22;,&#x22;label&#x22;:&#x22;Get Catalog Variant&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_update_catalog_variant&#x22;,&#x22;label&#x22;:&#x22;Update Catalog Variant&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_delete_catalog_variant&#x22;,&#x22;label&#x22;:&#x22;Delete Catalog Variant&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_bulk_create_catalog_variants&#x22;,&#x22;label&#x22;:&#x22;Bulk Create Catalog Variants&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_bulk_update_catalog_variants&#x22;,&#x22;label&#x22;:&#x22;Bulk Update Catalog Variants&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_bulk_delete_catalog_variants&#x22;,&#x22;label&#x22;:&#x22;Bulk Delete Catalog Variants&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_items_for_catalog_category&#x22;,&#x22;label&#x22;:&#x22;Get Items For Catalog Category&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_add_items_to_catalog_category&#x22;,&#x22;label&#x22;:&#x22;Add Items To Catalog Category&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_remove_items_from_catalog_category&#x22;,&#x22;label&#x22;:&#x22;Remove Items From Catalog Category&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_add_categories_to_catalog_item&#x22;,&#x22;label&#x22;:&#x22;Add Categories To Catalog Item&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_remove_categories_from_catalog_item&#x22;,&#x22;label&#x22;:&#x22;Remove Categories From Catalog Item&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_create_back_in_stock_subscription&#x22;,&#x22;label&#x22;:&#x22;Create Back In Stock Subscription&#x22;,&#x22;scopes&#x22;:[&#x22;catalogs:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_create_client_event&#x22;,&#x22;label&#x22;:&#x22;Create Client Event&#x22;,&#x22;scopes&#x22;:[&#x22;events:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_create_client_profile&#x22;,&#x22;label&#x22;:&#x22;Create Client Profile&#x22;,&#x22;scopes&#x22;:[&#x22;profiles:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_list_coupons&#x22;,&#x22;label&#x22;:&#x22;List Coupons&#x22;,&#x22;scopes&#x22;:[&#x22;coupons:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_create_coupon&#x22;,&#x22;label&#x22;:&#x22;Create Coupon&#x22;,&#x22;scopes&#x22;:[&#x22;coupons:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_coupon&#x22;,&#x22;label&#x22;:&#x22;Get Coupon&#x22;,&#x22;scopes&#x22;:[&#x22;coupons:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_update_coupon&#x22;,&#x22;label&#x22;:&#x22;Update Coupon&#x22;,&#x22;scopes&#x22;:[&#x22;coupons:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_delete_coupon&#x22;,&#x22;label&#x22;:&#x22;Delete Coupon&#x22;,&#x22;scopes&#x22;:[&#x22;coupons:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_list_coupon_codes&#x22;,&#x22;label&#x22;:&#x22;List Coupon Codes&#x22;,&#x22;scopes&#x22;:[&#x22;coupon-codes:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_create_coupon_code&#x22;,&#x22;label&#x22;:&#x22;Create Coupon Code&#x22;,&#x22;scopes&#x22;:[&#x22;coupon-codes:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_coupon_code&#x22;,&#x22;label&#x22;:&#x22;Get Coupon Code&#x22;,&#x22;scopes&#x22;:[&#x22;coupon-codes:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_update_coupon_code&#x22;,&#x22;label&#x22;:&#x22;Update Coupon Code&#x22;,&#x22;scopes&#x22;:[&#x22;coupon-codes:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_delete_coupon_code&#x22;,&#x22;label&#x22;:&#x22;Delete Coupon Code&#x22;,&#x22;scopes&#x22;:[&#x22;coupon-codes:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_bulk_create_coupon_codes&#x22;,&#x22;label&#x22;:&#x22;Bulk Create Coupon Codes&#x22;,&#x22;scopes&#x22;:[&#x22;coupon-codes:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_list_events&#x22;,&#x22;label&#x22;:&#x22;List Events&#x22;,&#x22;scopes&#x22;:[&#x22;events:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_create_event&#x22;,&#x22;label&#x22;:&#x22;Create Event&#x22;,&#x22;scopes&#x22;:[&#x22;events:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_event&#x22;,&#x22;label&#x22;:&#x22;Get Event&#x22;,&#x22;scopes&#x22;:[&#x22;events:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_bulk_create_events&#x22;,&#x22;label&#x22;:&#x22;Bulk Create Events&#x22;,&#x22;scopes&#x22;:[&#x22;events:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_list_flows&#x22;,&#x22;label&#x22;:&#x22;List Flows&#x22;,&#x22;scopes&#x22;:[&#x22;flows:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_flow&#x22;,&#x22;label&#x22;:&#x22;Get Flow&#x22;,&#x22;scopes&#x22;:[&#x22;flows:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_flow_action&#x22;,&#x22;label&#x22;:&#x22;Get Flow Action&#x22;,&#x22;scopes&#x22;:[&#x22;flows:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_flow_message&#x22;,&#x22;label&#x22;:&#x22;Get Flow Message&#x22;,&#x22;scopes&#x22;:[&#x22;flows:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_actions_for_flow&#x22;,&#x22;label&#x22;:&#x22;List Flow Actions For Flow&#x22;,&#x22;scopes&#x22;:[&#x22;flows:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_tags_for_flow&#x22;,&#x22;label&#x22;:&#x22;Get Tags For Flow&#x22;,&#x22;scopes&#x22;:[&#x22;flows:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_flow_action_messages&#x22;,&#x22;label&#x22;:&#x22;Get Flow Action Messages&#x22;,&#x22;scopes&#x22;:[&#x22;flows:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_create_flow&#x22;,&#x22;label&#x22;:&#x22;Create Flow&#x22;,&#x22;scopes&#x22;:[&#x22;flows:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_delete_flow&#x22;,&#x22;label&#x22;:&#x22;Delete Flow&#x22;,&#x22;scopes&#x22;:[&#x22;flows:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_update_flow_action&#x22;,&#x22;label&#x22;:&#x22;Update Flow Action&#x22;,&#x22;scopes&#x22;:[&#x22;flows:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_list_forms&#x22;,&#x22;label&#x22;:&#x22;List Forms&#x22;,&#x22;scopes&#x22;:[&#x22;forms:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_form&#x22;,&#x22;label&#x22;:&#x22;Get Form&#x22;,&#x22;scopes&#x22;:[&#x22;forms:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_create_form&#x22;,&#x22;label&#x22;:&#x22;Create Form&#x22;,&#x22;scopes&#x22;:[&#x22;forms:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_delete_form&#x22;,&#x22;label&#x22;:&#x22;Delete Form&#x22;,&#x22;scopes&#x22;:[&#x22;forms:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_list_images&#x22;,&#x22;label&#x22;:&#x22;List Images&#x22;,&#x22;scopes&#x22;:[&#x22;images:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_upload_image_from_url&#x22;,&#x22;label&#x22;:&#x22;Upload Image From URL&#x22;,&#x22;scopes&#x22;:[&#x22;images:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_image&#x22;,&#x22;label&#x22;:&#x22;Get Image&#x22;,&#x22;scopes&#x22;:[&#x22;images:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_update_image&#x22;,&#x22;label&#x22;:&#x22;Update Image&#x22;,&#x22;scopes&#x22;:[&#x22;images:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_list_lists&#x22;,&#x22;label&#x22;:&#x22;List Lists&#x22;,&#x22;scopes&#x22;:[&#x22;lists:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_create_list&#x22;,&#x22;label&#x22;:&#x22;Create List&#x22;,&#x22;scopes&#x22;:[&#x22;lists:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_list&#x22;,&#x22;label&#x22;:&#x22;Get List&#x22;,&#x22;scopes&#x22;:[&#x22;lists:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_update_list&#x22;,&#x22;label&#x22;:&#x22;Update List&#x22;,&#x22;scopes&#x22;:[&#x22;lists:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_delete_list&#x22;,&#x22;label&#x22;:&#x22;Delete List&#x22;,&#x22;scopes&#x22;:[&#x22;lists:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_tags_for_list&#x22;,&#x22;label&#x22;:&#x22;Get Tags For List&#x22;,&#x22;scopes&#x22;:[&#x22;lists:read&#x22;,&#x22;tags:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_profiles_for_list&#x22;,&#x22;label&#x22;:&#x22;Get Profiles For List&#x22;,&#x22;scopes&#x22;:[&#x22;lists:read&#x22;,&#x22;profiles:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_add_profiles_to_list&#x22;,&#x22;label&#x22;:&#x22;Add Profiles To List&#x22;,&#x22;scopes&#x22;:[&#x22;profiles:write&#x22;,&#x22;lists:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_remove_profiles_from_list&#x22;,&#x22;label&#x22;:&#x22;Remove Profiles From List&#x22;,&#x22;scopes&#x22;:[&#x22;lists:write&#x22;,&#x22;profiles:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_flows_triggered_by_list&#x22;,&#x22;label&#x22;:&#x22;Get Flows Triggered By List&#x22;,&#x22;scopes&#x22;:[&#x22;flows:read&#x22;,&#x22;lists:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_list_metrics&#x22;,&#x22;label&#x22;:&#x22;List Metrics&#x22;,&#x22;scopes&#x22;:[&#x22;metrics:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_metric&#x22;,&#x22;label&#x22;:&#x22;Get Metric&#x22;,&#x22;scopes&#x22;:[&#x22;metrics:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_query_metric_aggregate&#x22;,&#x22;label&#x22;:&#x22;Query Metric Aggregates&#x22;,&#x22;scopes&#x22;:[&#x22;metrics:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_metric_property&#x22;,&#x22;label&#x22;:&#x22;Get Metric Property&#x22;,&#x22;scopes&#x22;:[&#x22;metrics:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_flows_triggered_by_metric&#x22;,&#x22;label&#x22;:&#x22;Get Flows Triggered By Metric&#x22;,&#x22;scopes&#x22;:[&#x22;metrics:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_list_custom_metrics&#x22;,&#x22;label&#x22;:&#x22;List Custom Metrics&#x22;,&#x22;scopes&#x22;:[&#x22;metrics:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_create_custom_metric&#x22;,&#x22;label&#x22;:&#x22;Create Custom Metric&#x22;,&#x22;scopes&#x22;:[&#x22;metrics:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_custom_metric&#x22;,&#x22;label&#x22;:&#x22;Get Custom Metric&#x22;,&#x22;scopes&#x22;:[&#x22;metrics:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_update_custom_metric&#x22;,&#x22;label&#x22;:&#x22;Update Custom Metric&#x22;,&#x22;scopes&#x22;:[&#x22;metrics:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_delete_custom_metric&#x22;,&#x22;label&#x22;:&#x22;Delete Custom Metric&#x22;,&#x22;scopes&#x22;:[&#x22;metrics:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_list_profiles&#x22;,&#x22;label&#x22;:&#x22;List Profiles&#x22;,&#x22;scopes&#x22;:[&#x22;profiles:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_profile&#x22;,&#x22;label&#x22;:&#x22;Get Profile&#x22;,&#x22;scopes&#x22;:[&#x22;profiles:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_create_profile&#x22;,&#x22;label&#x22;:&#x22;Create Profile&#x22;,&#x22;scopes&#x22;:[&#x22;profiles:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_update_profile&#x22;,&#x22;label&#x22;:&#x22;Update Profile&#x22;,&#x22;scopes&#x22;:[&#x22;profiles:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_lists_for_profile&#x22;,&#x22;label&#x22;:&#x22;Get Lists For Profile&#x22;,&#x22;scopes&#x22;:[&#x22;profiles:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_segments_for_profile&#x22;,&#x22;label&#x22;:&#x22;Get Segments For Profile&#x22;,&#x22;scopes&#x22;:[&#x22;lists:read&#x22;,&#x22;profiles:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_merge_profiles&#x22;,&#x22;label&#x22;:&#x22;Merge Profiles&#x22;,&#x22;scopes&#x22;:[&#x22;profiles:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_bulk_import_profiles&#x22;,&#x22;label&#x22;:&#x22;Bulk Import Profiles&#x22;,&#x22;scopes&#x22;:[&#x22;profiles:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_list_for_bulk_import_profiles_job&#x22;,&#x22;label&#x22;:&#x22;Get List For Bulk Import Profiles Job&#x22;,&#x22;scopes&#x22;:[&#x22;lists:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_profiles_for_bulk_import_profiles_job&#x22;,&#x22;label&#x22;:&#x22;Get Profiles For Bulk Import Profiles Job&#x22;,&#x22;scopes&#x22;:[&#x22;lists:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_request_profile_deletion&#x22;,&#x22;label&#x22;:&#x22;Request Profile Deletion&#x22;,&#x22;scopes&#x22;:[&#x22;data-privacy:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_query_campaign_values&#x22;,&#x22;label&#x22;:&#x22;Query Campaign Values&#x22;,&#x22;scopes&#x22;:[&#x22;campaigns:read&#x22;,&#x22;flows:read&#x22;,&#x22;forms:read&#x22;,&#x22;segments:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_query_flow_values&#x22;,&#x22;label&#x22;:&#x22;Query Flow Values&#x22;,&#x22;scopes&#x22;:[&#x22;flows:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_query_flow_series&#x22;,&#x22;label&#x22;:&#x22;Query Flow Series&#x22;,&#x22;scopes&#x22;:[&#x22;flows:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_query_segment_values&#x22;,&#x22;label&#x22;:&#x22;Query Segment Values&#x22;,&#x22;scopes&#x22;:[&#x22;segments:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_query_segment_series&#x22;,&#x22;label&#x22;:&#x22;Query Segment Series&#x22;,&#x22;scopes&#x22;:[&#x22;segments:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_list_segments&#x22;,&#x22;label&#x22;:&#x22;List Segments&#x22;,&#x22;scopes&#x22;:[&#x22;segments:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_create_segment&#x22;,&#x22;label&#x22;:&#x22;Create Segment&#x22;,&#x22;scopes&#x22;:[&#x22;segments:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_segment&#x22;,&#x22;label&#x22;:&#x22;Get Segment&#x22;,&#x22;scopes&#x22;:[&#x22;segments:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_update_segment&#x22;,&#x22;label&#x22;:&#x22;Update Segment&#x22;,&#x22;scopes&#x22;:[&#x22;segments:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_delete_segment&#x22;,&#x22;label&#x22;:&#x22;Delete Segment&#x22;,&#x22;scopes&#x22;:[&#x22;segments:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_tags_for_segment&#x22;,&#x22;label&#x22;:&#x22;Get Tags For Segment&#x22;,&#x22;scopes&#x22;:[&#x22;segments:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_profiles_for_segment&#x22;,&#x22;label&#x22;:&#x22;Get Profiles For Segment&#x22;,&#x22;scopes&#x22;:[&#x22;segments:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_flows_triggered_by_segment&#x22;,&#x22;label&#x22;:&#x22;Get Flows Triggered By Segment&#x22;,&#x22;scopes&#x22;:[&#x22;segments:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_list_tags&#x22;,&#x22;label&#x22;:&#x22;List Tags&#x22;,&#x22;scopes&#x22;:[&#x22;tags:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_create_tag&#x22;,&#x22;label&#x22;:&#x22;Create Tag&#x22;,&#x22;scopes&#x22;:[&#x22;tags:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_tag&#x22;,&#x22;label&#x22;:&#x22;Get Tag&#x22;,&#x22;scopes&#x22;:[&#x22;tags:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_update_tag&#x22;,&#x22;label&#x22;:&#x22;Update Tag&#x22;,&#x22;scopes&#x22;:[&#x22;tags:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_delete_tag&#x22;,&#x22;label&#x22;:&#x22;Delete Tag&#x22;,&#x22;scopes&#x22;:[&#x22;tags:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_flow_ids_for_tag&#x22;,&#x22;label&#x22;:&#x22;Get Flow IDs For Tag&#x22;,&#x22;scopes&#x22;:[&#x22;flows:read&#x22;,&#x22;tags:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_tag_flows&#x22;,&#x22;label&#x22;:&#x22;Tag Flows&#x22;,&#x22;scopes&#x22;:[&#x22;flows:write&#x22;,&#x22;tags:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_campaign_ids_for_tag&#x22;,&#x22;label&#x22;:&#x22;Get Campaign IDs For Tag&#x22;,&#x22;scopes&#x22;:[&#x22;campaigns:read&#x22;,&#x22;tags:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_tag_campaigns&#x22;,&#x22;label&#x22;:&#x22;Tag Campaigns&#x22;,&#x22;scopes&#x22;:[&#x22;campaigns:write&#x22;,&#x22;tags:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_list_ids_for_tag&#x22;,&#x22;label&#x22;:&#x22;Get List IDs For Tag&#x22;,&#x22;scopes&#x22;:[&#x22;lists:read&#x22;,&#x22;tags:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_tag_lists&#x22;,&#x22;label&#x22;:&#x22;Tag Lists&#x22;,&#x22;scopes&#x22;:[&#x22;lists:write&#x22;,&#x22;tags:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_segment_ids_for_tag&#x22;,&#x22;label&#x22;:&#x22;Get Segment IDs For Tag&#x22;,&#x22;scopes&#x22;:[&#x22;segments:read&#x22;,&#x22;tags:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_tag_segments&#x22;,&#x22;label&#x22;:&#x22;Tag Segments&#x22;,&#x22;scopes&#x22;:[&#x22;segments:write&#x22;,&#x22;tags:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_list_tag_groups&#x22;,&#x22;label&#x22;:&#x22;List Tag Groups&#x22;,&#x22;scopes&#x22;:[&#x22;tags:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_create_tag_group&#x22;,&#x22;label&#x22;:&#x22;Create Tag Group&#x22;,&#x22;scopes&#x22;:[&#x22;tags:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_tag_group&#x22;,&#x22;label&#x22;:&#x22;Get Tag Group&#x22;,&#x22;scopes&#x22;:[&#x22;tags:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_update_tag_group&#x22;,&#x22;label&#x22;:&#x22;Update Tag Group&#x22;,&#x22;scopes&#x22;:[&#x22;tags:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_delete_tag_group&#x22;,&#x22;label&#x22;:&#x22;Delete Tag Group&#x22;,&#x22;scopes&#x22;:[&#x22;tags:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_tags_for_tag_group&#x22;,&#x22;label&#x22;:&#x22;Get Tags For Tag Group&#x22;,&#x22;scopes&#x22;:[&#x22;tags:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_list_templates&#x22;,&#x22;label&#x22;:&#x22;List Templates&#x22;,&#x22;scopes&#x22;:[&#x22;templates:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_create_template&#x22;,&#x22;label&#x22;:&#x22;Create Template&#x22;,&#x22;scopes&#x22;:[&#x22;templates:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_template&#x22;,&#x22;label&#x22;:&#x22;Get Template&#x22;,&#x22;scopes&#x22;:[&#x22;templates:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_update_template&#x22;,&#x22;label&#x22;:&#x22;Update Template&#x22;,&#x22;scopes&#x22;:[&#x22;templates:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_delete_template&#x22;,&#x22;label&#x22;:&#x22;Delete Template&#x22;,&#x22;scopes&#x22;:[&#x22;templates:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_render_template&#x22;,&#x22;label&#x22;:&#x22;Render Template&#x22;,&#x22;scopes&#x22;:[&#x22;templates:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_clone_template&#x22;,&#x22;label&#x22;:&#x22;Clone Template&#x22;,&#x22;scopes&#x22;:[&#x22;templates:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_list_universal_content&#x22;,&#x22;label&#x22;:&#x22;List Universal Content&#x22;,&#x22;scopes&#x22;:[&#x22;templates:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_create_universal_content&#x22;,&#x22;label&#x22;:&#x22;Create Universal Content&#x22;,&#x22;scopes&#x22;:[&#x22;templates:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_universal_content&#x22;,&#x22;label&#x22;:&#x22;Get Universal Content&#x22;,&#x22;scopes&#x22;:[&#x22;templates:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_update_universal_content&#x22;,&#x22;label&#x22;:&#x22;Update Universal Content&#x22;,&#x22;scopes&#x22;:[&#x22;templates:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_delete_universal_content&#x22;,&#x22;label&#x22;:&#x22;Delete Universal Content&#x22;,&#x22;scopes&#x22;:[&#x22;templates:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_list_webhooks&#x22;,&#x22;label&#x22;:&#x22;List Webhooks&#x22;,&#x22;scopes&#x22;:[&#x22;webhooks:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_webhook&#x22;,&#x22;label&#x22;:&#x22;Get Webhook&#x22;,&#x22;scopes&#x22;:[&#x22;webhooks:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_create_webhook&#x22;,&#x22;label&#x22;:&#x22;Create Webhook&#x22;,&#x22;scopes&#x22;:[&#x22;webhooks:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_update_webhook&#x22;,&#x22;label&#x22;:&#x22;Update Webhook&#x22;,&#x22;scopes&#x22;:[&#x22;webhooks:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_delete_webhook&#x22;,&#x22;label&#x22;:&#x22;Delete Webhook&#x22;,&#x22;scopes&#x22;:[&#x22;webhooks:write&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_list_webhook_topics&#x22;,&#x22;label&#x22;:&#x22;List Webhook Topics&#x22;,&#x22;scopes&#x22;:[&#x22;webhooks:read&#x22;]},{&#x22;id&#x22;:&#x22;klaviyo_get_webhook_topic&#x22;,&#x22;label&#x22;:&#x22;Get Webhook Topic&#x22;,&#x22;scopes&#x22;:[&#x22;webhooks:read&#x22;]}]" style={{ borderRadius: '8px', padding: '16px', marginBottom: '24px' }}>
    <div className="guides-scope-selector__title" style={{ fontSize: '16px', fontWeight: '600', marginBottom: '12px' }}>Select Actions to adjust the guide</div>
    <div className="guides-scope-selector__muted" style={{ fontSize: '13px', marginBottom: '12px' }}>Some actions may require additional configuration in the provider to be accessible. Choose the actions you need and the guide will be updated.</div>

    <div style={{ display: 'flex', gap: '8px', marginBottom: '12px', flexWrap: 'wrap' }}>
      <input type="text" placeholder="Search actions..." className="guides-scope-selector__input" data-guide-action-search style={{ padding: '8px 12px', borderRadius: '6px', fontSize: '13px', flex: 1, minWidth: '160px' }} />

      <button type="button" className="guides-scope-selector__quick-btn" data-guide-select-all style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Select all</button>
      <button type="button" className="guides-scope-selector__quick-btn" data-guide-clear style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Clear</button>
    </div>

    <div className="guides-scope-selector__list" style={{ maxHeight: '240px', overflowY: 'auto', borderRadius: '6px', marginBottom: '12px' }}>
      <div className="guides-scope-selector__list-header" style={{ display: 'flex', alignItems: 'center', gap: '10px', padding: '8px 12px', fontSize: '12px', fontWeight: '600', position: 'sticky', top: 0, zIndex: 1 }}>
        <div style={{ width: '16px', flexShrink: 0 }} />

        <div style={{ flex: 1, textAlign: 'left' }}>Action</div>
        <div style={{ minWidth: '120px', marginLeft: 'auto', textAlign: 'right' }}>Scope(s)</div>
      </div>

      <div className="guides-scope-selector__muted" data-guide-loading style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>Loading actions...</div>
      <div className="guides-scope-selector__muted" data-guide-no-results hidden style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>No actions match your search.</div>
    </div>

    <div className="guides-scope-selector__url-section" style={{ marginTop: '12px', paddingTop: '12px' }}>
      <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Dynamic Guide URL</div>

      <div style={{ display: 'flex', alignItems: 'center', gap: '8px', flexWrap: 'wrap' }}>
        <input type="text" readOnly className="guides-scope-selector__input" data-guide-url style={{ flex: 1, minWidth: '200px', padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace' }} />

        <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-url style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap', marginLeft: 'auto' }}>Copy URL</button>
      </div>

      <div style={{ marginTop: '12px' }}>
        <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Scopes Selected</div>

        <div style={{ display: 'flex', alignItems: 'stretch', gap: '8px', flexWrap: 'wrap' }}>
          <pre className="guides-scope-selector__input" role="textbox" aria-readonly="true" tabIndex={0} data-guide-scopes-output style={{ flex: 1, minWidth: '200px', minHeight: '88px', maxHeight: '120px', overflowY: 'auto', margin: 0, padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace', whiteSpace: 'pre-wrap' }} />

          <div className="guides-scope-selector__muted" style={{ display: 'flex', flexDirection: 'column', gap: '8px', fontSize: '12px', fontWeight: '500', flexShrink: 0, alignItems: 'flex-start' }}>
            <div style={{ whiteSpace: 'nowrap' }}>Separator</div>

            <select className="guides-scope-selector__input" data-guide-scope-delimiter style={{ width: '100%', padding: '6px 10px', borderRadius: '6px', fontSize: '12px' }}>
              <option value="space">Space</option>
              <option value="comma">Comma</option>
              <option value="semicolon">Semicolon</option>
              <option value="pipe">Pipe</option>
              <option value="newline">Newline</option>
            </select>

            <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-scopes style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap' }}>Copy scopes</button>
          </div>
        </div>
      </div>
    </div>
  </div>
</Panel>

<section data-guide-section data-guide-scopes="">
  <h2>Creating an OAuth Application</h2>

  <p>Create an OAuth app in Klaviyo to obtain the Client ID and Client Secret needed for this connection.</p>

  <Steps>
    <Step title="Navigate to Manage Apps">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Sign in to your <a href="https://www.klaviyo.com/login" target="_blank" rel="noopener noreferrer">Klaviyo account</a>. In the left sidebar at the bottom, click <strong>Integrations</strong>. In the top right corner, open the <strong>Developers</strong> dropdown and select <strong>Manage Apps</strong>.</p>
      </div>
    </Step>

    <Step title="Create the app">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Click <strong>Create App</strong> in the top right corner. Enter an <strong>App Name</strong> (e.g., StackOne).</p>

        <ul>
          <li>Your <strong>Client ID</strong> and <strong>Client Secret</strong> are displayed on this page — copy and store them securely for use later.</li>
          <li><strong>Warning:</strong> The Client Secret cannot be viewed again after leaving this page. If lost, you can regenerate it from the app settings.</li>
          <li>Click <strong>Create</strong> to confirm.</li>
        </ul>
      </div>
    </Step>

    <Step title="Complete the setup flow">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>A confirmation page appears with guidance on next steps. Click <strong>Continue</strong> in the top right corner to open your app dashboard.</p>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Configuring Authentication Settings</h2>

  <p>Set the redirect URL and scopes so Klaviyo can authorize StackOne during the OAuth flow.</p>

  <Steps>
    <Step title="Open the Authentication tab">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Inside your app, click the <strong>Authentication</strong> tab.</p>
      </div>
    </Step>

    <Step title="Add the Redirect URL">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the <strong>Redirect URL</strong> field, enter the StackOne callback URL and save.</p>

        <ul>
          <li>Redirect URL: `https://api.stackone.com/connect/oauth2/klaviyo/callback`</li>
        </ul>
      </div>
    </Step>

    <Step title="Configure scopes">
      <div data-guide-step data-guide-scopes="accounts:read,campaigns:read,campaigns:write,catalogs:read,catalogs:write,coupon-codes:read,coupon-codes:write,coupons:read,coupons:write,data-privacy:write,events:read,events:write,flows:read,flows:write,forms:read,images:read,images:write,lists:read,lists:write,metrics:read,metrics:write,profiles:read,profiles:write,segments:read,segments:write,tags:read,tags:write,templates:read,templates:write,webhooks:read,webhooks:write" data-guide-display-scopes-list="accounts:read,campaigns:read,campaigns:write,catalogs:read,catalogs:write,coupon-codes:read,coupon-codes:write,coupons:read,coupons:write,data-privacy:write,events:read,events:write,flows:read,flows:write,forms:read,images:read,images:write,lists:read,lists:write,metrics:read,metrics:write,profiles:read,profiles:write,segments:read,segments:write,tags:read,tags:write,templates:read,templates:write,webhooks:read,webhooks:write">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="accounts:read,campaigns:read,campaigns:write,catalogs:read,catalogs:write,coupon-codes:read,coupon-codes:write,coupons:read,coupons:write,data-privacy:write,events:read,events:write,flows:read,flows:write,forms:read,images:read,images:write,lists:read,lists:write,metrics:read,metrics:write,profiles:read,profiles:write,segments:read,segments:write,tags:read,tags:write,templates:read,templates:write,webhooks:read,webhooks:write" style={{ display: 'block', width: 'fit-content', maxWidth: '100%', padding: '2px 8px', borderRadius: '8px', fontSize: '12px', marginBottom: '8px', marginTop: '-10px', whiteSpace: 'nowrap', overflowX: 'auto', overflowY: 'hidden', msOverflowStyle: 'none', scrollbarWidth: 'none' }}>
          <span>Enables actions: </span><span data-guide-actions-badge-labels>Add Categories To Catalog Item, Add Items To Catalog Category, Add Profiles To List, Assign Template To Campaign Message, Bulk Create Catalog Categories, Bulk Create Catalog Items, Bulk Create Catalog Variants, Bulk Create Coupon Codes, Bulk Create Events, Bulk Delete Catalog Categories, Bulk Delete Catalog Items, Bulk Delete Catalog Variants, Bulk Import Profiles, Bulk Update Catalog Categories, Bulk Update Catalog Items, Bulk Update Catalog Variants, Cancel Campaign Send, Clone Campaign, Clone Template, Create Back In Stock Subscription, Create Campaign, Create Catalog Category, Create Catalog Item, Create Catalog Variant, Create Client Event, Create Client Profile, Create Coupon, Create Coupon Code, Create Custom Metric, Create Event, Create Flow, Create List, Create Profile, Create Segment, Create Tag, Create Tag Group, Create Template, Create Universal Content, Create Webhook, Delete Campaign, Delete Catalog Category, Delete Catalog Item, Delete Catalog Variant, Delete Coupon, Delete Coupon Code, Delete Custom Metric, Delete Flow, Delete List, Delete Segment, Delete Tag, Delete Tag Group, Delete Template, Delete Universal Content, Delete Webhook, Get Account, Get Accounts, Get Campaign, Get Campaign IDs For Tag, Get Campaign Message, Get Campaign Recipient Estimation, Get Campaign Recipient Estimation Job, Get Catalog Category, Get Catalog Item, Get Catalog Variant, Get Coupon, Get Coupon Code, Get Custom Metric, Get Event, Get Flow, Get Flow Action, Get Flow Action Messages, Get Flow IDs For Tag, Get Flow Message, Get Flows Triggered By List, Get Flows Triggered By Metric, Get Flows Triggered By Segment, Get Form, Get Image, Get Items For Catalog Category, Get List, Get List For Bulk Import Profiles Job, Get List IDs For Tag, Get Lists For Profile, Get Messages For Campaign, Get Metric, Get Metric Property, Get Profile, Get Profiles For Bulk Import Profiles Job, Get Profiles For List, Get Profiles For Segment, Get Segment, Get Segment IDs For Tag, Get Segments For Profile, Get Tag, Get Tag Group, Get Tags For Campaign, Get Tags For Flow, Get Tags For List, Get Tags For Segment, Get Tags For Tag Group, Get Template, Get Universal Content, Get Webhook, Get Webhook Topic, List Campaigns, List Catalog Categories, List Catalog Variants, List Coupon Codes, List Coupons, List Custom Metrics, List Events, List Flow Actions For Flow, List Flows, List Forms, List Images, List Lists, List Metrics, List Profiles, List Segments, List Tag Groups, List Tags, List Templates, List Universal Content, List Webhook Topics, List Webhooks, Merge Profiles, Query Campaign Values, Query Flow Series, Query Flow Values, Query Metric Aggregates, Query Segment Series, Query Segment Values, Refresh Campaign Recipient Estimation, Remove Categories From Catalog Item, Remove Items From Catalog Category, Remove Profiles From List, Render Template, Request Profile Deletion, Send Campaign, Tag Campaigns, Tag Flows, Tag Lists, Tag Segments, Update Campaign, Update Campaign Message, Update Catalog Category, Update Catalog Item, Update Catalog Variant, Update Coupon, Update Coupon Code, Update Custom Metric, Update Flow Action, Update Image, Update List, Update Profile, Update Segment, Update Tag, Update Tag Group, Update Template, Update Universal Content, Update Webhook, Upload Image From URL</span>
        </div>

        <p>Click <strong>Edit Scopes</strong>, select the permissions required for your integration, then save. The `accounts:read` scope is always required.</p>

        <div style={{ marginTop: '8px' }} data-guide-display-scopes>
          <div className="connector-guide-scopes-container connector-guide-scopes-container--scrollable">
            <ul className="not-prose" style={{ listStyleType: "'- '", paddingLeft: '1em', margin: 0 }}>
              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="accounts:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy accounts:read" title="Copy scope" data-copy="accounts:read">
                  <span className="connector-guide-scope-copy__label">accounts:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="campaigns:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy campaigns:read" title="Copy scope" data-copy="campaigns:read">
                  <span className="connector-guide-scope-copy__label">campaigns:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="campaigns:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy campaigns:write" title="Copy scope" data-copy="campaigns:write">
                  <span className="connector-guide-scope-copy__label">campaigns:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="catalogs:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy catalogs:read" title="Copy scope" data-copy="catalogs:read">
                  <span className="connector-guide-scope-copy__label">catalogs:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="catalogs:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy catalogs:write" title="Copy scope" data-copy="catalogs:write">
                  <span className="connector-guide-scope-copy__label">catalogs:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="coupon-codes:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy coupon-codes:read" title="Copy scope" data-copy="coupon-codes:read">
                  <span className="connector-guide-scope-copy__label">coupon-codes:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="coupon-codes:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy coupon-codes:write" title="Copy scope" data-copy="coupon-codes:write">
                  <span className="connector-guide-scope-copy__label">coupon-codes:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="coupons:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy coupons:read" title="Copy scope" data-copy="coupons:read">
                  <span className="connector-guide-scope-copy__label">coupons:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="coupons:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy coupons:write" title="Copy scope" data-copy="coupons:write">
                  <span className="connector-guide-scope-copy__label">coupons:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="data-privacy:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy data-privacy:write" title="Copy scope" data-copy="data-privacy:write">
                  <span className="connector-guide-scope-copy__label">data-privacy:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="events:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy events:read" title="Copy scope" data-copy="events:read">
                  <span className="connector-guide-scope-copy__label">events:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="events:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy events:write" title="Copy scope" data-copy="events:write">
                  <span className="connector-guide-scope-copy__label">events:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="flows:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy flows:read" title="Copy scope" data-copy="flows:read">
                  <span className="connector-guide-scope-copy__label">flows:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="flows:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy flows:write" title="Copy scope" data-copy="flows:write">
                  <span className="connector-guide-scope-copy__label">flows:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="forms:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy forms:read" title="Copy scope" data-copy="forms:read">
                  <span className="connector-guide-scope-copy__label">forms:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="images:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy images:read" title="Copy scope" data-copy="images:read">
                  <span className="connector-guide-scope-copy__label">images:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="images:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy images:write" title="Copy scope" data-copy="images:write">
                  <span className="connector-guide-scope-copy__label">images:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="lists:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy lists:read" title="Copy scope" data-copy="lists:read">
                  <span className="connector-guide-scope-copy__label">lists:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="lists:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy lists:write" title="Copy scope" data-copy="lists:write">
                  <span className="connector-guide-scope-copy__label">lists:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="metrics:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy metrics:read" title="Copy scope" data-copy="metrics:read">
                  <span className="connector-guide-scope-copy__label">metrics:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="metrics:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy metrics:write" title="Copy scope" data-copy="metrics:write">
                  <span className="connector-guide-scope-copy__label">metrics:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="profiles:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy profiles:read" title="Copy scope" data-copy="profiles:read">
                  <span className="connector-guide-scope-copy__label">profiles:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="profiles:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy profiles:write" title="Copy scope" data-copy="profiles:write">
                  <span className="connector-guide-scope-copy__label">profiles:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="segments:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy segments:read" title="Copy scope" data-copy="segments:read">
                  <span className="connector-guide-scope-copy__label">segments:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="segments:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy segments:write" title="Copy scope" data-copy="segments:write">
                  <span className="connector-guide-scope-copy__label">segments:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="tags:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy tags:read" title="Copy scope" data-copy="tags:read">
                  <span className="connector-guide-scope-copy__label">tags:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="tags:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy tags:write" title="Copy scope" data-copy="tags:write">
                  <span className="connector-guide-scope-copy__label">tags:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="templates:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy templates:read" title="Copy scope" data-copy="templates:read">
                  <span className="connector-guide-scope-copy__label">templates:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="templates:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy templates:write" title="Copy scope" data-copy="templates:write">
                  <span className="connector-guide-scope-copy__label">templates:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="webhooks:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy webhooks:read" title="Copy scope" data-copy="webhooks:read">
                  <span className="connector-guide-scope-copy__label">webhooks:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="webhooks:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy webhooks:write" title="Copy scope" data-copy="webhooks:write">
                  <span className="connector-guide-scope-copy__label">webhooks:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Finding Your Public API Key (Site ID)</h2>

  <p>Only required for client-side operations such as back-in-stock subscriptions and push tokens.</p>

  <Steps>
    <Step title="Copy the Site ID">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Click your account name in the lower left corner, select <strong>Settings</strong>, then click <strong>API Keys</strong>. Find the <strong>Public API Key</strong> section at the top and copy the <strong>Public API Key</strong> value. Store it securely for use later.</p>
      </div>
    </Step>
  </Steps>
</section>

## Creating the StackOne Connector Profile

To create the Connector Profile in StackOne for <strong>Klaviyo</strong>:

<Steps>
  <Step title="Navigate to Connector Profiles">
    Login to StackOne and navigate to [Connector Profiles](https://app.stackone.com/connector_profiles)
  </Step>

  <Step title="Create New Connector Profile">
    <ul>
      <li>Click <strong>+ Connector Profile</strong></li>
      <li>Search for and select <strong>Klaviyo</strong></li>
      <li>Select <strong>Type</strong> as <strong>OAuth 2.0</strong></li>

      <li>
        Fill out the fields using details retrieved from your provider:

        <ul style={{ marginLeft: '20px' }}>
          <li><strong>Client ID</strong></li>
          <li><strong>Client Secret</strong></li>
          <li><strong>Scopes</strong> (Optional)</li>
          <li><strong>Public API Key (Site ID)</strong> (Optional)</li>
        </ul>
      </li>

      <li>(Optional) Select <strong>Actions</strong> to be enabled for this Connector Profile</li>
      <li>Click <strong>Create profile</strong></li>
    </ul>
  </Step>
</Steps>

Congratulations! The new Connector Profile will now show up in your project ready to be used. You can now continue to <a href="/guides/accounts-section#linking-accounts">Link Accounts</a> for <strong>Klaviyo</strong>.
