Use Klaviyo with AI Agents

A marketing platform for email, SMS, and more.
🔗 Connect and Use Klaviyo
1. 🔑 Connect your Klaviyo account
2. ✅ Select an action
3. 🚀 Go live with the agent
What do you want to do?
Actions
Accounts
- Get accounts
Campaigns
Catalogs
Coupons
Data Privacy
Events
Flows
Forms
Images
Lists
Metrics
Profiles
Reporting
Segments
Tags
Templates
Webhooks
Client

API actions for Klaviyo for AI assitants/agents

Language
JS
PYTHON

Accounts

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. Rate limit: 1 request/second, 15 requests/minute. Scope r
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_ACCOUNTS])

Get Account

Retrieve a single account object by its account ID. You can only request the account by which the private API key was generated.<br><br>*Rate limits*:<br>Burst: `1/s`<br>Steady: `15/m` **Scope
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_ACCOUNT])

Campaigns

Get Campaigns

To list campaigns, use a channel filter (`email` or `sms`). Rate limits apply: 10/s (burst), 150/m (steady). Required scope: `campaigns:read`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_CAMPAIGNS])

Create Campaign

Creates a campaign given a set of parameters, then returns it.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `campaigns:write`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_CREATE_CAMPAIGN])

Get Campaign

Returns a specific campaign based on a required id.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `campaigns:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_CAMPAIGN])

Update Campaign

Update a campaign with the given campaign ID.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `campaigns:write`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_UPDATE_CAMPAIGN])

Delete Campaign

Delete a campaign with the given campaign ID.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `campaigns:write`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_DELETE_CAMPAIGN])

Get Campaign Message

Returns a specific message based on a required id.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `campaigns:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_CAMPAIGN_MESSAGE])

Update Campaign Message

Update a campaign message<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `campaigns:write`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_UPDATE_CAMPAIGN_MESSAGE])

Get Campaign Send Job

Get a campaign send job<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `campaigns:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_CAMPAIGN_SEND_JOB])

Update Campaign Send Job

Permanently cancel the campaign, setting the status to CANCELED or revert the campaign, setting the status back to DRAFT<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_UPDATE_CAMPAIGN_SEND_JOB])

Get Campaign Recipient Estimation Job

Retrieve the status of a recipient estimation job triggered with the `Create Campaign Recipient Estimation Job` endpoint.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:**
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_CAMPAIGN_RECIPIENT_ESTIMATION_JOB])

Get Campaign Recipient Estimation

Get estimated recipients for a given campaign ID using `Create Campaign Recipient Estimation Job`. Rate limits are 10/s burst and 150/m steady. Required scope: `campaigns:read`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_CAMPAIGN_RECIPIENT_ESTIMATION])

Create Campaign Clone

Clones an existing campaign, returning a new campaign based on the original with a new ID and name.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `campaigns:write`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_CREATE_CAMPAIGN_CLONE])

Assign Campaign Message Template

Creates a non-reusable version of the template and assigns it to the message.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `campaigns:write`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_ASSIGN_CAMPAIGN_MESSAGE_TEMPLATE])

Create Campaign Send Job

Trigger a campaign to send asynchronously<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `campaigns:write`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_CREATE_CAMPAIGN_SEND_JOB])

Create Campaign Recipient Estimation Job

Start an async task to update campaign recipient estimates. Track it using the `Get Campaign Recipient Estimation Job` and get the final count via `Get Campaign Recipient Estimation`. Rate lim
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_CREATE_CAMPAIGN_RECIPIENT_ESTIMATION_JOB])

Get Campaign Message Relationships Campaign

Returns the ID of the related campaign<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `campaigns:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_CAMPAIGN_MESSAGE_RELATIONSHIPS_CAMPAIGN])

Get Campaign Message Campaign

Return the related campaign<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `campaigns:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_CAMPAIGN_MESSAGE_CAMPAIGN])

Get Campaign Message Relationships Template

Returns the ID of the related template<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `campaigns:read` `templates:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_CAMPAIGN_MESSAGE_RELATIONSHIPS_TEMPLATE])

Get Campaign Message Template

Return the related template<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `campaigns:read` `templates:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_CAMPAIGN_MESSAGE_TEMPLATE])

Get Campaign Relationships Tags

Returns the IDs of all tags associated with the given campaign.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `campaigns:read` `tags:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_CAMPAIGN_RELATIONSHIPS_TAGS])

Get Campaign Tags

Return all tags that belong to the given campaign.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m` **Scopes:** `campaigns:read` `tags:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_CAMPAIGN_TAGS])

Get Campaign Relationships Campaign Messages

