Skip to main content
klaviyo icon

Klaviyo Connector

SourceAPI DocsAPI ChangelogConnector Changelog

Description​

Klaviyo is a cloud-based email marketing solution that enables e-commerce businesses to create, send, and analyze email and SMS campaigns.

This component provides the ability to manage templates, campaigns, events, profiles, lists, segments, and images.

API Documentation​

The component was built using the Klaviyo API Reference.

Connections​

API Key​

key: klaviyoApiKeyConnection

API key authentication is deprecated. Use OAuth 2.0 for new integrations. See the Klaviyo migration guide for details.

Prerequisites​

  • A Klaviyo account with an existing private API key.

Setup Steps​

  1. Log into Klaviyo and navigate to Settings > API Keys.
  2. Copy the private API key.

Configure the Connection​

Create a connection of type API Key.

FieldDescription
API KeyThe private API key from Klaviyo.
InputNotesExample
API Key

API key for Klaviyo.

OAuth 2.0​

key: klaviyoOAuth2Connection

OAuth configuration requires setting up an app in Klaviyo. See the Set up OAuth guide for more information.

Prerequisites​

  • A Klaviyo account with access to the Manage apps page.

Setup Steps​

  1. Log into Klaviyo and navigate to the Manage apps page.
  2. Select Create App.
  3. Name the app and copy the Client ID and Client Secret.
  4. Select Save and continue to proceed.
  5. Enter the following into the Redirect URL field: https://oauth2.prismatic.io/callback and save.
  6. Select Review Submission to submit the app for completion.

Configure the Connection​

Create a connection of type OAuth 2.0.

FieldDescription
ScopesSpace-separated list of OAuth scopes, if needed.
Client IDThe Client ID from the Klaviyo app.
Client secretThe Client secret from the Klaviyo app.
InputNotesExample
Authorize URLhttps://www.klaviyo.com/oauth/authorize
Client ID

The Client ID from the Klaviyo OAuth application.

Client Secret

The Client Secret from the Klaviyo OAuth application.

Scopes

Space separated list of scopes if needed

Token URLhttps://a.klaviyo.com/oauth/token

Triggers​

New and Updated Campaigns​

Retrieves existing and ongoing campaigns for a specified Klaviyo message channel. Load history once, check for changes on a schedule, or both. | key: pollCampaignChangesTrigger

InputNotesExample
Connection

The Klaviyo connection to use.

Look-back Date

The date the initial sync starts from, in YYYY-MM-DD format. Cannot be a future date. Leave empty to start from the first recurrence with no backfill. When set, the initial sync seeds each record modified on or after this date once.

2026-01-01
Message Channel

Klaviyo requires a channel filter to list campaigns. Select which channel's campaigns the trigger should return.

Show New Records

When true, newly created records are included in the trigger output.

true
Show Updated Records

When true, records updated since the last poll are included in the trigger output.

true

This trigger polls the Klaviyo API for new and updated campaigns on the selected message channel since the last execution.

How It Works​

  1. The trigger runs on the configured polling schedule
  2. On the first execution, the Look-back Date determines the starting point. When set, the trigger seeds lastPolledAt to that date and fetches all records modified on or after it. When empty, the current timestamp is stored as the initial lastPolledAt and no records are returned
  3. On each subsequent execution, a server-side Klaviyo JSON:API filter is built from the configured Message Channel and the stored lastPolledAt: and(equals(messages.channel,'<channel>'),greater-than(updated_at,<lastPolledAt>))
  4. All paginated campaign records matching the filter are fetched via the Klaviyo Campaigns API
  5. Returned records are categorized client-side as created or updated based on the createdAt timestamp relative to lastPolledAt. Records whose createdAt exceeds lastPolledAt are classified as created; all other records returned by the filter are classified as updated
  6. After the fetch completes, the current timestamp is stored as the new lastPolledAt
  7. If both Show New Records and Show Updated Records are disabled, the trigger short-circuits without calling the API and still advances lastPolledAt

The trigger sets polledNoChanges: true when no matching records are returned, allowing downstream flows to skip execution when there is nothing to process.

Initial sync

Setting a Look-back Date turns the first recurrence into an initial sync: the trigger seeds its position to that date and sweeps every record modified on or after it, each record once. No input is suppressed during the sync. Message Channel, Show New Records, and Show Updated Records apply on the first recurrence exactly as they do on later ones.

