Klaviyo

Klaviyo is a marketing automation platform for email and SMS campaigns, enabling businesses to segment audiences and personalize communications. With Klaviyo modules in Make, you can manage the campaigns, events, metrics, profiles, lists, and segments in your Klaviyo account.
To use the Klaviyo modules, you must have an account. You can create an account at klaviyo.com.
Refer to the Klaviyo API documentation for a list of available endpoints.
Connect Klaviyo to Make
To establish the connection in Make:
Log in to your Make account, add a Klaviyo module to your scenario, and click Create a connection.
Optional: In the Connection name field, enter a name for the connection.
In the Additional Scopes field, enter the scopes for every API call you will make using the Make an API Call module.
For details, see the Set custom scopes section in the Klaviyo API Documentation.
Optional: Switch on Show advanced settings and enter your Klaviyo client credentials. For more information on how to obtain your credentials, refer to the Klaviyo Developers OAuth page.
If requested, use the following Redirect URI when setting up your client credentials: https://www.make.com/oauth/cb/klaviyo2
Click Save.
If prompted, authenticate your account and confirm access.
You've successfully created the connection and can now use the Klaviyo app in your scenarios. If you want to make changes to your connection in the future, follow the steps here.
Klaviyo modules
After connecting the app, you can perform the following actions:
Campaigns
- Watch Campaigns (Deprecated)
- Create a Campaign (Deprecated)
- Update a Campaign (Deprecated)
- Update a Campaign Send Job
- List Campaigns (Deprecated)
- Delete a Campaign
- Clone a Campaign (Deprecated)
- Create a Campaign Send Job
Events
- Watch Events
- Create an Event
Metrics
- Get a Metric
- Get Metric Aggregates
- List Metrics
Profiles
- Create a Profile
- Update a Profile
- Get a Person's Attributes
- Search List Profiles
- List Segment Profiles
- List Profiles
Lists & Segments
- Create and Add a Profile to a List
- Add/Subscribe Profiles to a List (Deprecated)
- Get List Details
- Unsubscribe and Remove Profiles from a List
Other
- Make an API Call
Migrate to the new Klaviyo modules
On October 15th, 2026, Make will update the Klaviyo app with new versions of the following modules to match changes in Klaviyo's API. These modules still work for now and are labeled Deprecated in the Scenario Builder.
To migrate, review the breaking changes for each module below. Replace the deprecated modules in your scenario with their new versions, then re-map the fields.
Add or Subscribe Profiles to a List
Change | What to do |
|---|---|
The Attributes and Subscriptions collections are now required when subscribing (previously optional). | Fill in both collections in the new module. Scenarios that left them empty need values before they can run. |
List ID is now a required top-level field (previously nested under Relationships > List). | Re-map your List ID into the new top-level field. |
A new Historical Import boolean is required. | Set it to No for normal use. Set it to Yes only when importing historical consent data. This enables a consented_at date field per channel. |
The action selector is renamed from Type of Action to Action. | No action needed. Re-select your action when replacing the module. |
List Campaigns
Change | What to do |
|---|---|
Filtering changed from a free-text Filter field (raw API filter syntax) to structured fields:
| Rebuild your filters using the new structured fields. Raw filter strings can't be pasted in. |
In the output, attributes.send_strategy.options_static, options_throttled, and options_sto are removed. They're replaced by flat attributes.send_strategy.datetime and attributes.send_strategy.options (is_local). The module now also returns scheduled_at by default. | Re-map anything that used these fields. |
The channel field is renamed from campaignChannel to messages_channel. | Re-select the channel when replacing the module. |
Field selection is renamed from "Fields Campaign" (raw API field names) to Extend Campaign Output (human-readable labels). | Re-select the fields you want returned using the new labels. |
Sort options now use human-readable labels (Created At, Created At (Descending)) instead of raw values (created_at, -created_at). | Re-select your sort order when replacing the module. |
Watch Campaigns
Change | What to do |
|---|---|
The default channel changed from SMS to Email. | Check the channel setting after replacing the module. If you watched SMS campaigns, select SMS. |
In the output, attributes.send_strategy.options_static, options_throttled, and options_sto are removed. They're replaced by flat attributes.send_strategy.datetime and attributes.send_strategy.options (is_local). The module now also returns scheduled_at by default. | Re-map anything that used these fields. |
Create a Campaign
Change | What to do |
|---|---|
A new UTM tracking setting replaces the old tracking-params. | Re-configure your tracking parameters using the new UTM tracking setting. |
Campaign message content is now required at creation: subject, from_email, and from_label must be provided. | Add the message content fields to your module setup. |
The Send Strategy structure is flattened: method > options_static, options_throttled, options_sto becomes method > datetime, options.is_local, throttle_percentage, date. | Re-map your send strategy values into the new flat fields. |
The Smart Send Time date changed from a date field to a text field (format: YYYY-MM-DD). | Pass the date as text in YYYY-MM-DD format. Date pills mapped directly may need formatDate(). |
A new fields[campaign] multi-select is available for sparse fieldsets. | No action needed. Optionally select fields to limit the returned campaign payload. |
In the output, attributes.send_strategy.options_static, options_throttled, and options_sto are removed, replaced by flat send_strategy.datetime and send_strategy.options.is_local. scheduled_at is now returned by default. | Re-map any options_static, options_throttled, and options_sto mappings to the new flat send_strategy.datetime and send_strategy.options. |
Update a Campaign
Change | What to do |
|---|---|
Audiences now replace the existing included and excluded audiences on the campaign (previously described as the audiences to include or exclude). | Map the full audience lists you want on the campaign. Audiences you don't include will be removed. |
The Send Strategy structure is flattened: method > options_static, options_throttled, and options_sto becomes method > datetime, options.is_local, throttle_percentage, date . | Re-map your send strategy values into the new flat fields. |
The Smart Send Time date changed from a date field to a text field (format: YYYY-MM-DD). | Pass the date as text in YYYY-MM-DD format. |
In the output, attributes.send_strategy.options_static, options_throttled, and options_sto are removed, replaced by flat attributes.send_strategy.datetime and attributes.send_strategy.options (is_local). The module now also returns scheduled_at by default. | Re-map any options_static, options_throttled, and options_sto mappings to the new flat send_strategy.datetime and send_strategy.options. |
Clone a Campaign
Change | What to do |
|---|---|
The Name field is now renamed New Name and is explicitly optional. | Re-map your campaign name into New Name. Leave it empty if you want to keep the source campaign's name. |
In the output, attributes.send_strategy.options_static, options_throttled, and options_sto are removed, replaced by flat attributes.send_strategy.datetime and attributes.send_strategy.options (is_local). The module now also returns scheduled_at by default. | Re-map any options_static, options_throttled, and options_sto mappings to the new flat send_strategy.datetime and send_strategy.options. |
Templates
You can look for Klaviyo templates in Make's template gallery, where you'll find thousands of pre-created scenarios.