Returns the IDs of all messages associated with the given campaign.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `campaigns:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_CAMPAIGN_RELATIONSHIPS_CAMPAIGN_MESSAGES])

Get Campaign Campaign Messages

Return all messages that belong to the given campaign.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `campaigns:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_CAMPAIGN_CAMPAIGN_MESSAGES])

Catalogs

Get Catalog Items

Retrieve up to 100 sorted catalog items per account, with `$custom` integration and `$default` type. Rate limits: 350/s burst, 3500/m steady. Scope required: `catalogs:read`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_CATALOG_ITEMS])

Create Catalog Item

Create a new catalog item.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `700/m` **Scopes:** `catalogs:write`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_CREATE_CATALOG_ITEM])

Get Catalog Item

Get a specific catalog item with the given item ID.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m` **Scopes:** `catalogs:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_CATALOG_ITEM])

Update Catalog Item

Update a catalog item with the given item ID.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `700/m` **Scopes:** `catalogs:write`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_UPDATE_CATALOG_ITEM])

Delete Catalog Item

Delete a catalog item with the given item ID.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `700/m` **Scopes:** `catalogs:write`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_DELETE_CATALOG_ITEM])

Get Catalog Variants

Retrieve up to 100 account variants per request, sortable by creation date. Supports only `$custom` integration and `$default` catalog types. Rate limits are 350/s burst and 3500/m steady. Req
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_CATALOG_VARIANTS])

Create Catalog Variant

Create a new variant for a related catalog item.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `700/m` **Scopes:** `catalogs:write`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_CREATE_CATALOG_VARIANT])

Get Catalog Variant

Get a catalog item variant with the given variant ID.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m` **Scopes:** `catalogs:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_CATALOG_VARIANT])

Update Catalog Variant

Update a catalog item variant with the given variant ID.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `700/m` **Scopes:** `catalogs:write`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_UPDATE_CATALOG_VARIANT])

Delete Catalog Variant

Delete a catalog item variant with the given variant ID.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `700/m` **Scopes:** `catalogs:write`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_DELETE_CATALOG_VARIANT])

Get Catalog Categories

Retrieve up to 100 account catalog categories, sortable by creation date. Only `$custom` integration and `$default` catalog types supported. Rate limits are 350/s and 3500/m. Requires `catalog
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_CATALOG_CATEGORIES])

Create Catalog Category

Create a new catalog category.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `700/m` **Scopes:** `catalogs:write`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_CREATE_CATALOG_CATEGORY])

Get Catalog Category

Get a catalog category with the given category ID.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m` **Scopes:** `catalogs:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_CATALOG_CATEGORY])

Update Catalog Category

Update a catalog category with the given category ID.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `700/m` **Scopes:** `catalogs:write`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_UPDATE_CATALOG_CATEGORY])

Delete Catalog Category

Delete a catalog category using the given category ID.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `700/m` **Scopes:** `catalogs:write`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_DELETE_CATALOG_CATEGORY])

Get Create Items Jobs

Get all catalog item bulk create jobs. Returns a maximum of 100 jobs per request.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m` **Scopes:** `catalogs:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_CREATE_ITEMS_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. Rate limits are 75/s burst and 700/m steady. Requires `catalogs:write` sco
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_SPAWN_CREATE_ITEMS_JOB])

Get Create Items Job

Get a catalog item bulk create job with the given job ID. An `include` parameter can be provided to get the following related resource data: `items`.<br><br>*Rate limits*:<br>Burst: `350/s`<br
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_CREATE_ITEMS_JOB])

Get Update Items Jobs

Get all catalog item bulk update jobs. Returns a maximum of 100 jobs per request.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m` **Scopes:** `catalogs:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_UPDATE_ITEMS_JOBS])

Spawn Update Items Job

You can bulk update up to 100 catalog items with a 5MB payload limit. A max of 500 jobs can run concurrently. Rate limits are 75 requests/second and 700 requests/minute. Required scope: `catal
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_SPAWN_UPDATE_ITEMS_JOB])

Get Update Items Job

Get a catalog item bulk update job with the given job ID. An `include` parameter can be provided to get the following related resource data: `items`.<br><br>*Rate limits*:<br>Burst: `350/s`<br
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_UPDATE_ITEMS_JOB])

Get Delete Items Jobs

Get all catalog item bulk delete jobs. Returns a maximum of 100 jobs per request.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m` **Scopes:** `catalogs:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_DELETE_ITEMS_JOBS])

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. Rate limits are 75/s burst and 700/m steady. Requires `catalogs:write` sc
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_SPAWN_DELETE_ITEMS_JOB])

Get Delete Items Job

Get a catalog item bulk delete job with the given job ID.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m` **Scopes:** `catalogs:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_DELETE_ITEMS_JOB])

