How to integrate Klaviyo MCP with ChatGPT

How to integrate Klaviyo MCP with ChatGPT ChatGPT is one of the most popular AI tools today, with capabilities ranging from deep research and image generation to writing, coding, and everyday productivity. In this guide, I will explain the easiest and most secure way to connect your Klaviyo account to ChatGPT via Composio Connect, so it can summarize unread updates from this morning, create draft replies to urgent messages, fetch contact details for recent senders, and more without ever putting your account credentials at risk.

Klaviyo logoKlaviyo
Api KeyOauth2

Klaviyo is a data-driven email and SMS marketing platform for e-commerce brands. It helps deliver targeted messages, track conversions, and build scalable customer relationships.

225 Tools

How to integrate Klaviyo MCP with ChatGPT

ChatGPT is one of the most popular AI tools today, with capabilities ranging from deep research and image generation to writing, coding, and everyday productivity.

In this guide, I will explain the easiest and most secure way to connect your Klaviyo account to ChatGPT via Composio Connect, so it can summarize unread updates from this morning, create draft replies to urgent messages, fetch contact details for recent senders, and more without ever putting your account credentials at risk.

Also integrate Klaviyo with

Why use Composio over default connectors?

  • Apps with read and write access. Default connectors mostly can read your data. Composio's Klaviyo integration lets ChatGPT take actions like creating drafts, sending updates, labeling records, and more.
  • 1,000+ SaaS toolkits out of the box. Composio gives you instant access to a vast catalog of pre-built connectors, from Gmail and Slack to Notion, Linear, and Salesforce.
  • One MCP server for every app. Connect any of your applications on demand through a single endpoint, rather than juggling a separate server for each app.
  • Smart, context-aware tool loading. Unlike traditional MCP servers that dump every available tool into the LLM context window, Composio searches for and loads only the tools relevant to the task at hand.
  • Cross-app automation. Chain actions across multiple apps in a single run - fetch a thread, summarize it in Notion, and post highlights to Slack without leaving the conversation.

Prerequisites

  • A ChatGPT account with Plus subscription or higher (Business, Enterprise, Edu, or Pro). We will use ChatGPT Web.
  • Access to the Klaviyo workspace you want to connect.
  • Composio MCP.

Note: Composio connects through OAuth. You will be asked to sign in and approve specific permissions. Review the permission screen carefully if you are using a work account.

Step-by-step: Connect Klaviyo to ChatGPT

1. Enable Developer Mode

In ChatGPT, go to Settings > Apps > Advanced settings and turn on Developer Mode.

ChatGPT settings showing Developer Mode toggle

2. Add the MCP server

Click Create app, then paste the Composio MCP server URL:

bash
https://connect.composio.dev/mcp
ChatGPT create app flow with Composio MCP URL

3. Authorize in your browser

A browser window will open automatically. Sign in to authorize ChatGPT to access your Composio account.

Composio authorization screen for ChatGPT MCP setup

4. Start using Composio

Composio tools are now available in ChatGPT chats and Deep Research. In every new chat, click the + icon at the bottom, click More, and select Composio to enable tools for that conversation.

What you can do after connecting Klaviyo

  • Add new subscribers to main email list
  • Clone last week's campaign for reuse
  • Estimate recipients for upcoming product launch
  • Create back-in-stock alerts for a product

Security + privacy notes (important)

  • Use least-privilege access: Only grant permissions you actually need.
  • Review OAuth permissions before approving: Make sure requested scopes match what you expect Composio and ChatGPT to do.
  • Keep write actions human-reviewed: For actions like sending messages, creating labels, or editing drafts, keep manual confirmation enabled.
  • Be careful with sensitive data: Avoid using this setup with highly sensitive information unless allowed by your personal, company, or client policies.
TOOLS

Supported Tools

Every Klaviyo action and event your agent gets out of the box.

Add Profile to List

Add profiles to a Klaviyo list by profile IDs or email addresses.

Assign campaign message template

Creates a non-reusable version of the template and assigns it to the message.

Bulk create client events

Use the client-side endpoint with a public API key to track profile activity.

Bulk create events

Bulk create events for multiple profiles in a single request.

Cancel Campaign Send

Cancel or revert a campaign send job.

Create back in stock subscription

Use the server-side endpoint to subscribe to restock alerts, following the Back in Stock API guide.

Create campaign

Creates a campaign given a set of parameters, then returns it.

Create campaign clone

Clones an existing campaign, returning a new campaign based on the original with a new ID and name.