The sync window has no fixed upper bound, so a campaign modified while the sync runs is swept into it rather than left for the next recurrence. On completion the position advances to the time that recurrence started, and the next recurrence resumes from exactly there. No field in the payload marks the handoff. The sync drains in a single recurrence whether or not batching is enabled.

Batching

Batching is enabled per flow on this trigger: each changed record is dispatched as its own execution, or grouped by the configured batch size. Batch size and batch concurrency can both be overridden per instance. Raising concurrency increases the request volume sent to Klaviyo.

To turn it on, select the flow's trigger, open the Flow control tab, and switch on Enable Batching. Under Batch Size, keep Trigger default or choose Custom batch size. Batch Concurrency is optional; leave it blank for no batch-level limit.

With batching enabled, each execution receives a single { changeType, record } object instead of the created and updated arrays. Any downstream step that reads body.data.created or body.data.updated must be updated to read the batched shape before enabling batching.

Returned Data​

The trigger returns an object with two arrays: created for newly created campaigns and updated for modified campaigns. Both arrays follow the Klaviyo JSON:API resource shape. Fields shown are representative. The full response object includes additional properties.

Example Payload
{
"data": {
"created": [
{
"type": "campaign",
"id": "01HABCDEF0123456789CAMPAIGN1",
"attributes": {
"name": "Spring Sale Email",
"status": "Draft",
"archived": false,
"audiences": {
"included": ["Y6nRLr"],
"excluded": []
},
"sendOptions": {
"useSmartSending": true
},
"trackingOptions": {
"isTrackingClicks": true,
"isTrackingOpens": true
},
"sendStrategy": {
"method": "static"
},
"createdAt": "2026-04-15T14:30:00Z",
"scheduledAt": null,
"updatedAt": "2026-04-15T14:30:00Z",
"sendTime": null
},
"relationships": {
"campaignMessages": {
"data": [{ "type": "campaign-message", "id": "01HMSG0123456789" }]
}
}
}
],
"updated": [
{
"type": "campaign",
"id": "01HABCDEF0123456789CAMPAIGN2",
"attributes": {
"name": "Welcome Series",
"status": "Sent",
"archived": false,
"audiences": {
"included": ["UTd5ui"],
"excluded": []
},
"createdAt": "2026-03-01T09:00:00Z",
"scheduledAt": "2026-03-02T15:00:00Z",
"updatedAt": "2026-04-15T16:22:00Z",
"sendTime": "2026-03-02T15:00:00Z"
}
}
]
}
}

Notes​

  • The messages.channel equality filter is required by the Klaviyo Campaigns API. Campaign list calls without it are rejected
  • The greater-than(updated_at,...) clause is applied server-side, so only campaigns modified since the last poll are returned
  • A newly created campaign has createdAt == updatedAt, so the same record is never classified as both created and updated
  • Refer to the Klaviyo API rate limits documentation for throttling behavior and the Get Campaigns endpoint reference for the full list of returned attributes
Example Payload for New and Updated Campaigns⤓
Loading…

New and Updated Profiles and Lists​

Retrieves existing and ongoing profiles and lists in Klaviyo. Load history once, check for changes on a schedule, or both. | key: pollProfileAndListChangesTrigger

InputNotesExample
Connection

The Klaviyo connection to use.

Look-back Date

The date the initial sync starts from, in YYYY-MM-DD format. Cannot be a future date. Leave empty to start from the first recurrence with no backfill. When set, the initial sync seeds each record modified on or after this date once.

2026-01-01
Resource Type

The type of resource to poll for new and updated records.

Show New Records

When true, newly created records are included in the trigger output.

true
Show Updated Records

When true, records updated since the last poll are included in the trigger output.

true

This trigger polls the Klaviyo API for new and updated profiles or lists since the last execution.

How It Works​

  1. The trigger runs on the configured polling schedule
  2. On the first execution, the Look-back Date determines the starting point. When set, the trigger seeds lastPolledAt to that date and fetches all records modified on or after it. When empty, the current timestamp is stored as the initial lastPolledAt and no records are returned
  3. On each subsequent execution, a server-side Klaviyo JSON:API filter is built from the stored lastPolledAt: greater-than(updated,<lastPolledAt>)
  4. All paginated records of the selected Resource Type matching the filter are fetched via the corresponding Klaviyo API (Profiles or Lists)
  5. Returned records are categorized client-side as created or updated based on the created timestamp relative to lastPolledAt. Records whose created exceeds lastPolledAt are classified as created; all other records returned by the filter are classified as updated
  6. After the fetch completes, the current timestamp is stored as the new lastPolledAt
  7. If both Show New Records and Show Updated Records are disabled, the trigger short-circuits without calling the API and still advances lastPolledAt

