Connect a module
Klaviyo
ShopMCP's Klaviyo integration is built directly against Klaviyo's versioned REST API. It covers every authenticated mutation in the 2026-07-15 GA specification—including campaigns, flows, profile custom properties, catalogs, webhooks, and Custom Objects—behind one private API key and a separate workspace write gate.
Why the first-party integration
Klaviyo offers its own expanding MCP server at mcp.klaviyo.com, and ShopMCP still supports pointing at it as a fallback. The native ShopMCP integration is for teams that want a pinned API revision, complete stable write coverage, workspace-level write gating, multi-account routing, and cross-integration playbooks in the same runtime.
| Category | Klaviyo's official MCP | ShopMCP Klaviyo | Why it matters |
|---|---|---|---|
| Profiles | Selected profile tools | 5 reads + 14 profile/subscription writes | Merge dedupes duplicate people; bulk import is the tool you need for migrations from another platform. |
| Lists | Available toolset varies by server flags | 4 reads + 5 writes — full lifecycle + membership | You can build and maintain lists directly from a chat, not just read them. |
| Segments | Available toolset varies by server flags | 5 reads + 3 writes — full lifecycle | Create and maintain rule-based audiences directly from an approved workflow. |
| Campaigns | Core and extended tools | 6 reads + 10 writes incl. send, cancel, and estimation refresh | The full lifecycle is available behind ShopMCP’s write gate, including real sends and cancellation. |
| Flows | Core and extended tools | 6 reads + 6 writes across flows and action nodes | Build, update, pause, activate, or delete flows and mutate their action nodes. |
| Reporting | 2 canned reports | 6 report endpoints + raw metric aggregates | Any metric, any time window, any grouping — no longer limited to campaign and flow canned reports. |
| Coupons | Varies by enabled toolsets | 11 tools — coupon and code lifecycle + bulk minting | Generate single-use discount codes at scale directly from chat-driven workflows. |
| Reviews | Varies by enabled toolsets | 3 tools — read + moderation | Triage incoming product reviews without opening the Klaviyo UI. |
| Templates | Template APIs | 3 reads + 9 gated writes, including governed visual-editor link changes | Preview an exact button, image, header, coupon, product, or social link change before replacing the native editor definition. |
| Forms | Varies by enabled toolsets | 5 tools — read + create / delete | Popup, embed, and flyout forms — readable and deletable via MCP. |
| Webhooks | Varies by enabled toolsets | 5 tools — full lifecycle | Wire Klaviyo event streams into your own systems programmatically. |
| Custom Objects | Varies by account and enabled toolsets | 21 tools — complete GA schema, mapping, ingestion, relationship, and deletion surface | Model off-platform data (subscriptions, loyalty tiers, SKU catalogues) and personalise on it. |
| Bulk imports | Varies by enabled toolsets | Up to 10,000 profiles or 1,000 events per job | Onboard from another platform or backfill historical events without custom ETL. |
| Composite playbooks | No ShopMCP cross-module playbooks | 9 multi-step playbooks (morning dashboard, flow health, deliverability snapshot…) | One prompt, one response — instead of chaining 5–10 calls yourself. |
| Total tools | A broad, changing set of core, default, and beta tools | 206 total; 122 gated writes, including approved profile-property plans | A durable API-completeness claim rather than a frozen comparison to another server's changing catalogue. |
Custom profile properties
Klaviyo stores custom profile properties as case-sensitive keys inside profile.attributes.properties. ShopMCP previews the exact key, selected profiles, existing values, and proposed values before a workspace owner or admin approves a property plan. Clearing a value with null and removing the key with meta.patch_properties.unset are separate operations.
Per-profile values, not a global field registry
Accepts Marketing, does not change subscription consent.1. Create a private API key in Klaviyo
Log in to Klaviyo and go to Account → Settings → API keys → Create private API key. Give the key a name (ShopMCP works) and pick the scope recipe that matches how you intend to use the integration:
- Read-only recipe — grant
Readon every resource (Accounts, Campaigns, Catalogs, Coupons, Events, Flows, Forms, Images, Lists, Metrics, Profiles, Reviews, Segments, Subscriptions, Tags, Templates, Webhooks). Registers every read tool plus the composite playbooks. Writes stay off regardless of this key’s scope — that’s gated by a separate toggle (step 3 below). - Operational recipe — grant
Fullon every resource above. This is what the write tools need to work once you turn them on in the ShopMCP dashboard. You can always rotate the key to widen or narrow scope later.
Scope ≠ access
2. Paste the key into ShopMCP
Open Settings → Integrations → Klaviyo and paste the key (it starts with pk_). We validate it with a single round-trip to GET /api/accounts, populate the connection label from your account’s company name, and stash the key in encrypted storage — it never leaves your workspace and never gets logged.
3. (Optional) Enable writes
Flip Allow writes on the same settings page when you want the write tools active. Defaults to off — even an operational-recipe key cannot modify Klaviyo data until this toggle is on. Consequential operations add explicit confirmation and preflight checks before the upstream call.
Sending campaigns hits real people
klaviyo_send_campaign ships real emails or SMS to real recipients. Use klaviyo_get_campaign_recipient_estimation first to see the audience size, and verify the subject line + send time on the draft before confirming the send. ShopMCP is not responsible for over-sends, bounced deliverability, or billing from SMS segments.4. Multi-account setups (agencies)
Klaviyo API keys are scoped to a single account — there’s no MCA equivalent. If you manage multiple Klaviyo accounts (typical for agencies on our Team / Agency tiers), mint one private API key per account and connect each as its own ShopMCP connection. When two or more are active, every klaviyo_* tool gets a store parameter that targets a specific account — by label, account name, account ID, or connection ID.
5. Keeping the legacy integration
If you already OAuthed into Klaviyo’s official MCP server (mcp.klaviyo.com/mcp) and prefer to keep that path, you can still do so via the external-MCP wizard — we’ll record the URL, probe its tool list, and route playbook steps through it. But the available tool set and behavior differ from ShopMCP’s native connector. Use the native integration when you need stable full-write coverage, cross-module playbooks, or ShopMCP’s workspace write gate.
Our coverage pledge
revision header in @shopmcp/klaviyo-mcp, and keep beta or client-side endpoints outside the production completeness claim until they fit this server-side integration.
