Claude
Skills
Sign in
Back

pp-klaviyo

Included with Lifetime
$97 forever

Klaviyo from the shell, with local customer-behavior analytics layered on top. Trigger phrases: `inspect a Klaviyo profile`, `deploy a Klaviyo campaign`, `check Klaviyo flow decay`, `reconcile Klaviyo campaign revenue`.

Ads & Marketing

What this skill does

<!-- GENERATED FILE — DO NOT EDIT.
     This file is a verbatim mirror of library/marketing/klaviyo/SKILL.md,
     regenerated post-merge by tools/generate-skills/. Hand-edits here are
     silently overwritten on the next regen. Edit the library/ source instead.
     See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". -->

# Klaviyo — Printing Press CLI

## Prerequisites: Install the CLI

This skill drives the `klaviyo-pp-cli` binary. **You must verify the CLI is installed before invoking any command from this skill.** If it is missing, install it first:

1. Install via the Printing Press installer. It defaults binaries to `$HOME/.local/bin` on macOS/Linux and `%LOCALAPPDATA%\Programs\PrintingPress\bin` on Windows:
   ```bash
   npx -y @mvanhorn/printing-press-library install klaviyo --cli-only
   ```
2. Verify: `klaviyo-pp-cli --version`
3. Ensure the reported install directory is on `$PATH` for the agent/runtime that will invoke this skill.

If the `npx` install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.3 or newer):

```bash
go install github.com/mvanhorn/printing-press-library/library/marketing/klaviyo/cmd/klaviyo-pp-cli@latest
```

If `--version` reports "command not found" after install, the runtime cannot see the binary directory on `$PATH`. Do not proceed with skill commands until verification succeeds.

## When to Use This CLI

Use this CLI when an agent needs to inspect or operate Klaviyo without the web UI, especially for profiles, events, campaigns, flows, segments, templates, metrics, and compound growth workflows.

## Unique Capabilities

These capabilities aren't available in any other tool for this API.

### Campaign operations
- **`campaigns deploy`** — Create an email template, create a draft campaign, and assign the template to the campaign message in one audited workflow.

  _Agents can build a draft campaign without hand-stitching three endpoint calls._

  ```bash
  klaviyo-pp-cli campaigns deploy --template-html ./email.html --campaign-name "May offer" --list-id LIST_ID --subject "May offer" --from-email [email protected] --from-label "Marketing" --json
  ```
- **`campaigns image-swap`** — Find a campaign message template and replace an image URL inside the HTML while preserving the rest of the draft.

  _Agents can make safe creative swaps without rebuilding a whole campaign._

  ```bash
  klaviyo-pp-cli campaigns image-swap --campaign-id CAMPAIGN_ID --old-url https://cdn.example.com/old.jpg --new-url https://cdn.example.com/new.jpg --json
  ```

### Behavior graph analytics
- **`flow-decay`** — Identify flows whose open or click performance has decayed across recent time buckets using synced local data.

  _Agents can spot lifecycle automations that need refresh before revenue falls further._

  ```bash
  klaviyo-pp-cli flow-decay --days 90 --threshold 0.15 --json
  ```
- **`cohort`** — Group profiles by first event date and compute retention or repeat-action curves from synced profiles and events.

  _Agents can answer which acquisition cohorts keep buying without exporting CSVs._

  ```bash
  klaviyo-pp-cli cohort --metric "Placed Order" --interval month --json --select cohort,profiles,retained
  ```
- **`attribution`** — Join order events with campaign and flow attribution properties to summarize revenue by channel and source.

  _Agents can explain which automation or campaign generated revenue using local event evidence._

  ```bash
  klaviyo-pp-cli attribution --metric "Placed Order" --group-by flow --since 2026-01-01 --json
  ```

### Data hygiene
- **`dedup`** — Find profiles that appear duplicated by email, phone, or cross-channel collisions in the local profile mirror.

  _Agents can flag customer records that split behavior and revenue history across identities._

  ```bash
  klaviyo-pp-cli dedup --by email,phone --json
  ```
