← Back to all apps

Klaviyo

Productivityby Klaviyo

Chat directly with Klaviyo to report, strategize, and launch faster. Ask for performance summaries, content and copy, optimization opportunities, and profile insights – AI responds with the full context of your Klaviyo data.

27ChatGPT Tools
27Claude Tools
KlaviyoDeveloper
ProductivityCategory

Use Cases

sales-and-marketingdatacommunication

Available Tools

Assign Template to Campaign Message

klaviyo_assign_template_to_campaign_message
Full Description

Assigns an email template to a campaign message. This should be used after creating a template with the create_email_template tool and creating an email campaign.

Parameters (3 required)
Required
campaignMessageIdstring

The ID of the email campaign message to assign the template to.

emailTemplateIdstring

The ID of the email template to assign to the campaign message.

modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother

Create Campaign

klaviyo_create_campaign
Full Description

Creates a new draft campaign. For email campaigns, this can be used with the create_email_template tool for template creation and then assign_template_to_campaign_message to assign the template to the email campaign. You can view and edit a campaign in the Klaviyo UI at https://www.klaviyo.com/campaign/{CAMPAIGN_ID}/wizard

Parameters (2 required)
Required
inputobject

CampaignCreateQuery

modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother

Create Email Template

klaviyo_create_email_template
Full Description

Create a new email template from the given HTML. Returns the ID of the template. You can view and edit a template in the Klaviyo UI at https://www.klaviyo.com/email-editor/{TEMPLATE_ID}/edit.

Parameters (3 required, 1 optional)
Required
htmlstring

The complete HTML of the template. Should include <html> and <body> tags. To include an image, first upload the image using the upload_image_from_file or upload_image_from_url tool, then use the returned image URL. Always include an unsubscribe link. Do this by inserting the template string "{% unsubscribe 'Unsubscribe' %}". You can replace 'Unsubscribe' with custom text. To add an editable region to the template, ensure the has_editable_regions param is true and add the following: <td align="center" data-klaviyo-region="true" data-klaviyo-region-width-pixels="600"></td> To add an editable text block, add the following within that region: <div class="klaviyo-block klaviyo-text-block">Hello world!</div> To add an editable image block, add the following within that region: <div class="klaviyo-block klaviyo-image-block"></div> To add a universal content block, add the following within that region, replacing block_id with the ID of the universal content block: <div data-klaviyo-universal-block="block_id">&nbsp;<div>

modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother
namestring

The name of the template

Optional
hasEditableRegionsboolean

Whether the template HTML contains editable regions. Should be false unless they explicitly request an editable/drag-and-drop/hybrid template.

Default: False

Create Profile

klaviyo_create_profile
Full Description

Create a new profile. Must include either email, phone_number, or external_id. You can view and edit a profile in the Klaviyo UI at https://www.klaviyo.com/profile/{PROFILE_ID}

Parameters (2 required)
Required
inputobject

ProfileCreateQuery

modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother

Get Account Details

klaviyo_get_account_details
Full Description

Get the details of the account. You can view and edit your account details flow in the Klaviyo UI at https://www.klaviyo.com/settings/account

Parameters (1 required)
Required
modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother

Get Campaign

klaviyo_get_campaign
Full Description

Returns a specific campaign based on a required id. You can view and edit a campaign in the Klaviyo UI at https://www.klaviyo.com/campaign/{CAMPAIGN_ID}/wizard

Parameters (2 required)
Required
idstring
modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother

Get Campaign Report

klaviyo_get_campaign_report
Full Description

Returns metrics data for campaigns with the given filters and within the given timeframe. Can return performance data such as opens, clicks, and conversions, etc. This tool will also give you information about each campaign in the report, such as: audience names and IDs for the campaign (included audiences are audiences sent the campaign, excluded audiences are audiences not sent the campaign), campaign name, send time, send channel, and campaign ID.

Parameters (3 required, 6 optional)
Required
conversionMetricIdstring