Get Create Variants Jobs

Get all catalog variant bulk create jobs. Returns a maximum of 100 jobs per request.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m` **Scopes:** `catalogs:read`
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.KLAVIYO_GET_CREATE_VARIANTS_JOBS])

Frequently asked questions

What is Composio.dev?

Composio.dev is a platform for building AI applications, designed to make the process of developing AI solutions super easy and fun! It provides a comprehensive set of tools and libraries that simplify the process of developing AI solutions, allowing you to focus on the creative aspects of your project without getting bogged down by the technical details.

How does Composio.dev support Klaviyo?

Composio.dev seamlessly integrates with Klaviyo, allowing you to leverage its capabilities within the Composio.dev platform. You can utilize Klaviyo to call functions across various platforms, including Google, GitHub, and others, making it a breeze to incorporate different services into your AI applications. Additionally, it supports user authentication via OAuth2 and can work in conjunction with other popular frameworks like LangChain and CrewAI, giving you the flexibility to build truly innovative AI solutions.

What models can I use with Klaviyo?

With Klaviyo, you have access to a wide range of state-of-the-art language models, including GPT-4o (OpenAI), GPT-3.5 (OpenAI), GPT-4 (OpenAI), Claude (Anthropic), PaLM (Google), LLaMA and LLaMA 2 (Meta), Gemini, and many others. This flexibility allows you to choose the model that best suits your specific use case, whether you're building a chatbot, a content creation tool, or any other AI-powered application. You can experiment with different models and find the one that delivers the best performance for your project.

How can I integrate Klaviyo into my project?

Composio.dev provides a seamless integration for Klaviyo, making it super easy to incorporate this powerful framework into your projects. You can leverage the Composio.dev API to call functions from Klaviyo, allowing you to tap into its capabilities with just a few lines of code. The SDK is available in Python, JavaScript, and TypeScript, so you can work with your preferred programming language and integrate Klaviyo into your projects seamlessly.

What is the pricing for Klaviyo?

Klaviyo is completely free to use, with a generous free tier that allows up to 1000 requests per month. This makes it accessible for developers and organizations of all sizes to explore and experiment with this powerful tool without any upfront costs. Whether you're a student working on a personal project or a startup building the next big thing, you can get started with Klaviyo without worrying about breaking the bank.

What kind of authentication is supported for Klaviyo?

Klaviyo supports OAuth2 authentication, ensuring secure and authorized access to its functionalities. You can leverage the Composio.dev API to handle authentication and call functions from Klaviyo seamlessly. The SDK is available in Python, JavaScript, and TypeScript for your convenience, making it easy to integrate authentication into your projects and keep your users' data safe and secure.

Can I add Klaviyo to my project?

Absolutely! You can easily incorporate Klaviyo into your project by utilizing the Composio.dev API. This API allows you to call functions from Klaviyo, enabling you to leverage its capabilities within your application. The SDK is available in Python, JavaScript, and TypeScript to facilitate integration, so you can work with the language you're most comfortable with and add Klaviyo to your project with ease.

What is the accuracy of Klaviyo?

Klaviyo is designed to provide highly accurate and reliable results, ensuring that your AI applications perform at their best. The integration with Composio.dev ensures precise function calls, enabling you to build robust and powerful AI applications with confidence. Klaviyo's comprehensive framework and the ability to leverage state-of-the-art models ensure reliable and accurate outcomes for your AI development needs, whether you're working on a chatbot, a content creation tool, or any other AI-powered project.

What are some common use cases for Klaviyo?

Klaviyo can be used for a wide range of AI applications, making it a versatile tool for developers and creators alike. Some common use cases include natural language processing, text generation, question answering, sentiment analysis, and more. It's particularly useful for building chatbots, virtual assistants, content creation tools, and other AI-powered applications that can help you automate tasks, engage with users, and create compelling content. Whether you're working on a personal project or building a product for your startup, Klaviyo can help you bring your ideas to life.

How does Klaviyo handle data privacy and security?

Data privacy and security are crucial considerations when working with AI systems, and Klaviyo takes these issues seriously. It follows industry best practices and adheres to strict data protection regulations, ensuring that your data is kept safe and secure. Klaviyo provides robust security measures, such as encryption and access controls, to ensure the confidentiality and integrity of your data. You can rest assured that your sensitive information is protected when using Klaviyo for your AI development needs.
+ Integrate seamlessly with your agentic frameworks
Composio Works with All Shapes and SizesComposio Works with All Shapes and SizesComposio Works with All Shapes and SizesComposio Works with All Shapes and SizesComposio Works with All Shapes and Sizes
Building for AI across continents🧪