The trigger sets polledNoChanges: true when no matching records are returned, allowing downstream flows to skip execution when there is nothing to process.

Initial sync

Setting a Look-back Date turns the first recurrence into an initial sync: the trigger seeds its position to that date and sweeps every record modified on or after it, each record once. No input is suppressed during the sync. Resource Type, Show New Records, and Show Updated Records apply on the first recurrence exactly as they do on later ones.

The sync window has no fixed upper bound, so a record modified while the sync runs is swept into it rather than left for the next recurrence. On completion the position advances to the time that recurrence started, and the next recurrence resumes from exactly there. No field in the payload marks the handoff. The sync drains in a single recurrence whether or not batching is enabled.

Batching

Batching is enabled per flow on this trigger: each changed record is dispatched as its own execution, or grouped by the configured batch size. Batch size and batch concurrency can both be overridden per instance. Raising concurrency increases the request volume sent to Klaviyo.

To turn it on, select the flow's trigger, open the Flow control tab, and switch on Enable Batching. Under Batch Size, keep Trigger default or choose Custom batch size. Batch Concurrency is optional; leave it blank for no batch-level limit.

With batching enabled, each execution receives a single { changeType, record } object instead of the created and updated arrays. Any downstream step that reads body.data.created or body.data.updated must be updated to read the batched shape before enabling batching.

Supported Resource Types​

Resource TypeKlaviyo EndpointCreated FieldUpdated Field
profilesGET /api/profilescreatedupdated
listsGET /api/listscreatedupdated

Returned Data​

The trigger returns an object with two arrays: created for newly created records and updated for modified records. Each record follows the Klaviyo JSON:API resource shape for the selected resource type. Fields shown are representative. The full response object includes additional properties.

Example Payload (Profiles)
{
"data": {
"created": [
{
"type": "profile",
"id": "01HPROFILE0123456789ABCDEF",
"attributes": {
"email": "jane.doe@example.com",
"phoneNumber": "+15555550123",
"firstName": "Jane",
"lastName": "Doe",
"created": "2026-04-15T14:30:00Z",
"updated": "2026-04-15T14:30:00Z",
"lastEventDate": null,
"subscriptions": {
"email": {
"marketing": {
"canReceiveEmailMarketing": true,
"consent": "SUBSCRIBED"
}
}
}
}
}
],
"updated": [
{
"type": "profile",
"id": "01HPROFILE9876543210ZYXWVU",
"attributes": {
"email": "john.smith@example.com",
"firstName": "John",
"lastName": "Smith",
"created": "2025-12-01T09:00:00Z",
"updated": "2026-04-15T16:22:00Z",
"lastEventDate": "2026-04-15T16:22:00Z"
}
}
]
}
}
Example Payload (Lists)
{
"data": {
"created": [
{
"type": "list",
"id": "Y6nRLr",
"attributes": {
"name": "Spring Newsletter",
"created": "2026-04-15T14:30:00Z",
"updated": "2026-04-15T14:30:00Z",
"optInProcess": "double_opt_in"
},
"relationships": {
"profiles": {
"links": {
"self": "https://a.klaviyo.com/api/lists/Y6nRLr/relationships/profiles/",
"related": "https://a.klaviyo.com/api/lists/Y6nRLr/profiles/"
}
}
}
}
],
"updated": [
{
"type": "list",
"id": "UTd5ui",
"attributes": {
"name": "VIP Customers",
"created": "2025-10-10T12:00:00Z",
"updated": "2026-04-15T16:22:00Z",
"optInProcess": "single_opt_in"
}
}
]
}
}

Notes​

  • The greater-than(updated,...) filter is applied server-side, so only records modified since the last poll are returned
  • A newly created record has created == updated, so the same record is never classified as both created and updated
  • Both profiles and lists use the created and updated attribute names. These differ from the created_at / updated_at names used by the Campaigns API
  • Refer to the Klaviyo API rate limits documentation for throttling behavior and the Get Profiles and Get Lists endpoint references for the full list of returned attributes