ID of the metric to be used for conversion statistics. You can get available metrics IDs using the get_metrics tool and just requesting the 'name' field. If a specific metric is not requested, use the ID of the metric named 'Placed Order'. If it doesn't exist, use any metric.

modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother
statisticsarray

List of statistics to query for.

Optional
detailFiltersarray

Filters to apply to the campaign report. Contains-any does case-insensitive substring matching (for example, 'Test' will match 'test campaign'). Equals does case-insensitive exact matching. Unless explicitly stated, these filters should probably use contains-any.

Default: []
filtersarray
Default: []
groupByarray

List of attributes to group the data by. Results include a 'groupings' object with the values for each group-by attribute. Note: campaign_id and campaign_message_id and send_channel are required and will be automatically included if omitted. Use 'group_name' to get metrics broken down by audience (list/segment).

Default: ['campaign_id', 'campaign_message_id', 'send_channel']
groupByAudienceboolean

If true, also return an aggregation of stats grouped by audience (list/segment) and send channel, combining data across campaigns.

Default: False
timeframeobject

The timeframe to query for data within. The max length a timeframe can be is 1 year. If unspecified, use 1 year.

Default: {'key': 'last_30_days'}
valueStatisticsarray

List of value statistics to query for. If you see an error about the conversion metric not supporting querying for values data, try again and leave this as an empty list.

Get Campaigns

klaviyo_get_campaigns
Full Description

Returns some or all campaigns based on filters. You can view and edit a campaign in the Klaviyo UI at https://www.klaviyo.com/campaign/{CAMPAIGN_ID}/wizard. Do not use this for queries related to the status of campaigns, reporting on campaigns, or campaign performance data. For those use cases, use the get_campaign_report tool.

Parameters (2 required, 3 optional)
Required
channelstring

Which types of campaigns to return. To get all types of campaigns, call this tool for each channel.

Options:emailsmsmobile_push
modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother
Optional
fieldsarray

Fields to return.

filtersarray
Default: []
pageCursorstring

Only used for pagination. If links.next is null then you've reached the last page of results. Otherwise, pass links.next to this parameter to get the next page.

Get Catalog Items

klaviyo_get_catalog_items
Full Description

Get all catalog items in an account. (Also known as products)

Parameters (1 required, 4 optional)
Required
modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother
Optional
fieldsarray

Fields to return.

filterarray
Default: []
pageCursorstring

Only used for pagination. If links.next is null then you've reached the last page of results. Otherwise, pass links.next to this parameter to get the next page.

sortstring

What to sort by.

Options:created-created

Get Email Template

klaviyo_get_email_template
Full Description

Get an email template with the given data. Returns attributes including the html or amp. You can view and edit a template in the Klaviyo UI at https://www.klaviyo.com/email-editor/{TEMPLATE_ID}/edit.

Parameters (2 required)
Required
modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother
templateIdstring

The ID of the template return

Get Events

klaviyo_get_events
Full Description

Get individual event records for a given filter such as a profile ID or metric ID. For aggregated data, prefer get_campaign_report or get_flow_report (performance metrics) or query_metric_aggregates (counts, sums, unique profiles). Only use this tool to inspect specific events or when the other tools don't support the dimension you need — in that case, only a small sample of events can be processed in context, so clearly tell the user the results are based on a limited sample.

Parameters (1 required, 4 optional)
Required
modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother
Optional
fieldsarray

Fields to return.

filterarray
Default: []
pageCursorstring

Only used for pagination. If links.next is null then you've reached the last page of results. Otherwise, pass links.next to this parameter to get the next page.

sortstring

What to sort by.

Options:datetime-datetimetimestamp-timestamp

Get Flow

klaviyo_get_flow
Full Description

Returns a flow by ID. You can view and edit a flow in the Klaviyo UI at https://www.klaviyo.com/flow/{FLOW_ID}/edit.

Parameters (2 required)
Required
idstring
modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother

Get Flow Report

klaviyo_get_flow_report
Full Description

