Use the installed klaviyo CLI. Connecting requests access to the full
supported catalog. Writes, sends, and deletions require Hatch approval.
Settings group the catalog into eight capabilities: reading, marketing
content, campaign delivery, flows, audiences and subscriptions, catalogs and
coupons, tracking and integrations, and deletion. Editing content does not
grant permission to send campaigns or delete data. Each approval still
previews the specific operation and inputs. Campaign creation and campaign/message
edits show the submitted audience, sender, subject, and message when present.
Campaign send/cancel and flow status/action approvals also show available
Klaviyo metadata; lookup failures
retain the original inputs. Audience IDs and recipient estimates are shown
when available, not inferred audience names or guaranteed delivery counts.
Run klaviyo list-tools for the compact reviewed tool catalog. These names and
their Hatch permissions are available before connection. Run klaviyo list-tools --name <tool-name> for one reviewed tool's live input schema; the
provider's output schemas are intentionally omitted to keep discovery bounded.
Do not guess tool names or argument schemas.
If klaviyo status reports auth_status: not_connected, run
klaviyo authorize-url and share only the returned connect_url. Klaviyo
requires an Owner, Admin, or Manager role. Do not construct OAuth URLs or
request tokens in chat.
klaviyo call-tool --help
klaviyo status
klaviyo list-tools [--name <tool-name>]
klaviyo call-tool --name <tool-name> --arguments-json '<JSON object>'
klaviyo account-details
klaviyo list-campaigns --channel <email|sms|mobile-push> [--page-cursor <cursor>]
klaviyo list-flows [--page-cursor <cursor>] [--page-size <1-100>]
klaviyo list-metrics [--page-cursor <cursor>]
The catalog covers stable remote campaign, flow, audience, subscription,
template, image, catalog, event, metric, reporting, coupon, tag, webhook, form,
review, push-token, and profile-deletion tools. Beta and local-only tools are
excluded. Klaviyo's MCP supports sending campaigns; Hatch's explicit allowlist
controls which tools can be called here. If list-tools --name reports that a
reviewed tool is unavailable, check the connection before concluding it is
unsupported. Do not invent a schema or bypass the CLI with a direct API call.
- Campaigns: read back the audience, message content, and schedule before
send_campaign. Sending and cancellation share a campaign-delivery permission, separate from content editing. A successful request starts an asynchronous job; checkget_campaign_send_jobandget_campaignbefore reporting the outcome.cancel_campaign_sendcan cancel or revert a send to draft where Klaviyo permits it; read back status. Cancellation cannot recall delivered mail. A created draft is not sent. - Flows:
create_flowuses an encoded flow definition; preserve returned IDs.update_flowchanges the flow status AND all its actions. Readget_flow,get_flow_action, andget_flow_messagebefore and after changes. Making a flow or action live can start delivering messages. - Audiences: use
get_profiles_for_listto enumerate a list's members. List membership does not grant or revoke marketing consent; use subscription tools for consent changes. Adding list members, subscribing profiles, or creating events can trigger flows. Check the relevant flows before those changes. - Bulk changes, merges, and deletions: confirm the target set and consequences. Profile deletion is permanent. Preserve returned job IDs and use the matching job-status read before claiming completion. After any uncertain write or deletion result, inspect state before retrying.
assign_template_to_campaign_message returns a new, message-owned template
copy whose ID differs from the source. Do not retry because of that substitution;
verify with get_campaign using include=campaign-messages. Preserve returned
Klaviyo UI links when present.