Example Payload for New and Updated Profiles and Lists⤓
Loading…

Data Sources​

Select Account​

Select an account to use. | key: selectAccount | type: picklist

InputNotesExample
Connection

The Klaviyo connection to use.

Example Payload for Select Account⤓
Loading…

Select Campaign​

Select a campaign to use. | key: selectCampaign | type: picklist

InputNotesExample
Connection

The Klaviyo connection to use.

Example Payload for Select Campaign⤓
Loading…

Select Event​

Select an event to use. | key: selectEvent | type: picklist

InputNotesExample
Connection

The Klaviyo connection to use.

Example Payload for Select Event⤓
Loading…

Select Image​

Select an image from a Klaviyo account. | key: selectImage | type: picklist

InputNotesExample
Connection

The Klaviyo connection to use.

Example Payload for Select Image⤓
Loading…

Select List​

Select a list from a Klaviyo account. | key: selectList | type: picklist

InputNotesExample
Connection

The Klaviyo connection to use.

Example Payload for Select List⤓
Loading…

Select Profile​

Select a profile to use. | key: selectProfile | type: picklist

InputNotesExample
Connection

The Klaviyo connection to use.

Example Payload for Select Profile⤓
Loading…

Select Segment​

Select a segment from a Klaviyo account. | key: selectSegment | type: picklist

InputNotesExample
Connection

The Klaviyo connection to use.

Example Payload for Select Segment⤓
Loading…

Select Template​

Select a template to use. | key: selectTemplate | type: picklist

InputNotesExample
Connection

The Klaviyo connection to use.

Example Payload for Select Template⤓
Loading…

Actions​

Bulk Create Events​

Create a batch of events for one or more profiles. | key: bulkCreateEvents

InputNotesExample
Connection

The Klaviyo connection to use.

Events Array

An array of events to create.

[
  {
    "type": "event-bulk-create",
    "attributes": {
      "profile": {
        "data": {
          "type": "profile",
          "attributes": {
            "email": "sarah.mason@klaviyo-demo.com",
            "phoneNumber": "+15005550006",
            "firstName": "Sarah",
            "lastName": "Mason",
            "organization": "Example Corporation",
            "title": "Regional Manager",
            "image": "https://images.pexels.com/photos/3760854/pexels-photo-3760854.jpeg",
            "location": {
              "address1": "89 E 42nd St",
              "address2": "1st floor",
              "city": "New York",
              "country": "United States",
              "latitude": "40.7128",
              "longitude": "74.0060",
              "region": "NY",
              "zip": "10017",
              "timezone": "America/New_York",
              "ip": "127.0.0.1"
            }
          },
          "meta": {
            "patchProperties": {
              "unset": [
                "skus"
              ]
            }
          }
        }
      },
      "events": {
        "data": [
          {
            "type": "event",
            "attributes": {
              "properties": {
                "newKey": "New Value"
              },
              "time": null,
              "value": 9.99,
              "valueCurrency": "USD",
              "metric": {
                "data": {
                  "type": "metric",
                  "attributes": {
                    "name": "Viewed Product"
                  }
                }
              },
              "uniqueId": "123"
            }
          }
        ]
      }
    }
  }
]
Example Payload for Bulk Create Events⤓
Loading…

Create Campaign​

Creates a campaign given a set of parameters, then returns it. | key: createCampaign

InputNotesExample
Campaign Configuration

Tracking options, send options, and send strategy.

Campaign Messages

The message(s) to send in the campaign.

[
  {
    "type": "campaign-message",
    "attributes": {
      "channel": "email",
      "label": "My message name",
      "content": {
        "subject": "Buy our product!",
        "previewText": "My preview text",
        "fromEmail": "store@my-company.com",
        "fromLabel": "My Company",
        "replyToEmail": "reply-to@my-company.com",
        "ccEmail": "cc@my-company.com",
        "bccEmail": "bcc@my-company.com"
      },
      "renderOptions": {
        "shortenLinks": true,
        "addOrgPrefix": true,
        "addInfoLink": true,
        "addOptOutLanguage": false
      }
    }
  }
]
Campaign Name

A display name to identify the campaign.

My new campaign
Connection

The Klaviyo connection to use.

Excluded Audiences

The IDs of lists or segments to exclude from the campaign.

X7MYfE
Included Audiences

The IDs of lists or segments to receive the campaign.