Create Campaign Recipient Estimation Job

Start an asynchronous task to estimate the number of recipients for a campaign.

Create campaign send job

Trigger a campaign to send asynchronously*Rate limits*:Burst: `10/s`Steady: `150/m` **Scopes:** `campaigns:write`

Create catalog category

Create a new catalog category.

Create catalog category relationships items

Create a new item relationship for the given category ID.

Create catalog item

Create a new catalog item.

Create catalog item relationships categories

Create a new catalog category relationship for the given item ID.

Create catalog variant

Create a new variant for a related catalog item.

Create client back in stock subscription

Use the endpoint for client-side back in stock notifications with a public API key.

Create Client Event V2

Create a client-side event in Klaviyo to track user interactions.

Create client subscription

Endpoint manages email/SMS opt-ins using consent and requires public API key for client use.

Create coupon

Creates a new coupon.

Create coupon code

Synchronously creates a coupon code for the given coupon.

Create event

Create or update a profile event with minimum identifiers and metric name.

Create list

Create a new list.

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.

Create or update client push token

This endpoint for mobile SDKs (iOS & Android) creates/updates push tokens using a public API key.

Create or Update Profile

Create or update a profile in Klaviyo with the given attributes.

Create or update push token

Create or update a push token for mobile push notifications.

Create profile

Create a new profile.

Create segment

Create a segment.

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.

Create tag group

Create tag groups up to 50 per account, defaulting to non-exclusive unless specified.

Create Tag Relationships

Associate a tag with other resources (flows, lists, segments, or campaigns) in Klaviyo.

Create template

Summary: Custom HTML templates can be created unless an account reaches 1,000 template limit.

Create template clone

Clone a template by its ID, but cloning fails if account has 1,000+ templates.

Create template render

Render an email template with specific context and sparse fieldsets, then get HTML/plain text.

Create webhook