Returns metrics data for flows with the given filters and within the given timeframe. Can return performance data such as opens, clicks, and conversions, etc. This tool will also give you information about each flow in the report, such as: flow name, trigger type, and flow ID.

Parameters (3 required, 5 optional)
Required
conversionMetricIdstring

ID of the metric to be used for conversion statistics. You can get available metrics IDs using the get_metrics tool and just requesting the 'name' field. If a specific metric is not requested, use the ID of the metric named 'Placed Order'. If it doesn't exist, use any metric.

modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother
statisticsarray

List of statistics to query for.

Optional
detailFiltersarray

Filters to apply to the flow report. Contains-any does case-insensitive substring matching (for example, 'Test' will match 'test campaign'). Equals does case-insensitive exact matching. Unless explicitly stated, these filters should probably use contains-any.

filtersarray
Default: []
groupByarray

List of attributes to group the data by. Results include a 'groupings' object with the values for each group-by attribute. Note: flow_id and flow_message_id are required and will be automatically included if omitted.

Default: ['flow_id', 'send_channel', 'flow_message_id']
timeframeobject

The timeframe to query for data within. The max length a timeframe can be is 1 year. If unspecified, use 1 year.

Default: {'key': 'last_30_days'}
valueStatisticsarray

List of value statistics to query for. If you see an error about the conversion metric not supporting querying for values data, try again and leave this as an empty list.

Get Flows

klaviyo_get_flows
Full Description

Returns some or all flows based on filters. You can view and edit a flow in the Klaviyo UI at https://www.klaviyo.com/flow/{FLOW_ID}/edit. Do not use this for queries related to the status of flows, reporting on flows, or flow performance data. For those use cases, use the get_flow_report tool.

Parameters (1 required, 4 optional)
Required
modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother
Optional
fieldsarray

Fields to return.

filtersarray
Default: []
pageCursorstring

Only used for pagination. If links.next is null then you've reached the last page of results. Otherwise, pass links.next to this parameter to get the next page.

pageSizeinteger

Number of results to return per page (1-100)

Get List

klaviyo_get_list
Full Description

Get a list with the given list ID. You can view and edit a list in the Klaviyo UI at https://www.klaviyo.com/lists/{LIST_ID}

Parameters (2 required, 1 optional)
Required
idstring
modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother
Optional
includeProfileCountboolean

Whether to include the number of profiles. Only set to true if this is requested.

Default: False

Get Lists

klaviyo_get_lists
Full Description

Get all lists in an account. To filter by tag, do not use the 'filters' parameter. Instead, call this and look for the 'tags' property. You can view and edit a list in the Klaviyo UI at https://www.klaviyo.com/lists/{LIST_ID}

Parameters (1 required, 4 optional)
Required
modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother
Optional
fieldsarray

Fields to return.

filterarray
Default: []
pageCursorstring

Only used for pagination. If links.next is null then you've reached the last page of results. Otherwise, pass links.next to this parameter to get the next page.

sortstring

What to sort by.

Options:created-createdid-idname-nameupdated-updated

Get Metric

klaviyo_get_metric
Full Description

Get a metric with the given metric ID. You can view and edit a metric in the Klaviyo UI at https://www.klaviyo.com/metric/{METRIC_ID}/{METRIC_NAME}

Parameters (2 required)
Required
metricIdstring

The ID of the metric to return

modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother

Get Metrics

klaviyo_get_metrics
Full Description

Get all metrics in an account. You can view and edit a metric in the Klaviyo UI at https://www.klaviyo.com/metric/{METRIC_ID}/{METRIC_NAME}

Parameters (1 required, 3 optional)
Required
modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother
Optional
fieldsarray

Fields to return.

filterarray
Default: []
pageCursorstring

Only used for pagination. If links.next is null then you've reached the last page of results. Otherwise, pass links.next to this parameter to get the next page.

Get Profile

klaviyo_get_profile
Full Description