X7MYfE
Example Payload for Create Campaign⤓
Loading…

Create Event​

Create a new event to track a profiles activity. | key: createEvent

InputNotesExample
Connection

The Klaviyo connection to use.

Event Details

Timestamp, monetary value, currency, and unique ID for the event.

Event Name

The metric name that identifies this event type.

Viewed Product
Event Profile

The profile associated with this event.

{
  "phoneNumber": "+15005550006",
  "firstName": "Sarah",
  "lastName": "Mason",
  "organization": "Example Corporation",
  "title": "Regional Manager",
  "image": "https://images.pexels.com/photos/3760854/pexels-photo-3760854.jpeg",
  "location": {
    "address1": "89 E 42nd St",
    "address2": "1st floor",
    "city": "New York",
    "country": "United States",
    "region": "NY",
    "zip": "10017",
    "timezone": "America/New_York",
    "ip": "127.0.0.1"
  },
  "properties": {
    "newKey": "New Value"
  },
  "meta": {
    "patchProperties": {
      "append": {
        "newKey": "New Value"
      },
      "unappend": {
        "newKey": "New Value"
      },
      "unset": [
        "skus"
      ]
    }
  },
  "email": "sarah.mason@klaviyo-demo.com"
}
Event Properties

A JSON object of custom key-value pairs to attach to the event.

{
  "newKey": "New Value"
}
Example Payload for Create Event⤓
Loading…

Create List​

Create a new list. | key: createList

InputNotesExample
Connection

The Klaviyo connection to use.

List Name

A helpful name to label the list.

Newsletter
Example Payload for Create List⤓
Loading…

Create Profile​

Create a new profile. | key: createProfile

InputNotesExample
Connection

The Klaviyo connection to use.

Contact Information

Email, phone, and other contact channel details.

Additional Fields

Additional optional fields: includes External ID, Organization, Title, Image, Location, and Properties.

Example Payload for Create Profile⤓
Loading…

Create Segment​

Create a segment. | key: createSegment

InputNotesExample
Connection

The Klaviyo connection to use.

Is Starred Segment

When true, pins the segment to the top of the segments list in the Klaviyo UI.

false
Segment Condition Groups

The condition groups that define the segment.

[
  {
    "conditions": [
      {
        "type": "profile-group-membership",
        "isMember": true,
        "groupIds": [
          "X7MYfE"
        ],
        "timeframeFilter": {
          "type": "date",
          "operator": "in-the-last",
          "unit": "day",
          "quantity": 14
        }
      }
    ]
  }
]
Segment Name

A display name to identify the segment.

A segment
Example Payload for Create Segment⤓
Loading…

Create Template​

Create a new custom HTML template. | key: createTemplate

InputNotesExample
Connection

The Klaviyo connection to use.

Editor Type

The editor used to author the template. Currently only CODE is supported.

CODE
Template HTML

The HTML markup rendered to recipients.

<html><body><p>Hello, world!</p></body></html>
Template Name

A display name to identify the template.

Monthly Newsletter Template
Template Text

The plain-text fallback shown when HTML cannot be rendered.

Hello, world!
Example Payload for Create Template⤓
Loading…

Delete Campaign​

Delete a campaign with the given campaign ID. | key: deleteCampaign

InputNotesExample
Campaign ID

The unique identifier for the campaign.

01J2DNH88028WCAA2RK0BYBZVG
Connection

The Klaviyo connection to use.

Example Payload for Delete Campaign⤓
Loading…

Delete List​

Delete a list with the given list ID. | key: deleteList

InputNotesExample
Connection

The Klaviyo connection to use.

List ID

The unique identifier of the list.

RE83th
Example Payload for Delete List⤓
Loading…

Delete Segment​

Delete a segment with the given segment ID. | key: deleteSegment

InputNotesExample
Connection

The Klaviyo connection to use.

Segment ID

The unique identifier for the segment.

WwKnkd
Example Payload for Delete Segment⤓
Loading…

Delete Template​

Delete a template with the given template ID. | key: deleteTemplate

InputNotesExample
Connection

The Klaviyo connection to use.

Template ID

The unique identifier for the template.

123456
Example Payload for Delete Template⤓
Loading…

Get Account​

Retrieve a single account object by its account ID. | key: getAccount

InputNotesExample
Account ID

The unique identifier for the account.

AbC123
Connection

The Klaviyo connection to use.