- **`reconcile`** — Compare campaign UTM evidence with local Klaviyo order events and optional Shopify credentials when available.

  _Agents can check whether campaign performance agrees with order evidence before reporting numbers._

  ```bash
  klaviyo-pp-cli reconcile --campaign-id CAMPAIGN_ID --since 2026-01-01 --json
  ```

### Growth planning
- **`plan brief-to-strategy`** — Turn a growth brief into a structured Klaviyo campaign, flow, segment, and experiment strategy.

  _Agents can convert strategy notes into a concrete Klaviyo execution plan._

  ```bash
  klaviyo-pp-cli plan brief-to-strategy --brief ./brief.md --json
  ```
- **`plan qa-gate`** — Run a launch-readiness checklist for links, offers, dates, timezone, fallback tokens, compliance, and deliverability flags.

  _Agents can block risky campaign launches with explicit findings instead of vague review notes._

  ```bash
  klaviyo-pp-cli plan qa-gate --campaign-id CAMPAIGN_ID --json
  ```

## Command Reference

**accounts** — accounts

- `klaviyo-pp-cli accounts get` — Retrieve the account(s) associated with a given private API key. This will return 1 account object within the array....
- `klaviyo-pp-cli accounts get-id` — Retrieve a single account object by its account ID. You can only request the account by which the private API key...

**back-in-stock-subscriptions** — Manage back in stock subscriptions

- `klaviyo-pp-cli back-in-stock-subscriptions` — Subscribe a profile to receive back in stock notifications. Check out [our Back in Stock API...

**campaign-clone** — Manage campaign clone

- `klaviyo-pp-cli campaign-clone` — Clones an existing campaign, returning a new campaign based on the original with a new ID and name.<br><br>*Rate...

**campaign-message-assign-template** — Manage campaign message assign template

- `klaviyo-pp-cli campaign-message-assign-template` — Creates a non-reusable version of the template and assigns it to the message.<br><br>*Rate limits*:<br>Burst:...

**campaign-messages** — Manage campaign messages

- `klaviyo-pp-cli campaign-messages get` — Returns a specific message based on a required id.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`...
- `klaviyo-pp-cli campaign-messages update` — Update a campaign message<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `campaigns:write`

**campaign-recipient-estimation-jobs** — Manage campaign recipient estimation jobs

- `klaviyo-pp-cli campaign-recipient-estimation-jobs get` — Retrieve the status of a recipient estimation job triggered with the `Create Campaign Recipient Estimation Job`...
- `klaviyo-pp-cli campaign-recipient-estimation-jobs refresh-campaign-recipient-estimation` — Trigger an asynchronous job to update the estimated number of recipients for the given campaign ID. Use the `Get...

**campaign-recipient-estimations** — Manage campaign recipient estimations

- `klaviyo-pp-cli campaign-recipient-estimations <id>` — Get the estimated recipient count for a campaign with the provided campaign ID. You can refresh this count by using...

**campaign-send-jobs** — Manage campaign send jobs

- `klaviyo-pp-cli campaign-send-jobs cancel-campaign-send` — Permanently cancel the campaign, setting the status to CANCELED or revert the campaign, setting the status back to...
- `klaviyo-pp-cli campaign-send-jobs get` — Get a campaign send job<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:** `campaigns:read`
- `klaviyo-pp-cli campaign-send-jobs send-campaign` — Trigger a campaign to send asynchronously<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m` **Scopes:**...

**campaign-values-reports** — Manage campaign values reports

- `klaviyo-pp-cli campaign-values-reports` — Returns the requested campaign analytics values data<br><br>*Rate limits*:<br>Burst: `1/s`<br>Steady:...

**campaigns** — campaigns

- `klaviyo-pp-cli campaigns create` — Creates a campaign given a set of parameters, then returns it.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady:...
- `klaviyo-pp-cli campaigns delete` — Delete a campaign wi

Related in Ads & Marketing