Get details of the profile with the given profile ID. Includes additional information about their subscriptions. You can view and edit a profile in the Klaviyo UI at https://www.klaviyo.com/profile/{PROFILE_ID}

Parameters (2 required)
Required
idstring

The profile ID to retrieve.

modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother

Get Profiles

klaviyo_get_profiles
Full Description

Get all profiles in an account. You can view and edit a profile in the Klaviyo UI at https://www.klaviyo.com/profile/{PROFILE_ID}

Parameters (1 required, 5 optional)
Required
modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother
Optional
fieldsarray

Fields to return.

filtersarray
Default: []
pageCursorstring

Only used for pagination. If links.next is null then you've reached the last page of results. Otherwise, pass links.next to this parameter to get the next page.

pageSizeinteger

Number of results to return per page (1-100)

Default: 5
sortstring

What to sort by.

Options:created-createdemail-emailid-idupdated-updated

Get Segment

klaviyo_get_segment
Full Description

Get a segment with the given segment ID. You can view and edit a segment in the Klaviyo UI at https://www.klaviyo.com/lists/{SEGMENT_ID}

Parameters (2 required, 1 optional)
Required
modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother
segmentIdstring
Optional
includeProfileCountboolean

Whether to include the number of profiles. Only set to true if this is requested.

Default: False

Get Segments

klaviyo_get_segments
Full Description

Get all segments in an account. To filter by tag, do not use the 'filters' parameter. Instead, call this and look for the 'tags' property. You can view and edit a segment in the Klaviyo UI at https://www.klaviyo.com/lists/{SEGMENT_ID}

Parameters (1 required, 4 optional)
Required
modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother
Optional
fieldsarray

Fields to return.

filtersarray
Default: []
pageCursorstring

Only used for pagination. If links.next is null then you've reached the last page of results. Otherwise, pass links.next to this parameter to get the next page.

sortstring

What to sort by.

Options:created-createdid-idname-nameupdated-updated

Query Metric Aggregates

klaviyo_query_metric_aggregates
Full Description

Query and aggregate event data for a specific metric, with optional grouping by dimensions such as flows, campaigns, messages, etc.

IMPORTANT: This endpoint returns data based on EVENT TIME (when events occurred), NOT send date. For campaign/flow performance data that matches the Klaviyo UI (which uses send date), use get_campaign_report or get_flow_report instead. Only use this tool when:

  • You need to aggregate raw event data by dimensions not supported by the Reporting API, but supported by this endpoint
  • You need time-series data broken down by hour/day/week/month
  • The Reporting API tools (get_campaign_report, get_flow_report) don't fulfill your specific requirements
  • You need to query custom metrics or non-standard aggregations

Results from this endpoint are not directly comparable to get_campaign_report or get_flow_report due to different time semantics and uniqueness definitions (not attribution — both use the same attribution framework). If cross-referencing, clearly caveat this to the user.

Examples of appropriate use cases:

  • Sum of revenue by flow over a time period (use sum_value measurement with $attributed_flow grouping)
  • Count of events per day/week/month for trend analysis
  • Unique profile counts grouped by campaign or message
  • Custom metric aggregations not available in standard reports
Parameters (5 required, 7 optional)
Required
endDatestring

End of the date range (exclusive) in ISO 8601 format without timezone offset, e.g. '2024-12-31T23:59:59'. Do not include a 'Z' suffix or timezone offset; use the timezone parameter instead. The date range must not exceed 1 year.

measurementsarray

Measurement types to compute: 'count' (number of events), 'sum_value' (sum of event values, e.g., order totals), 'unique' (unique profile count)

metricIdstring

The ID of the metric to aggregate. Use the get_metrics tool to find available metric IDs. Common metrics include 'Placed Order', 'Opened Email', 'Clicked Email', etc.

modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother
startDatestring

Start of the date range (inclusive) in ISO 8601 format without timezone offset, e.g. '2024-01-01T00:00:00'. Do not include a 'Z' suffix or timezone offset; use the timezone parameter instead. The date range must not exceed 1 year.