Create a new Webhook to receive real-time notifications when specific events occur in Klaviyo (e.

Delete campaign

Delete a campaign with the given campaign ID.

Delete catalog category

Delete a catalog category using the given category ID.

Delete catalog category relationships items

Delete item relationships for the given category ID.

Delete catalog item

Delete a catalog item with the given item ID.

Delete catalog item relationships categories

Delete catalog category relationships for the given item ID.

Delete catalog variant

Delete a catalog item variant with the given variant ID.

Delete coupon

Delete the coupon with the given coupon ID.

Delete coupon code

Deletes a coupon code specified by the given identifier synchronously.

Delete flow

Delete a flow with the given flow ID.

Delete list

Delete a list with the given list ID.

Delete segment

Delete a segment with the given segment ID.

Delete tag

Delete the tag with the given tag ID.

Delete tag group

Delete a specified tag group and its contents; associated resource links will be removed.

Delete Tag Relationships

Remove a tag's association with other resources like flows, campaigns, lists, or segments.

Delete template

Permanently delete a template from your Klaviyo account using its unique template ID.

Delete webhook

Permanently delete a webhook subscription from your Klaviyo account.

Get account

Retrieve a single account object by its account ID.

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.

Get Bulk Create Coupon Codes Job

Tool to get a coupon code bulk create job with the given job ID.

Get Bulk Delete Catalog Items Job

Get a catalog item bulk delete job with the given job ID.

Get bulk profile import job

Get a bulk profile import job with the given job ID.

Get bulk profile import job errors

Get import errors for the bulk profile import job with the given ID.

Get bulk profile import job lists

Get list for the bulk profile import job with the given ID.

Get bulk profile import job profiles

Get profiles for the bulk profile import job with the given ID.

Get bulk profile import job relationships lists

Get list relationship for the bulk profile import job with the given ID.

Get bulk profile import job relationships profiles

Get profile relationships for the bulk profile import job with the given ID.

Get bulk profile import jobs

Get all bulk profile import jobs.

Get bulk update catalog items job

Get a catalog item bulk update job with the given job ID.

Get Bulk Update Categories Job

Retrieve a catalog category bulk update job by its ID from Klaviyo.

Get Bulk Update Variants Job

Tool to retrieve a catalog variant bulk update job by its ID.

Get Campaign

Retrieve a specific campaign by its ID from Klaviyo.

Get campaign campaign messages

Return all messages that belong to the given campaign.

Get campaign message

Returns a specific message based on a required id.

Get campaign message campaign

Return the related campaign*Rate limits*:Burst: `10/s`Steady: `150/m` **Scopes:** `campaigns:read`

Get campaign message relationships campaign

Returns the ID of the related campaign*Rate limits*:Burst: `10/s`Steady: `150/m` **Scopes:** `campaigns:read`

Get campaign message relationships template

Returns the ID of the related template*Rate limits*:Burst: `10/s`Steady: `150/m` **Scopes:** `campaigns:read` `templates:read`

Get campaign message template

Return the related template*Rate limits*:Burst: `10/s`Steady: `150/m` **Scopes:** `campaigns:read` `templates:read`

Get campaign recipient estimation

Get estimated recipients for a given campaign ID using `Create Campaign Recipient Estimation Job`.

Get campaign recipient estimation job

Retrieve the status of a recipient estimation job triggered with the `Create Campaign Recipient Estimation Job` endpoint.

Get campaign relationships campaign messages

Returns the IDs of all messages associated with the given campaign.

Get campaign relationships tags

Returns the IDs of all tags associated with the given campaign.

Get Campaigns

Retrieve campaigns from your Klaviyo account.

Get campaign send job

Get a campaign send job*Rate limits*:Burst: `10/s`Steady: `150/m` **Scopes:** `campaigns:read`

Get campaign tags

Return all tags that belong to the given campaign.

Get catalog categories

Retrieve up to 100 account catalog categories, sortable by creation date.

Get catalog category

Get a catalog category with the given category ID.

Get catalog category items

Retrieve up to 100 sorted items per request from a category using the category ID.

Get catalog category relationships items

Get all items in the given category ID.

Get catalog item

Get a specific catalog item with the given item ID.

Get catalog item categories

Retrieve the catalog categories for an item by ID, sorted by 'created' date, with a 100-category maximum per request.

Get catalog item relationships categories

Get all catalog categories that a particular item is in.

Get catalog items

Retrieve up to 100 sorted catalog items per account, with `$custom` integration and `$default` type.

Get catalog item variants

Retrieve up to 100 variants per request for a specific item ID, sortable by creation date.

Get catalog variant

Get a catalog item variant with the given variant ID.

Get catalog variants

Retrieve up to 100 account variants per request, sortable by creation date.

Get coupon

Get a specific coupon with the given coupon ID.

Get coupon code

Returns a Coupon Code specified by the given identifier.

Get coupon code bulk create job

Get a coupon code bulk create job with the given job ID.

Get coupon code bulk create jobs

Get all coupon code bulk create jobs.

Get coupon code relationships coupon

Gets a list of coupon code relationships associated with the given coupon id*Rate limits*:Burst: `75/s`Steady: `700/m` **Scopes:** `coupon-codes:read`

Get coupon codes

Obtains coupon codes using necessary coupon or profile filters.

Get coupon codes for coupon

Gets a list of coupon codes associated with the given coupon id*Rate limits*:Burst: `75/s`Steady: `700/m` **Scopes:** `coupon-codes:read`

Get coupon for coupon code

Get the coupon associated with a given coupon code ID.

Get Coupon ID for Coupon Code

Tool to get the coupon relationship associated with a given coupon code ID.

Get Coupon Relationships Coupon Codes

Retrieves the coupon code relationships (resource identifiers) for a given coupon.

Get coupons

Get all coupons in an account.

Get create categories job

Get a catalog category bulk create job with the given job ID.

Get create categories jobs

Get all catalog category bulk create jobs.

Get create items job

Get a catalog item bulk create job with the given job ID.

Get create items jobs

Get all catalog item bulk create jobs.

Get create variants job

Get a catalog variant bulk create job with the given job ID.

Get create variants jobs

Get all catalog variant bulk create jobs.

Get delete categories job

Get a catalog category bulk delete job with the given job ID.

Get delete categories jobs

Get all catalog category bulk delete jobs.

Get delete items jobs

Get all catalog item bulk delete jobs.

Get delete variants job

Get a catalog variant bulk delete job with the given job ID.

Get delete variants jobs

Get all catalog variant bulk delete jobs.

Get event

Get an event with the given event ID.

Get event metric

Get the metric for an event with the given event ID.

Get event profile

Get the profile associated with an event with the given event ID.

Get Event Relationships

Get metrics or profile relationships for a specific event.

Get events

Get all events in an account Requests can be sorted by the following fields: `datetime`, `timestamp` Returns a maximum of 200 events per page.

Get flow

Get a flow with the given flow ID.

Get flow action

Get a flow action from a flow with the given flow action ID.

Get flow action for message

Get the flow action for a flow message with the given message ID.

Get flow action messages

Retrieve up to 50 flow messages per request by action ID, sortable by various fields, with ascending/descending options, and paginated using `page[size]` and `page[number]`.

Get Parent Flow for Flow Action

Get the parent flow associated with a given flow action ID.

Get flow action relationships messages

Retrieves up to 50 flow message relationships per request for a specified flow action ID, with cursor pagination.

Get flow flow actions

Get all flow actions associated with the given flow ID.

Get flow for flow action

Get the flow associated with the given action ID.

Get flow message

Get the flow message of a flow with the given message ID.

Get flow message relationships action

Get the flow action relationship for a specific flow message.

Get flow message relationships template

Returns the ID of the related template*Rate limits*:Burst: `3/s`Steady: `60/m` **Scopes:** `templates:read`

Get flow message template

Return the related template*Rate limits*:Burst: `3/s`Steady: `60/m` **Scopes:** `templates:read`

Get flow relationships flow actions

Retrieve all flow action relationships for a specific flow ID, sortable by `id`, `status`, `created`, `updated`.

Get flow relationships tags

Return the tag IDs of all tags associated with the given flow.

Get flows

Get all flows in an account.

Get flow tags

Return all tags associated with the given flow ID.

Get form

Get the form with the given ID.

Get form for form version

Get the form associated with the given form version.

Get form id for form version

Get the ID of the form associated with the given form version.

Get forms

Get all forms in an account.

Get form version

Retrieve detailed information about a specific form version by its ID.

Get image

Get the image with the given image ID.

Get images

Get all images in an account.

Get list

API allows 75 req/sec and 700 req/min, but with 'profile_count' param, it's 1 req/sec and 15 req/min.

Get list profiles

Retrieve profiles in a list by ID, filterable by email/phone/push token/join date, sortable by join date.

Get List Relationships

Get profile membership relationships for a Klaviyo list.

Get list relationships tags

Returns the tag IDs of all tags associated with the given list.

Get Lists

Retrieve marketing lists from your Klaviyo account.

Get list tags

Return all tags associated with the given list ID.

Get metric

Get a metric with the given metric ID.

Get metrics

Get all metrics in an account.

Get profile

Get the profile with the given profile ID.

Get profile lists

Get list memberships for a profile with the given profile ID.

Get Profile Relationships

Tool to get list membership or segment membership relationships for a profile with the given profile ID.

Get Profiles

Retrieve profiles from your Klaviyo account.

Get profile segments

Get segment memberships for a profile with the given profile ID.

Get segment

Fetch a segment by ID with default rates of 75/s and 700/m, or with `additional-fields` at 1/s and 15/m.

Get segment profiles

Retrieve profiles in a segment by ID, filtering by email, phone, token, or join date, and sorting by join date.

Get Segment Relationships

Get all profile membership or tag relationships for a segment.

Get segments

Fetch segments from an account with filters like `name`, `created`, and `updated`.

Get segment tags

Return all tags associated with the given segment ID.

Get tag

Retrieve the tag with the given tag ID.

Get tag group

Retrieve the tag group with the given tag group ID.

Get tag group relationships tags

Returns the tag IDs of all tags inside the given tag group.

Get tag groups

Retrieve up to 25 tag groups per account, sortable/filterable by specific attributes.

Get tag group tags

Return the tags for a given tag group ID.

Get Tag Relationships

Tool to retrieve relationship IDs for a tag.

Get tags

Retrieve up to 50 account tags at once, filterable/sortable by name or id, with cursor pagination.

Get tag tag group

Returns the tag group resource for a given tag ID.

Get template

Get a template with the given template ID.

Get templates

Retrieve account templates with sorting options (`id`, `name`, `created`, `updated`).

Get update categories jobs

Get all catalog category bulk update jobs.

Get update items job

Get a catalog item bulk update job with the given job ID.

Get update items jobs

Get all catalog item bulk update jobs.

Get update variants jobs

Get all catalog variant bulk update jobs.

Get Variant IDs for Catalog Item

Tool to get all variant IDs related to a given catalog item ID.

Get version ids for form

Get the IDs of the form versions for the given form.

Get versions for form

Get the form versions for the given form.

Get webhook

Get the webhook with the given ID.

Get webhooks

Get all webhooks in an account.

Get webhook topic

Retrieve details of a specific webhook topic by its ID.

Get webhook topics

Get all webhook topics in a Klaviyo account.

Merge profiles

Merge one or more source profiles into a destination profile.

Query campaign values

Returns the requested campaign analytics values data*Rate limits*:Burst: `1/s`Steady: `2/m`Daily: `225/d` **Scopes:** `campaigns:read`

Query flow series

Returns time-series analytics data for flows, enabling performance tracking over time intervals.

Query flow values

Returns the requested flow analytics values data*Rate limits*:Burst: `1/s`Steady: `2/m`Daily: `225/d` **Scopes:** `flows:read`

Query metric aggregates

The Klaviyo endpoint fetches metric events, handling JSON requests for custom data queries, sorting, and filtering; offers grouping and time-based filters; requires adherence to rate limits (3 requests per second, 60 per minute) under 'metrics:read'.

Remove Profile from List

Remove profiles from a Klaviyo list by profile IDs or email addresses.

Request profile deletion

To delete a profile, use only one identifier: email, phone number, or ID.

Spawn bulk profile import job

Initiate a job to create/update a batch of profiles, up to 10,000 with a max size of 5MB per request.

Spawn coupon code bulk create job

Create a coupon-code-bulk-create-job to bulk create a list of coupon codes.

Spawn create categories job

Create bulk job for up to 100 catalog categories with a 5MB size limit and a max of 500 concurrent jobs.

Spawn create items job

Create batches of up to 100 catalog items with a 5MB size limit using the bulk job, which allows 500 concurrent jobs.

Spawn create variants job

Initiate a job to bulk create up to 100 catalog variants, with a 5MB payload size limit.

Spawn delete categories job

Delete multiple catalog categories in bulk, with a limit of 100 per request and a 5MB payload size.

Spawn delete items job

Delete batches of catalog items with a bulk job, max 100 items/request, 5MB size limit, and up to 500 concurrent jobs.

Spawn delete variants job

Delete multiple catalog variants with a bulk job, max 100 per request, 5MB size limit.

Spawn update categories job

Create a job to bulk update up to 100 categories, with a 5MB size limit and a maximum of 500 concurrent jobs.

Spawn update items job

You can bulk update up to 100 catalog items with a 5MB payload limit.

Spawn update variants job

Create a job to bulk update up to 100 catalog variants with a 5MB payload limit.

Subscribe profiles

The API supports double opt-in for marketing, with 'historical_import' bypassing consent.

Suppress profiles

Suppress profiles by email, segment, or list ID to stop email marketing, regardless of consent.

Unregister client push token

This endpoint unsubscribes a push token, for use with Klaviyo's mobile SDKs and a public API key.

Unsubscribe profiles

Opt-out profiles from email or SMS marketing.

Unsubscribe Profiles Bulk

Tool to unsubscribe one or more profiles from a Klaviyo list.

Unsuppress profiles

Remove 'USER_SUPPRESSED' blocks on profiles manually via email, segment, or list ID.

Unsuppress Profiles (Bulk)

Tool to unsuppress one or more profiles from email marketing by email address.

Update Campaign

Update a campaign with the specified attributes.

Update campaign message

Update a campaign message*Rate limits*:Burst: `10/s`Steady: `150/m` **Scopes:** `campaigns:write`

Update catalog category

Update a catalog category with the given category ID.

Update Catalog Category Relationships

Tool to update item relationships for a catalog category.

Update catalog category relationships items

Update item relationships for the given category ID.

Update catalog item

Update a catalog item with the given item ID.

Update catalog item relationships categories

Update catalog category relationships for the given item ID.

Update catalog variant

Update a catalog item variant with the given variant ID.

Update coupon

Update an existing coupon's properties.

Update coupon code

Updates a coupon code specified by the given identifier synchronously.

Update flow status

Update the status of a flow with the given flow ID, and all actions in that flow.

Update image

Update the image with the given image ID.

Update list

Update the name of a list with the given list ID.

Update profile

Update profiles with the provided ID.

Update segment

Update a segment with the given segment ID.

Update tag

Update the tag with the given tag ID.

Update tag group

Update the tag group with the given tag group ID.

Update template

Update an existing email template by ID.

Update webhook

Update the webhook with the given ID.

Upload image from file

Upload an image from a file.

Upload image from url

Import an image from a url or data uri.

FAQ

Frequently asked questions

With a standalone Klaviyo MCP server, the agents and LLMs can only access a fixed set of Klaviyo tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Klaviyo and many other apps based on the task at hand, all through a single MCP endpoint.

Yes, you can. ChatGPT fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Klaviyo tools.

Yes, absolutely. You can configure which Klaviyo scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Klaviyo data and credentials are handled as safely as possible.

Start with Klaviyo.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Klaviyo tool your agent needs.Free to start.

Start building