klaviyo

$npx mdskill add obra/muse-skills/klaviyo

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.

SKILL.md

.github/skills/klaviyoView on GitHub ↗
---
name: "klaviyo"
description: >-
  Read and manage the user's Klaviyo email and SMS marketing campaigns, newsletters,
  flows, subscriber lists, and audience segments. Use to compare campaign
  performance and revenue, find recent customers, plan audience targeting, and
  manage marketing content and subscriptions through Klaviyo's official MCP server.
metadata: { "includeInPrompt": false }
---

# Klaviyo

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.

```text
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; check `get_campaign_send_job` and
  `get_campaign` before reporting the outcome. `cancel_campaign_send` can
  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_flow` uses an encoded flow definition; preserve returned IDs.
  `update_flow` changes the flow status AND all its actions. Read `get_flow`,
  `get_flow_action`, and `get_flow_message` before and after changes. Making a
  flow or action live can start delivering messages.
- Audiences: use `get_profiles_for_list` to 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.

More from obra/muse-skills

SkillDescription
apple_healthkitThe user's synced Apple Health (HealthKit) data: daily metrics (steps, distance, calories, heart rate, HRV, VO2max), sleep sessions (stages, quality, efficiency), and workouts.
artifact_documentCreate, read, edit, or manipulate Word documents (.docx) and Word templates (.dotx). Use whenever a build task's artifact kind is document with the default docx output, or the task mentions a Word doc, .docx, or .dotx, extracts or reorganizes content from one, inserts or replaces images, does find-and-replace in one, or works with tracked changes (redlines) or comments. Covers python-docx generation, raw OOXML editing of existing files, document structure and formatting, and render verification. Not for PDFs, spreadsheets, or Google Docs.
artifact_markdownBuild or revise a plain markdown file (md) deliverable such as notes, a README, meeting minutes, documentation, or text the user will edit or paste elsewhere. Use whenever a build task's artifact kind is markdown. Covers markdown formatting conventions and read-back verification.
artifact_pdfBuild, revise, or manipulate a fixed-layout PDF (report, guide, one-pager, printable document). Use whenever a build task's artifact kind is pdf, a document build's output format is pdf, or the task reads, merges, splits, crops, or fills an existing PDF, including fillable AcroForms. Covers authoring the print-CSS HTML source, rendering, the geometry and validation gates, existing-PDF manipulation and form filling, and delivery under workspace/your_files.
artifact_presentationBuild or revise a slide deck (pptx by default; pdf or html on request). Use whenever a build task's artifact kind is presentation, or the user asks for a deck, slides, or a presentation. Covers per-slide HTML authoring, the StylePlan theme system, font embedding, deck assembly, render gates, and the PPTX export.
artifact_spreadsheetCreate, read, edit, fix, or clean spreadsheet files (.xlsx, .xlsm, .csv, .tsv). Use whenever a build task's artifact kind is spreadsheet, or the task names a spreadsheet file and wants something done to it or produced from it, including restructuring messy tabular data into a proper workbook. Covers openpyxl generation, formulas and recalculation, editing existing workbooks, and the validation gates. Not for tasks whose deliverable is a document, report, or web page that merely contains a table.
artifact_testingVerify an artifact before delivering it - file deliverables (pdf, pptx, docx, xlsx, csv) and web artifacts alike. Use whenever a build is about to return a link, or a build task asks for validation, QA, or a visual check. Covers the per-kind gate scripts, render-and-look verification, and leftover-placeholder scanning.
asana>-
bookingPrimary entry point for direct flight, hotel, restaurant, or event-ticket transactions and for bounded live availability checks delegated by Travel Planning. Always use before provider-specific skills or browser work when the user asks to find live availability or prices, compare bookable options, book, or continue an active booking. Do not use for trip planning itself, broad inspiration, opening hours, schedules, flight status, or other factual questions without transaction intent.
boxSearch, read, upload, download, move, rename, delete, restore, and share Box content; manage comments and metadata.