Klaviyo

Klaviyo is a data-driven email and SMS marketing platform that allows e-commerce brands to deliver targeted messages, track conversions, and scale customer relationships

225 actions Integration catalog
Request access
Connect Klaviyo once you're in Boring.
01 · WHAT THE AGENT CAN DO

Actions

Every capability is a discrete, logged action the agent calls by name — scoped to what you authorize and recorded in the run trace.

Add Profile to ListKLAVIYO_ADD_PROFILE_TO_LIST
Add profiles to a Klaviyo list by profile IDs or email addresses. This action subscribes profiles to a marketing list, which is ideal for giving marketing consent. You can add up to 1000 profiles per call using either their Klaviyo profile IDs or email addresses. Rate limits: 10/s burst, 150/m steady. Required scopes: `lists:write` and `profiles:write`. Preconditions: - Either profile_ids or emails must be provided (not both) - Maximum 1000 profiles per call - Email addresses must be valid format - The list must exist and be accessible
Assign campaign message templateKLAVIYO_ASSIGN_CAMPAIGN_MESSAGE_TEMPLATE
Creates a non-reusable version of the template and assigns it to the message.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `campaigns:write`
Bulk create client eventsKLAVIYO_BULK_CREATE_CLIENT_EVENTS
Use the client-side endpoint with a public API key to track profile activity. It accepts up to 1000 events/request with rates of 10/s burst and 150/m steady. For server-side, use the bulk create event endpoint.
Bulk create eventsKLAVIYO_BULK_CREATE_EVENTS
Bulk create events for multiple profiles in a single request. Accepts up to 1,000 events with a 5MB max payload. Each event requires a profile identifier (email, phone_number, or external_id) and a metric name. Events are processed asynchronously; a 202 response indicates acceptance, not completion. Rate limits: 10/s burst, 150/min steady.
Cancel Campaign SendKLAVIYO_CANCEL_CAMPAIGN_SEND
Cancel or revert a campaign send job. Use 'cancel' to permanently stop a campaign (status becomes CANCELED), or 'revert' to return it to DRAFT for editing. This action modifies a campaign send job that is currently queued or sending. The cancel action is irreversible and sets the status to CANCELED. The revert action returns the campaign to DRAFT status, allowing further modifications. Rate limits: 10/s burst, 150/m steady. Required scope: `campaigns:write`. Preconditions: - Valid API key with campaigns:write scope - Campaign send job ID must exist and be accessible - Campaign must be in a state that allows cancellation (queued or sending)
Create back in stock subscriptionKLAVIYO_CREATE_BACK_IN_STOCK_SUBSCRIPTION
Use the server-side endpoint to subscribe to restock alerts, following the Back in Stock API guide. For client-side, use the POST endpoint provided. Rate limits: 350/s burst and 3500/m steady. Required scopes: catalogs:write, profiles:write.
Create campaignKLAVIYO_CREATE_CAMPAIGN
Creates a campaign given a set of parameters, then returns it.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `campaigns:write`
Create campaign cloneKLAVIYO_CREATE_CAMPAIGN_CLONE
Clones an existing campaign, returning a new campaign based on the original with a new ID and name.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `campaigns:write`
Create Campaign Recipient Estimation JobKLAVIYO_CREATE_CAMPAIGN_RECIPIENT_ESTIMATION_JOB
Start an asynchronous task to estimate the number of recipients for a campaign. This action creates a background job that calculates how many profiles would receive the campaign based on its current audience settings. Use the job ID returned to track progress with the 'Get Campaign Recipient Estimation Job' action, and get the final count via 'Get Campaign Recipient Estimation' action. Rate limits: 10/s burst, 150/m steady. Required scope: `campaigns:write`. Preconditions: - Valid API key with campaigns:write scope - Campaign ID must exist and be accessible - Campaign must have audience settings configured
Create campaign send jobKLAVIYO_CREATE_CAMPAIGN_SEND_JOB
Trigger a campaign to send asynchronously<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `campaigns:write`
Create catalog categoryKLAVIYO_CREATE_CATALOG_CATEGORY
Create a new catalog category.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `700/m` **Scopes:** `catalogs:write`
Create catalog category relationships itemsKLAVIYO_CREATE_CATALOG_CATEGORY_RELATIONSHIPS_ITEMS
Create a new item relationship for the given category ID.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `700/m` **Scopes:** `catalogs:write`
Create catalog itemKLAVIYO_CREATE_CATALOG_ITEM
Create a new catalog item.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `700/m` **Scopes:** `catalogs:write`
Create catalog item relationships categoriesKLAVIYO_CREATE_CATALOG_ITEM_RELATIONSHIPS_CATEGORIES
Create a new catalog category relationship for the given item ID.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `700/m` **Scopes:** `catalogs:write`
Create catalog variantKLAVIYO_CREATE_CATALOG_VARIANT
Create a new variant for a related catalog item.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `700/m` **Scopes:** `catalogs:write`
Create client back in stock subscriptionKLAVIYO_CREATE_CLIENT_BACK_IN_STOCK_SUBSCRIPTION
Use the endpoint for client-side back in stock notifications with a public API key. For server-side, use POST /api/back-in-stock-subscriptions. Limits are 350 requests per second and 3500 per minute. Requires 'catalogs:write' and 'profiles:write' scopes.
Create Client Event V2KLAVIYO_CREATE_CLIENT_EVENT2
Create a client-side event in Klaviyo to track user interactions. This action uses the company_id in the request body instead of as a query parameter. Use when tracking events from publicly-browseable, client-side environments with a public API key.
Create client subscriptionKLAVIYO_CREATE_CLIENT_SUBSCRIPTION
Endpoint manages email/SMS opt-ins using consent and requires public API key for client use. Allows single-channel with details. Rate limit: 100/s burst, 700/m steady, under 'subscriptions:write'.
Create couponKLAVIYO_CREATE_COUPON
Creates a new coupon.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `coupons:write`
Create coupon codeKLAVIYO_CREATE_COUPON_CODE
Synchronously creates a coupon code for the given coupon.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m` **Scopes:** `coupon-codes:write`
Create eventKLAVIYO_CREATE_EVENT
Create or update a profile event with minimum identifiers and metric name. Success means validation, not completion. Burst limit: 350/s, Steady: 3500/m. Scope required: `events:write`.
Create listKLAVIYO_CREATE_LIST
Create a new list.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`<br>Daily: `100/d` **Scopes:** `lists:write`
Create or update client profileKLAVIYO_CREATE_OR_UPDATE_CLIENT_PROFILE
Update user profiles without tracking using a public client-side API; use a private server-side API for identifier changes. Burst rate is 350 requests/sec and 3500 requests/min with 'profiles:write' access.
Create or update client push tokenKLAVIYO_CREATE_OR_UPDATE_CLIENT_PUSH_TOKEN
This endpoint for mobile SDKs (iOS & Android) creates/updates push tokens using a public API key. Push notifications must be enabled. For migrating tokens use the server-side POST endpoint. Rate limits are 3/s burst, 150/m steady.
Create or Update ProfileKLAVIYO_CREATE_OR_UPDATE_PROFILE
Create or update a profile in Klaviyo with the given attributes. This action allows you to create a new profile or update an existing one if it already exists (based on email or other identifiers). Returns 201 for creation, 200 for update. Empty fields are cleared with `null`; omitted fields remain unchanged. Rate limits: 75/s burst, 700/m steady. Required scope: `profiles:write`. Preconditions: - At least one identifier (email, phone_number, external_id, or anonymous_id) must be provided - Email must be in valid format if provided - Phone number must be in E.164 format if provided
Create or update push tokenKLAVIYO_CREATE_OR_UPDATE_PUSH_TOKEN
Create or update a push token for mobile push notifications. This server-side endpoint is used for migrating push tokens from other platforms to Klaviyo. For creating tokens from mobile devices, use Klaviyo's mobile SDKs instead. Prerequisites: Push notifications must be enabled for the Klaviyo account. Required fields: - data__type: Must be 'push-token' - data__attributes__token: The push token from APNS or FCM - data__attributes__platform: 'ios' or 'android' - data__attributes__vendor: 'apns' (iOS) or 'fcm' (Android) - data__attributes__profile__data__type: Must be 'profile' - At least one profile identifier (email, phone_number, external_id, anonymous_id, or profile id) Rate limits: 75/s burst, 700/m steady. Max payload: 100KB. Requires scopes: profiles:write, push-tokens:write
Create profileKLAVIYO_CREATE_PROFILE
Create a new profile.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `700/m` **Scopes:** `profiles:write`
Create segmentKLAVIYO_CREATE_SEGMENT
Create a segment.<br><br>*Rate limits*:<br>Burst: `1/s`<br>Steady: `15/m`<br>Daily: `100/d` **Scopes:** `segments:write`
Create tagKLAVIYO_CREATE_TAG
Summary: Instructions on creating a tag within an account's designated tag group with a maximum of 500 tags, with optional tag group specification. Rate limits are 3/s burst and 60/min steady. Tag: #TagCreationLimitAndRate
Create tag groupKLAVIYO_CREATE_TAG_GROUP
Create tag groups up to 50 per account, defaulting to non-exclusive unless specified. Related resources can have multiple non-exclusive tags but only one if exclusive. Rate limits: 3/s burst, 60/m steady. Scopes needed: tags:read, tags:write.
Create Tag RelationshipsKLAVIYO_CREATE_TAG_RELATIONSHIPS
Associate a tag with other resources (flows, lists, segments, or campaigns) in Klaviyo. Use when you need to link a tag to one or more resources for organizational purposes. Note: A resource can have up to 100 tags associated with it. Rate limits: 3/s burst, 60/m steady. Required scopes vary by resource type: tags:write plus the appropriate write scope (flows:write, lists:write, segments:write, or campaigns:write).
Create templateKLAVIYO_CREATE_TEMPLATE
Summary: Custom HTML templates can be created unless an account reaches 1,000 template limit. Use sparse fieldsets to request specific fields. Rate limits are 10 per second and 150 per minute. Requires 'templates:write' scope.
Create template cloneKLAVIYO_CREATE_TEMPLATE_CLONE
Clone a template by its ID, but cloning fails if account has 1,000+ templates. API limit: 1,000 templates. Rate limits are 10 per second and 150 per minute. Requires `templates:write` scope.
Create template renderKLAVIYO_CREATE_TEMPLATE_RENDER
Render an email template with specific context and sparse fieldsets, then get HTML/plain text. Rate limit: 3/s burst, 60/m steady. Scope: templates:read.
Create webhookKLAVIYO_CREATE_WEBHOOK
Create a new Webhook to receive real-time notifications when specific events occur in Klaviyo (e.g., email clicks, SMS sent). Rate limits: Burst: 1/s, Steady: 15/m Required scopes: webhooks:write, events:read (for event-based topics) Note: Each Klaviyo account can have a maximum of 10 webhooks.
Delete campaignKLAVIYO_DELETE_CAMPAIGN
Delete a campaign with the given campaign ID.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `campaigns:write`
Delete catalog categoryKLAVIYO_DELETE_CATALOG_CATEGORY
Delete a catalog category using the given category ID.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `700/m` **Scopes:** `catalogs:write`
Delete catalog category relationships itemsKLAVIYO_DELETE_CATALOG_CATEGORY_RELATIONSHIPS_ITEMS
Delete item relationships for the given category ID.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `700/m` **Scopes:** `catalogs:write`
Delete catalog itemKLAVIYO_DELETE_CATALOG_ITEM
Delete a catalog item with the given item ID.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `700/m` **Scopes:** `catalogs:write`
Delete catalog item relationships categoriesKLAVIYO_DELETE_CATALOG_ITEM_RELATIONSHIPS_CATEGORIES
Delete catalog category relationships for the given item ID.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `700/m` **Scopes:** `catalogs:write`
Delete catalog variantKLAVIYO_DELETE_CATALOG_VARIANT
Delete a catalog item variant with the given variant ID.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `700/m` **Scopes:** `catalogs:write`
Delete couponKLAVIYO_DELETE_COUPON
Delete the coupon with the given coupon ID.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `coupons:write`
Delete coupon codeKLAVIYO_DELETE_COUPON_CODE
Deletes a coupon code specified by the given identifier synchronously. If a profile has been assigned to the coupon code, an exception will be raised<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m` **Scopes:** `coupon-codes:write`
Delete flowKLAVIYO_DELETE_FLOW
Delete a flow with the given flow ID.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `flows:write`
Delete listKLAVIYO_DELETE_LIST
Delete a list with the given list ID.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `lists:write`
Delete segmentKLAVIYO_DELETE_SEGMENT
Delete a segment with the given segment ID.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `segments:write`
Delete tagKLAVIYO_DELETE_TAG
Delete the tag with the given tag ID. Any associations between the tag and other resources will also be removed.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `tags:read` `tags:write`
Delete tag groupKLAVIYO_DELETE_TAG_GROUP
Delete a specified tag group and its contents; associated resource links will be removed. The default group is undeletable. Rate limits: 3/s burst, 60/m steady. Requires tags:read and tags:write permissions.
Delete Tag RelationshipsKLAVIYO_DELETE_TAG_RELATIONSHIPS
Remove a tag's association with other resources like flows, campaigns, lists, or segments. Use when you need to untag resources without deleting the tag itself.
Delete templateKLAVIYO_DELETE_TEMPLATE
Permanently delete a template from your Klaviyo account using its unique template ID. This action is destructive and cannot be undone. Rate limits: Burst 10/s, Steady 150/m. Requires 'templates:write' scope.
Delete webhookKLAVIYO_DELETE_WEBHOOK
Permanently delete a webhook subscription from your Klaviyo account. This action removes the webhook configuration, stopping all future event notifications to the webhook's endpoint URL. This operation is irreversible. **Requirements:** - Advanced KDP (Klaviyo Data Platform) must be enabled on your account - API key must have `webhooks:write` scope **Rate limits:** Burst: 1/s, Steady: 15/m **Returns:** HTTP 204 No Content on successful deletion (empty response body).
Get accountKLAVIYO_GET_ACCOUNT
Retrieve a single account object by its account ID. You can only request the account by which the private API key was generated.<br><br>*Rate limits*:<br>Burst: `1/s`<br>Steady: `15/m` **Scopes:** `accounts:read`
Get accountsKLAVIYO_GET_ACCOUNTS
Use a private API key to fetch an associated account's details like contact info, timezone, and currency, as well as validate the key. Rate limit: 1 request/second, 15 requests/minute. Scope required: `accounts:read`.
Get Bulk Create Coupon Codes JobKLAVIYO_GET_BULK_CREATE_COUPON_CODES_JOB
Tool to get a coupon code bulk create job with the given job ID. Use when you need to check the status of a previously initiated bulk coupon code creation job. Rate limits: 75/s burst, 700/m steady. Required scope: coupon-codes:read.
Get Bulk Delete Catalog Items JobKLAVIYO_GET_BULK_DELETE_CATALOG_ITEMS_JOB
Get a catalog item bulk delete job with the given job ID. Use this to check the status and progress of a bulk delete operation for catalog items. Rate limits: 350/s burst, 3500/m steady. Required scope: `catalogs:read`. Preconditions: - Valid API key with catalogs:read scope - Job ID must exist and be accessible
Get bulk profile import jobKLAVIYO_GET_BULK_PROFILE_IMPORT_JOB
Get a bulk profile import job with the given job ID.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `lists:read` `profiles:read`
Get bulk profile import job errorsKLAVIYO_GET_BULK_PROFILE_IMPORT_JOB_ERRORS
Get import errors for the bulk profile import job with the given ID.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `profiles:read`
Get bulk profile import job listsKLAVIYO_GET_BULK_PROFILE_IMPORT_JOB_LISTS
Get list for the bulk profile import job with the given ID.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `lists:read`
Get bulk profile import job profilesKLAVIYO_GET_BULK_PROFILE_IMPORT_JOB_PROFILES
Get profiles for the bulk profile import job with the given ID.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `profiles:read`
Get bulk profile import job relationships listsKLAVIYO_GET_BULK_PROFILE_IMPORT_JOB_RELATIONSHIPS_LISTS
Get list relationship for the bulk profile import job with the given ID.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `lists:read`
Showing the first 60 of 225 actions.