Fields

The fields to include in the response.

Example Payload for Get Account⤓
Loading…

Get Campaign​

Returns a specific campaign based on a required id. | key: getCampaign

InputNotesExample
Campaign ID

The unique identifier for the campaign.

01J2DNH88028WCAA2RK0BYBZVG
Connection

The Klaviyo connection to use.

Fields

The fields to include in the response.

Example Payload for Get Campaign⤓
Loading…

Get Event​

Get an event with the given event ID. | key: getEvent

InputNotesExample
Connection

The Klaviyo connection to use.

Event ID

The unique identifier for the event.

5nJKMJuHUQy
Event Fields

Event fields to include in the response.

Metric Fields

Metric fields to include in the response.

Profile Fields

Profile fields to include in the response.

Example Payload for Get Event⤓
Loading…

Get Image​

Get the image with the given image ID. | key: getImage

InputNotesExample
Connection

The Klaviyo connection to use.

Fields

The fields to include in the response.

Image ID

The unique identifier for the image.

155463624
Example Payload for Get Image⤓
Loading…

Get List​

Get a list with the given list ID. | key: getList

InputNotesExample
Connection

The Klaviyo connection to use.

Fields

The fields to include in the response.

List ID

The unique identifier of the list.

RE83th
Example Payload for Get List⤓
Loading…

Get Profile​

Get the profile with the given profile ID. | key: getProfile

InputNotesExample
Additional Profile Fields

Request additional fields not included by default in the response.

Connection

The Klaviyo connection to use.

Fields

The fields to include in the response.

Profile ID

Unique identifier for the profile.

01J18FVB5H8XR1X9AXEQFVRW7A
Example Payload for Get Profile⤓
Loading…

Get Segment​

Get a segment with the given segment ID. | key: getSegment

InputNotesExample
Connection

The Klaviyo connection to use.

Fields

The fields to include in the response.

Segment ID

The unique identifier for the segment.

WwKnkd
Example Payload for Get Segment⤓
Loading…

Get Template​

Get a template with the given template ID. | key: getTemplate

InputNotesExample
Connection

The Klaviyo connection to use.

Fields

The fields to include in the response.

Template ID

The unique identifier for the template.

123456
Example Payload for Get Template⤓
Loading…

List Accounts​

Retrieve the account(s) associated with a given private API key. | key: listAccounts

InputNotesExample
Connection

The Klaviyo connection to use.

Fields

The fields to include in the response.

Example Payload for List Accounts⤓
Loading…

List Campaigns​

Returns some or all campaigns based on filters. | key: listCampaigns

InputNotesExample
Connection

The Klaviyo connection to use.

Fields

The fields to include in the response.

Filter Campaigns

A Klaviyo JSON:API filter expression to narrow the campaign list.

equals(messages.channel,'sms')
Example Payload for List Campaigns⤓
Loading…

List Events​

Get all events in an account. | key: listEvents

InputNotesExample
Connection

The Klaviyo connection to use.

Event Fields

Event fields to include in the response.

Metric Fields

Metric fields to include in the response.

Profile Fields

Profile fields to include in the response.

Example Payload for List Events⤓
Loading…

List Images​

Get all images in an account. | key: listImages

InputNotesExample
Connection

The Klaviyo connection to use.

Fields

The fields to include in the response.

Example Payload for List Images⤓
Loading…

List List Profiles​

Get all profiles within a list with the given list ID. | key: listListProfiles

InputNotesExample
Additional Profile Fields

Request additional fields not included by default in the response.

Connection

The Klaviyo connection to use.

Fields

The fields to include in the response.

List ID

The unique identifier of the list.

RE83th
Example Payload for List List Profiles⤓
Loading…

List Lists​

Get all lists in an account. | key: listLists

InputNotesExample
Connection

The Klaviyo connection to use.

Fields

The fields to include in the response.

Example Payload for List Lists⤓
Loading…

List Profiles​

Get all profiles in an account. | key: listProfile

InputNotesExample
Additional Profile Fields

Request additional fields not included by default in the response.

Connection

The Klaviyo connection to use.

Fields

The fields to include in the response.

Example Payload for List Profiles⤓
Loading…

List Segments​

Get all segments in an account. | key: listSegments

InputNotesExample
Connection

The Klaviyo connection to use.

Fields

The fields to include in the response.

Example Payload for List Segments⤓
Loading…