Optional
additionalFilterobject

Optional structured filter to narrow results by a single dimension. Only one additional filter is supported by the API.

groupByarray

Optional dimensions to group by. Common groupings: '$attributed_flow' (flow attribution), '$attributed_message' (message attribution), '$message' (message ID), '$flow' (flow ID), 'Campaign Name', etc.

intervalstring

Time interval for grouping results: 'hour', 'day' (default), 'week', or 'month'

Options:hourdayweekmonth
Default: day
pageCursorstring

Only used for pagination. If links.next is null then you've reached the last page of results. Otherwise, pass links.next to this parameter to get the next page.

pageSizeinteger

Number of rows per page. Must be between 500 and 10,000 (default 500).

Default: 500
sortstring

Sort results by a grouping dimension. Prefix with '-' for descending order (e.g., '-$attributed_flow'). The sort value must also be included in the 'groupBy' parameter. Only dimension-based sorting is supported.

Options:$attributed_channel$attributed_flow$attributed_message$attributed_variation$campaign_channel$flow$flow_channel$message$message_send_cohort$usage_amount$value_currency$variation$variation_send_cohortBot ClickBounce TypeCampaign NameClient CanonicalClient NameClient TypeEmail DomainFailure SourceFailure TypeFrom NumberFrom Phone RegionInbox ProviderListMessage NameMessage TypeMethodSegment CountSubjectTo NumberTo Phone RegionURLform_id-$attributed_channel-$attributed_flow-$attributed_message-$attributed_variation-$campaign_channel-$flow-$flow_channel-$message-$message_send_cohort-$usage_amount-$value_currency-$variation-$variation_send_cohort-Bot Click-Bounce Type-Campaign Name-Client Canonical-Client Name-Client Type-Email Domain-Failure Source-Failure Type-From Number-From Phone Region-Inbox Provider-List-Message Name-Message Type-Method-Segment Count-Subject-To Number-To Phone Region-URL-form_id
timezonestring

Timezone for processing the query (e.g., 'America/New_York', 'US/Eastern'). Defaults to UTC.

Default: UTC

Subscribe Profile to Marketing

klaviyo_subscribe_profile_to_marketing
Full Description

Subscribe a profile to marketing for a given channel. If a profile doesn't already exist, it will be created. Returns 'Success' if successful.

Parameters (2 required, 4 optional)
Required
channelsarray

The channels to subscribe the profile to.

modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother
Optional
emailAddressstring

The email address of the profile to subscribe. Required if email channel is included.

listIdstring

The ID of the list to subscribe the profile to if provided.

phoneNumberstring

The phone number of the profile to subscribe. Required if sms channel is included.

profileIdstring

The ID of the profile to subscribe if the profile already exists and has an ID.

Unsubscribe Profile from Marketing

klaviyo_unsubscribe_profile_from_marketing
Full Description

Unsubscribe a profile from marketing for a given channel. Returns 'Success' if successful.

Parameters (2 required, 3 optional)
Required
channelsarray

The channels to unsubscribe the profile to.

modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother
Optional
emailAddressstring

The email address of the profile to unsubscribe. Required if email channel is included.

listIdstring

The ID of the list to unsubscribe the profile to if provided.

phoneNumberstring

The phone number of the profile to unsubscribe. Required if sms channel is included.

Update Profile

klaviyo_update_profile
Full Description

Update the profile with the given profile ID. You can view and edit a profile in the Klaviyo UI at https://www.klaviyo.com/profile/{PROFILE_ID}

Parameters (2 required)
Required
inputobject

ProfilePartialUpdateQuery

modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother

Upload Image From URL

klaviyo_upload_image_from_url
Full Description

Upload an image from a URL or data URI.

Parameters (2 required, 1 optional)
Required
imageURLstring

The URL of the image to upload

modelstring

The name of the LLM currently using the tool.

Options:claudegptgeminiother
Optional
namestring

A name for the image. Defaults to the filename if omitted.