> This page is for Agent Handler.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.merge.dev/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.merge.dev/_mcp/server.

# Klaviyo

**Authentication:** OAuth or API key. See [Magic Link](/merge-agent-handler/features/magic-link) for the runtime auth flow, or [Application credentials](/merge-agent-handler/admin-setup/add-oauth-credentials) to bring your own OAuth app.

## Sample use cases

* List every campaign sent in the last 14 days, with open and click rates.
* Find users who clicked the latest campaign but didn't convert.
* Add the contacts in this CSV to the `Q2 Re-engagement` flow.

## Available Tools

#### create\_campaign

Create a new Klaviyo email or SMS campaign. Requires a name, channel (email/sms), and audiences with included list IDs. Use list\_lists to find valid list IDs.

#### get\_campaign

Get a Klaviyo campaign by ID. Returns campaign details including name, status, and channel. Use list\_campaigns to find valid campaign IDs.

#### update\_campaign

Update a Klaviyo campaign's name or audiences. Only provided fields are updated. Use get\_campaign to verify current state first.

#### delete\_campaign

Delete a Klaviyo campaign. Only draft campaigns can be deleted. Use list\_campaigns to find valid campaign IDs.

#### list\_campaigns

List Klaviyo campaigns, optionally filtered by channel (email or sms). Returns campaign IDs, names, statuses, and channels.

#### send\_campaign

Send a Klaviyo campaign immediately. The campaign must be in a sendable state (not draft). Use get\_campaign to check status first.

#### create\_event

Create a new Klaviyo event (e.g. Placed Order, Viewed Product) for a profile. Events are used to track actions and trigger flows. Use list\_profiles to find profile IDs.

#### get\_event

Get a Klaviyo event by ID. Returns event details including metric, profile, properties, and timestamp.

#### list\_events

List Klaviyo events with optional filters by metric ID or profile ID, and pagination. Use list\_metrics to find metric IDs. Use cursor from page\_info for next page.

#### get\_flow

Get a Klaviyo flow by ID. Returns flow details including name and status (live, draft, manual). Use list\_flows to find valid flow IDs.

#### list\_flows

List all Klaviyo flows. Flows are automated sequences triggered by events or conditions. Returns flow IDs, names, and statuses.

#### update\_flow\_status

Update a Klaviyo flow's status to live, draft, or manual. Use get\_flow to check current status first.

#### get\_flow\_actions

Get all actions in a Klaviyo flow. Returns action IDs, types, and statuses for a given flow. Use list\_flows to find valid flow IDs.

#### create\_list

Create a new Klaviyo list. Lists are used to organize profiles for targeting in campaigns and flows.

#### get\_list

Get a Klaviyo list by ID. Returns list details including name and timestamps.

#### update\_list

Update a Klaviyo list name. Use get\_list or list\_lists to find valid list IDs.

#### delete\_list

Delete a Klaviyo list. This does not delete the profiles in the list. Use list\_lists to find valid list IDs.

#### list\_lists

List all Klaviyo lists. Returns list IDs and names for targeting in campaigns.

#### get\_list\_profiles

Get profiles in a Klaviyo list with pagination. Returns up to 100 profiles per page. Use cursor from page\_info for next page.

#### add\_profiles\_to\_list

Add one or more profiles to a Klaviyo list. Use create\_profile to create profiles first, then use their IDs here.

#### remove\_profiles\_from\_list

Remove one or more profiles from a Klaviyo list. This does not delete the profiles, only removes the list membership.

#### get\_metric

Get a Klaviyo metric by ID. Metrics represent event types like 'Placed Order' or 'Viewed Product'. Use list\_metrics to find valid metric IDs.

#### list\_metrics

List all Klaviyo metrics. Metrics represent event types that are tracked (e.g. 'Placed Order', 'Opened Email'). Returns metric IDs and names.

#### query\_metric\_aggregates

Query aggregate data for a Klaviyo metric (e.g. count, sum, unique over time). Use list\_metrics to find metric IDs. Specify measurements like 'count' or 'sum' and optional time interval.

#### create\_profile

Create a new Klaviyo profile with email, phone number, name, and custom properties. At least one of email or phone\_number is required.

#### get\_profile

Get a Klaviyo profile by ID. Returns profile details including email, phone, name, and custom properties.

#### update\_profile

Update a Klaviyo profile's email, phone number, name, or custom properties. Only provided fields are updated.

#### list\_profiles

List Klaviyo profiles with pagination. Returns up to 100 profiles per page. Use cursor from page\_info for next page.

#### get\_profile\_lists

Get all lists a Klaviyo profile belongs to. Returns list IDs and names.

#### get\_profile\_segments

Get all segments a Klaviyo profile belongs to. Returns segment IDs and names.

#### get\_segment

Get a Klaviyo segment by ID. Segments are dynamic groups of profiles based on conditions. Use list\_segments to find valid segment IDs.

#### list\_segments

List all Klaviyo segments. Segments are dynamic groups of profiles that update automatically based on conditions.

#### get\_segment\_profiles

Get profiles in a Klaviyo segment with pagination. Returns up to 100 profiles per page. Use cursor from page\_info for next page.

#### create\_tag

Create a new Klaviyo tag within a tag group. Tags are used to organize campaigns, flows, lists, and segments. Use list\_tag\_groups to find valid tag group IDs.

#### get\_tag

Get a Klaviyo tag by ID. Use list\_tags to find valid tag IDs.

#### update\_tag

Update a Klaviyo tag's name. Use list\_tags to find valid tag IDs.

#### delete\_tag

Delete a Klaviyo tag. This cannot be undone. Use list\_tags to find valid tag IDs.

#### list\_tags

List all Klaviyo tags. Tags are used to organize and categorize campaigns, flows, lists, and segments.

#### create\_tag\_group

Create a new Klaviyo tag group. Tag groups organize related tags. Set exclusive=true if tags in the group should be mutually exclusive.

#### list\_tag\_groups

List all Klaviyo tag groups. Tag groups organize related tags together. Returns group IDs, names, and exclusivity settings.

#### create\_template

Create a new Klaviyo email template with a name and optional HTML/text content. Templates can be used in campaigns and flows.

#### get\_template

Get a Klaviyo template by ID. Returns template details including name, HTML, and text content. Use list\_templates to find valid template IDs.

#### update\_template

Update a Klaviyo template's name, HTML, or text content. Only provided fields are updated. Use get\_template to check current content.

#### delete\_template

Delete a Klaviyo template. This cannot be undone. Use list\_templates to find valid template IDs.

#### list\_templates

List all Klaviyo email templates. Returns template IDs, names, and content for use in campaigns and flows.

#### render\_template

Render a Klaviyo template with context variables. Returns the rendered HTML and text content with variables replaced.

#### clone\_template

Clone a Klaviyo template with a new name. Creates an exact copy of the template. Use list\_templates to find valid template IDs.