Klaviyo
Email & SMS marketing automation for AI agents
Email and SMS marketing automation powered by Klaviyo. Manage profiles, lists, segments, campaigns, flows, templates, events, metrics, tags, webhooks, catalog items, and coupons. Build and analyze marketing automation workflows, track campaign performance, and manage subscriber data. Essential for marketing teams running email and SMS campaigns at scale.
Look up data, search, list, and analyze
Create new things, update existing ones
Delete records and clean things up
List Profiles
readList profiles (contacts) with optional filtering and sorting. Returns profile data including email, phone, name, and custom properties. Use cursor-based pagination for large result sets.
Get Profile
readGet a single profile by ID. Returns full profile data including email, phone, name, location, custom properties, and predictive analytics if available.
Get Profile Events
readGet events (activity history) for a specific profile. Shows emails opened/clicked, flows entered, purchases, and other tracked events. Supports filtering by metric, date range, and sorting.
Get Profile Lists
readGet all lists a profile belongs to. Returns list IDs, names, and membership details.
Get Profile Segments
readGet all segments a profile belongs to. Returns segment IDs, names, and membership details.
List Lists
readList all lists in the account. Returns list names, creation dates, and profile counts. Lists are used to organize subscribers for targeted campaigns and flows.
Get List
readGet details of a single list by ID including name, creation date, and opt-in process type.
Get List Profiles
readGet all profiles in a list. Returns profile data including email, name, and custom properties. Supports cursor pagination for large lists.
List Segments
readList all segments. Segments are dynamic groups of profiles based on conditions (behavior, properties, list membership). Returns segment names, creation dates, and conditions.
Get Segment
readGet a single segment by ID including name, definition, and conditions.
Get Segment Profiles
readList all profiles in a segment. Returns profile data including email, name, and custom properties. Supports cursor pagination for large segments and filtering by email, phone, or join date.
List Templates
readList all email templates. Returns template names, HTML content references, and creation dates. Templates are reusable email designs for campaigns and flows.
Get Template
readGet a single template by ID including name, HTML content, and metadata.
Render Template
readRender a template with context data to preview the final HTML output. Useful for previewing how a template looks with specific profile data or dynamic content.
List Flows
readList all flows (automated sequences). Returns flow names, status (draft/manual/live), trigger types, and creation dates. Flows automate email/SMS sends based on triggers like list joins, purchases, or custom events.
Get Flow
readGet a single flow by ID. Always returns the full flow definition including triggers, actions (with settings like template_id, subject_line, delay values), action linking (next/next_if_true/next_if_false), and profile filters. Use this to inspect existing flows or as a template for create_flow/update_flow_definition.
Get Flow Actions
readGet all actions (steps) in a flow. Returns action types (email, SMS, webhook, delay, conditional split), their status, and configuration.
Get Flow Flow Actions
readGet all actions in a flow with their associated message content (templates, subject lines, etc.) included. Unlike get_flow_actions which returns action metadata only, this includes the full flow-message details for each action, letting you audit email content without separate get_template calls.
List Events
readList tracked events across all profiles. Returns event names, timestamps, properties, and associated profile info. Supports filtering by metric, profile, or time range.
List Metrics
readList all metrics (event types) tracked in the account. Returns metric names, integration sources, and creation dates. Metrics are the event types that appear in analytics and trigger flows.
Get Metric
readGet a single metric by ID including name, integration source, and metadata.
Query Metric Aggregates
readQuery aggregate data for a metric. Returns sums, counts, averages, or unique counts over time periods. Use for analytics and reporting on event data (e.g. total revenue, email opens over time).
List Campaigns
readList all campaigns with optional filtering by status. Returns campaign names, status (draft/scheduled/sent/sending), audiences, and send times.
Get Campaign
readGet a single campaign by ID including name, status, audience, message content, tracking settings, and send time.
Get Flow Performance
readGet performance metrics for flows including delivery, open, click, and conversion rates. Returns aggregated statistics over a date range.
Get Campaign Performance
readGet performance metrics for campaigns including delivery, open, click, and conversion rates. Returns aggregated statistics over a date range.
List Tags
readList all tags in the account. Tags are labels for organizing flows, campaigns, lists, and segments. Returns tag names and associated tag group.
List Webhooks
readList all webhooks configured in the account. Returns webhook URLs, topics, and status.
List Catalog Items
readList catalog items (products). Returns item titles, descriptions, prices, URLs, and images. Catalog items are used in product recommendation emails and abandoned cart flows.
List Images
readList images in the Klaviyo image library. Returns image URLs, names, dimensions, and upload dates. Images can be used in email templates and campaigns.
Create Profile
writeCreate or update (upsert) a profile. If a profile with the same email or phone already exists, it will be updated. Use this for single profile creation — for bulk operations use bulk_import_profiles.
Update Profile
writeUpdate an existing profile by ID. Only provided fields are updated — omitted fields are left unchanged.
Bulk Import Profiles
writeImport profiles in bulk (up to 10,000 per job). Profiles are upserted by email or phone. Optionally add all imported profiles to a list. Returns a job ID to track progress.
Subscribe Profiles
writeSubscribe profiles to email and/or SMS marketing for a list. Creates profiles if they don't exist. Each subscription specifies channels (email and/or sms).
Unsubscribe Profiles
writeUnsubscribe profiles from email and/or SMS marketing for a list. Profiles remain in the list but stop receiving marketing messages.
Suppress Profiles
writeSuppress profiles to prevent all future email sends. Suppressed profiles will not receive any emails regardless of list membership or consent status. Use for compliance (e.g. GDPR erasure requests).
Unset Profile Properties
writeCompletely remove custom properties from a profile. Unlike setting a property to null (which shows 'None'), unsetting removes the property entirely. Useful for cleaning up junk or legacy properties from migrations.
Bulk Unsuppress Profiles
writeReverse profile suppressions to re-enable email sending. Removes profiles from the suppression list so they can receive emails again. Use after accidental suppression or after investigation is complete.
Merge Profiles
writeMerge two duplicate profiles into one. The first profile (keep_id) survives and receives all data from the second profile (merge_id), which is then deleted. Use for deduplication when the same person has multiple profiles from different channels.
Create List
writeCreate a new list for organizing subscribers. Lists are used as audiences for campaigns and flow triggers.
Add Profiles To List
writeAdd existing profiles to a list by their profile IDs. Profiles must already exist in Klaviyo. Does not change subscription status.
Create Segment
writeCreate a new segment with a definition that specifies which profiles are included. Segments dynamically update as profiles match or stop matching the conditions.
Update Segment
writeUpdate a segment's name or definition. Changes to the definition immediately re-evaluate which profiles are included.
Create Template
writeCreate a new email template with HTML content. Templates can be used in campaigns and flows for consistent email design.
Update Template
writeUpdate a template's name or HTML content. Changes propagate automatically to all flows using this template.
Create Flow
writeCreate a new flow with a full definition including triggers, actions (emails, SMS, delays, conditional splits, webhooks), and action linking. All flows are created in 'draft' status. Use get_flow on an existing flow to retrieve a definition template, then modify it for your new flow. Each action needs a temporary_id (any unique string) and actions link via next/next_if_true/next_if_false in their links object. Set entry_action_id to the temporary_id of the first action.
Update Flow Status
writeUpdate a flow's status. Use to activate (set to 'live'), pause (set to 'manual'), or deactivate (set to 'draft') a flow.
Update Flow Action Status
writeUpdate the status of a single flow action (step). Use to enable or disable individual steps without affecting the entire flow.
Update Flow Action
writeUpdate a flow action's settings without affecting flow structure or recipient progress. Patch specific fields like subject line, sender, template, delay, or conditions.
Update Flow Definition
writeReplace an entire flow definition including triggers, actions, and filters. Flow must be in draft status.
Create Event
writeTrack a custom event (metric) for a profile. Events can trigger flows, update segments, and appear in analytics. Use for tracking purchases, page views, custom actions, etc.
Create Campaign
writeCreate a new email or SMS campaign. The campaign is created in draft status. Use update_campaign to set content and audiences, then send_campaign to deliver it.
Update Campaign
writeUpdate a campaign's name, audiences, send options, or tracking settings. Campaign must be in draft status.
Send Campaign
writeSend a campaign immediately or schedule it for a future time. The campaign must be in draft status with audiences configured. This action cannot be undone — emails will be delivered.
Create Tag
writeCreate a new tag for organizing resources. Tags can be applied to flows, campaigns, lists, and segments.
Create Webhook
writeCreate a new webhook subscription. Klaviyo will POST event data to the endpoint URL when the subscribed topics occur.
Update Webhook
writeUpdate a webhook's name, endpoint URL, or subscribed topics.
Create Coupon
writeCreate a coupon definition. Coupons are templates for generating unique coupon codes that can be used in emails and SMS. After creating a coupon, use create_coupon_codes to generate individual codes.
Create Coupon Codes
writeGenerate coupon codes in bulk for an existing coupon. Creates a batch job that generates unique codes. Returns a job ID to track progress.
Upload Image
writeUpload an image to the Klaviyo image library from a URL. The image is downloaded by Klaviyo and stored in your library for use in emails and campaigns.
Clone Template
writeClone an existing template with a new name. Retrieves the source template's HTML and creates a copy. Useful for creating variations of proven email designs.
Delete Profile
deleteRequest deletion of a profile for GDPR/CCPA compliance. Submits a data privacy deletion job. The profile and all associated data will be permanently removed. Only one identifier (email, phone, or profile ID) can be provided per request.
Delete List
deleteDelete a list. Profiles in the list are NOT deleted — only the list itself is removed. This cannot be undone.
Remove Profiles From List
deleteRemove profiles from a list. Profiles are NOT deleted — only their list membership is removed.
Delete Segment
deleteDelete a segment. Profiles in the segment are NOT deleted. This cannot be undone.
Delete Template
deleteDelete an email template. Templates in use by active campaigns or flows may cause issues. This cannot be undone.
Delete Flow
deleteDelete a flow and all its actions. Active flows should be set to 'draft' first. This cannot be undone.
Delete Campaign
deleteDelete a campaign. Only draft campaigns can be deleted. Sent campaigns cannot be deleted. This cannot be undone.
Delete Tag
deleteDelete a tag. Removes the tag from all associated resources. This cannot be undone.
Delete Webhook
deleteDelete a webhook subscription. Klaviyo will stop sending events to the endpoint. This cannot be undone.