List Templates​

Get all templates in an account. | key: listTemplates

InputNotesExample
Connection

The Klaviyo connection to use.

Fields

The fields to include in the response.

Example Payload for List Templates⤓
Loading…

Raw Request​

Send raw HTTP request to Klaviyo. | key: rawRequest

InputNotesExample
Connection

The Klaviyo connection to use.

Data

The HTTP body payload to send to the URL.

{"exampleKey": "Example Data"}
Exclude Authorization

Exclude the Authorization header from the request. Turn this on and include the company_id query param when calling public endpoints (/client).

false
File Data

File Data to be sent as a multipart form upload.

[{key: "example.txt", value: "My File Contents"}]
File Data File Names

File names to apply to the file data inputs. Keys must match the file data keys above.

Form Data

The Form Data to be sent as a multipart form upload.

[{"key": "Example Key", "value": new Buffer("Hello World")}]
Header

A list of headers to send with the request.

User-Agent: curl/7.64.1
Max Retry Count

The maximum number of retries to attempt. Specify 0 for no retries.

0
Method

The HTTP method to use.

Query Parameter

A list of query parameters to send with the request. This is the portion at the end of the URL similar to ?key1=value1&key2=value2.

Response Type

The type of data you expect in the response. You can request json, text, or binary data.

json
Retry On All Errors

If true, retries on all erroneous responses regardless of type. This is helpful when retrying after HTTP 429 or other 3xx or 4xx errors. Otherwise, only retries on HTTP 5xx and network errors.

false
Retry Delay (ms)

The delay in milliseconds between retries. This is used when 'Use Exponential Backoff' is disabled.

0
Timeout

The maximum time that a client will await a response to its request

2000
URL

