Overview

Klaviyo is a marketing automation platform specializing in email and SMS marketing, primarily designed for ecommerce businesses of varying sizes. The platform provides tools for creating personalized customer experiences through targeted campaigns, automated communication flows, and advanced audience segmentation capabilities. Its core functionality includes email marketing, SMS marketing, marketing automation, a customer data platform (CDP), and tools for creating forms and pop-ups.

The platform aggregates customer data from various sources, including ecommerce platforms, point-of-sale systems, and other marketing tools, into a unified profile. This data is then used to segment audiences based on behavior, purchase history, and demographic information. For example, a business can segment customers who have viewed a specific product category but not made a purchase, and then target them with a tailored email or SMS campaign. Klaviyo's automation features allow users to set up triggered flows, such as welcome series for new subscribers, abandoned cart reminders, and post-purchase follow-ups. These flows can be customized with conditional logic and A/B testing to optimize performance.

Klaviyo's developer experience is supported by a well-documented API and SDKs for Python, Ruby, PHP, and Node.js. The API reference is interactive, allowing developers to test endpoints directly, which can streamline the integration process with existing systems or custom applications. This extensibility is important for businesses requiring custom data synchronization or unique workflow automations beyond the standard platform features. For instance, developers can use the API to programmatically manage lists, profiles, and campaign sends, or to integrate custom analytics dashboards. The platform's focus on data-driven personalization aligns with current marketing trends emphasizing customer lifecycle management and retention strategies, as discussed in resources like Search Engine Land's guide to marketing automation.

The platform offers a free plan that supports up to 500 email contacts and 150 free SMS/MMS credits, allowing businesses to evaluate its features before committing to a paid tier. Paid plans are structured based on the number of email contacts and SMS messages sent, providing scalability as a business grows. Compliance with data privacy regulations such as SOC 2 Type II, GDPR, and CCPA is maintained, which is a consideration for businesses operating in regions with strict data protection laws.

Key features

  • Email Marketing: Tools for designing and sending personalized email campaigns, including drag-and-drop editors, pre-built templates, and A/B testing functionality.
  • SMS Marketing: Capabilities for sending targeted SMS and MMS messages, including automated flows, transactional messages, and promotional campaigns.
  • Marketing Automation: Workflow builders for creating automated customer journeys based on triggers, conditions, and actions, such as welcome series, abandoned cart reminders, and win-back flows.
  • Customer Data Platform (CDP): Unifies customer data from various sources into comprehensive profiles, enabling advanced segmentation and personalized communication.
  • Forms & Pop-ups: Tools for creating customizable signup forms, pop-ups, and embedded forms to grow email and SMS lists.
  • Audience Segmentation: Advanced segmentation capabilities based on customer behavior, purchase history, website activity, and demographic data.
  • Analytics & Reporting: Dashboards and reports to track campaign performance, customer engagement, and revenue attribution.
  • Integrations: Pre-built integrations with popular ecommerce platforms (e.g., Shopify, Magento) and other marketing tools.
  • A/B Testing: Functionality to test different versions of emails, SMS messages, and automation flows to optimize performance.

Pricing

Klaviyo's pricing structure for email is based on the number of contacts, and SMS pricing is based on the number of messages sent. A free plan is available for businesses with up to 500 email contacts and 150 free SMS/MMS credits. The starting paid tier begins at $20 per month and includes up to 500 contacts and 500 SMS/MMS credits per month.

Plan Details (as of 2026-05-07) Email Contacts SMS/MMS Credits Monthly Cost (approx.)
Free Plan Up to 500 150 $0
Starting Paid Tier Up to 500 500 $20
Example Tier 1 1,000 500 $45
Example Tier 2 5,000 500 $100
Example Tier 3 10,000 500 $150

For detailed and up-to-date pricing information, refer to the official Klaviyo pricing page.

Common integrations

Alternatives

  • Braze: A customer engagement platform offering multi-channel messaging and a customer data platform for large enterprises.
  • Iterable: A growth marketing platform designed for personalized cross-channel campaigns and customer lifecycle management.
  • Mailchimp: An email marketing and marketing automation platform known for its user-friendly interface, suitable for small to medium businesses.

Getting started

The following Python example demonstrates how to retrieve a list of profiles from the Klaviyo API using the requests library. This requires an API key for authentication.


import requests
import os

# Replace with your actual Klaviyo API key
# It's recommended to use environment variables for API keys in production
api_key = os.environ.get("KLAVIYO_API_KEY", "YOUR_KLAVIYO_API_KEY")

# Define the API endpoint for profiles
url = "https://a.klaviyo.com/api/profiles/"

headers = {
    "accept": "application/json",
    "revision": "2024-02-15" # Use the latest API revision
}

params = {
    "api-key": api_key,
    "page[size]": 5 # Request 5 profiles per page
}

try:
    response = requests.get(url, headers=headers, params=params)
    response.raise_for_status() # Raise an exception for HTTP errors

    data = response.json()
    print("Successfully retrieved profiles:")
    for profile in data.get("data", []):
        profile_id = profile.get("id")
        email = profile.get("attributes", {}).get("email")
        print(f"  Profile ID: {profile_id}, Email: {email}")

except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")
    if response is not None:
        print(f"Response Status Code: {response.status_code}")
        print(f"Response Body: {response.text}")

This script initializes the API key and constructs a GET request to the Klaviyo profiles endpoint. It includes the necessary headers and parameters, such as the API key and a page size limit. The script then prints the IDs and emails of the retrieved profiles. For more detailed API usage and other endpoints, refer to the Klaviyo API reference.