Input the path only (/api/accounts), The base URL is already included (https://a.klaviyo.com). For example, to connect to https://a.klaviyo.com/api/accounts, only /api/accounts is entered in this field.

/api/accounts
Use Exponential Backoff

Specifies whether to use a pre-defined exponential backoff strategy for retries. When enabled, 'Retry Delay (ms)' is ignored.

false

Subscribe Profiles​

Subscribe one or more profiles to email marketing, SMS marketing, or both. | key: subscribeProfiles

InputNotesExample
Connection

The Klaviyo connection to use.

Profiles

Array of profiles to subscribe.

[
  {
    "type": "profile",
    "id": "01GDDKASAP8TKDDA2GRZDSVP4H",
    "attributes": {
      "email": "matt-kemp@klaviyo-demo.com",
      "phoneNumber": "+15005550006",
      "subscriptions": {
        "email": {
          "marketing": {
            "consent": "SUBSCRIBED"
          }
        },
        "sms": {
          "marketing": {
            "consent": "SUBSCRIBED"
          }
        }
      }
    }
  }
]
Example Payload for Subscribe Profiles⤓
Loading…

Unsubscribe Profiles​

Unsubscribe one or more profiles to email marketing, SMS marketing, or both. | key: unsubscribeProfiles

InputNotesExample
Connection

The Klaviyo connection to use.

Profiles

Array of profiles to unsubscribe.

[
  {
    "type": "profile",
    "attributes": {
      "email": "matt-kemp@klaviyo-demo.com",
      "phoneNumber": "+15005550006"
    }
  }
]
Example Payload for Unsubscribe Profiles⤓
Loading…

Update Campaign​

Update a campaign with the given campaign ID. | key: updateCampaign

InputNotesExample
Campaign Configuration

Tracking options, send options, and send strategy.

Campaign ID

The unique identifier for the campaign.

01J2DNH88028WCAA2RK0BYBZVG
Campaign Name

A display name to identify the campaign.

My new campaign
Connection

The Klaviyo connection to use.

Excluded Audiences

The IDs of lists or segments to exclude from the campaign.

X7MYfE
Included Audiences

The IDs of lists or segments to receive the campaign.

X7MYfE
Example Payload for Update Campaign⤓
Loading…

Update Image​

Update the image with the given image ID. | key: updateImage

InputNotesExample
Connection

The Klaviyo connection to use.

Image Hidden

Controls whether the image is hidden in the image library.

Image ID

The unique identifier for the image.

155463624
Image Name

A name for the image. Defaults to the filename if not provided. If the name matches an existing image, a suffix will be added.

My Image
Example Payload for Update Image⤓
Loading…

Update List​

Update the name of a list with the given list ID. | key: updateList

InputNotesExample
Connection

The Klaviyo connection to use.

List ID

The unique identifier of the list.

RE83th
List Name

A helpful name to label the list.

Newsletter
Example Payload for Update List⤓
Loading…

Update Profile​

Update the profile with the given profile ID. | key: updateProfile

InputNotesExample
Connection

The Klaviyo connection to use.

Contact Information

Email, phone, and other contact channel details.

Additional Fields

Additional optional fields: includes External ID, Organization, Title, Image, Location, and Properties.

Profile ID

Unique identifier for the profile.

01J18FVB5H8XR1X9AXEQFVRW7A
Example Payload for Update Profile⤓
Loading…

Update Segment​

Update a segment with the given segment ID. | key: updateSegment

InputNotesExample
Connection

The Klaviyo connection to use.

Is Starred Segment

When true, pins the segment to the top of the segments list in the Klaviyo UI.

Segment Condition Groups

The condition groups that define the segment.

[
  {
    "conditions": [
      {
        "type": "profile-group-membership",
        "isMember": true,
        "groupIds": [
          "X7MYfE"
        ],
        "timeframeFilter": {
          "type": "date",
          "operator": "in-the-last",
          "unit": "day",
          "quantity": 14
        }
      }
    ]
  }
]
Segment ID

The unique identifier for the segment.

WwKnkd
Segment Name

A display name to identify the segment.

A segment
Example Payload for Update Segment⤓
Loading…

Update Template​

Update a template with the given template ID. | key: updateTemplate

InputNotesExample
Connection

The Klaviyo connection to use.

Template HTML

The HTML markup rendered to recipients.

<html><body><p>Hello, world!</p></body></html>
Template ID

The unique identifier for the template.

123456
Template Name

A display name to identify the template.

Monthly Newsletter Template
Template Text

The plain-text fallback shown when HTML cannot be rendered.

Hello, world!
Example Payload for Update Template⤓
Loading…

Upload Image​

Import an image from a url or file. | key: uploadImage

InputNotesExample
Connection

The Klaviyo connection to use.

File Data

The contents to write to a file. Binary data generated from a previous step.

Image Name

A name for the image. Defaults to the filename if not provided. If the name matches an existing image, a suffix will be added.

My Image
Image URL

An existing image url to import the image from. Alternatively, you may specify a base-64 encoded data-uri (data:image/...). Supported image formats: jpeg,png,gif. Maximum image size: 5MB. Use this field or File Data.

https://example.com/image.jpg
Example Payload for Upload Image⤓
Loading…

Changelog​

2026-09-28​

  • Added output schemas to 37 actions for improved field mapping during configuration
  • Added inline action calling support to the Get Account, Get Campaign, Get Event, Get Image, Get List, Get Profile, Get Segment, Get Template, and List Accounts actions for improved example output during configuration
  • Added opt-in batching to the New and Updated Campaigns and New and Updated Profiles and Lists triggers, dispatching each changed record individually or in configured batches so large backlogs drain in one recurrence; enabling it changes the shape a downstream step receives
  • Added an optional Look-back Date input for performing an initial sync of records on the New and Updated Campaigns and New and Updated Profiles and Lists triggers. The initial sync backfills every record modified on or after the specified date, seeding each once; later recurrences are unaffected. Leave it empty to start from the first recurrence with no backfill
  • Fixed the New and Updated Campaigns and New and Updated Profiles and Lists triggers reporting no changes on every recurrence, so new and updated records never reached the flow

2026-09-01​

Restructured action inputs into structured objects for an improved user experience.

  • Updated Create Profile and Update Profile to group their contact-channel and name inputs into Contact Information, and their remaining optional profile details into Profile Details
  • Updated Create Campaign and Update Campaign to group their tracking, send, and delivery-strategy inputs into Campaign Configuration
  • Updated Create Event to group its optional event metadata and value inputs into Event Details

2026-05-05​

Added two new triggers using Klaviyo's server-side filter for efficient change detection:

  • New and Updated Profiles and Lists for profiles and lists
  • New and Updated Campaigns which requires a Message Channel input

2026-04-30​

Updated spectral version

2026-02-26​

Added inline data sources for segments, lists, and images to enable dynamic dropdown selection

2025-07-23​

Added inline data sources for accounts, campaigns, events, profiles, and templates to enhance data selection capabilities