Claude
Skills
Sign in
Back

pp-customer-io

Included with Lifetime
$97 forever

Every Customer.io action a marketer or ops engineer takes — campaigns, broadcasts, segments, deliveries, exports, suppressions, Reverse-ETL — wrapped in named verbs, backed by a local SQLite cache, and served through a bundled MCP server. Trigger phrases: `use customer-io`, `run customer-io`, `trigger a customer.io broadcast`, `send a customer.io transactional message`, `export a customer.io segment`, `check customer.io delivery health`, `audit customer.io suppressions`, `what fraction of segment X opened journey Y in customer.io`.

AI Agents

What this skill does

<!-- GENERATED FILE — DO NOT EDIT.
     This file is a verbatim mirror of library/marketing/customer-io/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/". -->

# Customer.io — Printing Press CLI

## Prerequisites: Install the CLI

This skill drives the `customer-io-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 customer-io --cli-only
   ```
2. Verify: `customer-io-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/customer-io/cmd/customer-io-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

Reach for this CLI when you need to do anything in Customer.io that's tedious in the web UI: bulk suppressions with an audit trail, journey funnels cross-cut by segment, customer-360 timelines for incident triage, broadcast pre-flight before a high-stakes send, or Reverse-ETL health checks. It is also the right tool when an agent needs to drive Customer.io — the bundled MCP server exposes the same verbs over stdio and HTTP transports. For raw event ingestion (the Track API) or per-source CDP write keys, prefer one of the official server-side SDKs.

## Unique Capabilities

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

### Local state that compounds
- **`campaigns funnel`** — Render a step-by-step journey funnel (sent → delivered → opened → clicked → converted) for one campaign, optionally cross-cut by segment.

  _Reach for this when an agent is asked 'what fraction of segment X completed journey Y' — the answer is one query against synced data, not two exports and a spreadsheet._

  ```bash
  customer-io campaigns funnel cmp_482 --segment seg_19 --since 30d --json
  ```
- **`segments overlap`** — Compute pairwise and multi-way Venn diagrams of segment memberships from the local store.

  _Use when validating audience design — 'are my churned-risk and high-value segments overlapping?' — without exporting twice._

  ```bash
  customer-io segments overlap seg_19 seg_42 seg_88 --json
  ```
- **`customers timeline`** — Chronological per-customer event stream merging identifies, deliveries, suppressions, and segment-membership events from the local store.

  _Reach for this on incident triage or 'did the welcome SMS go out to this user?' — one command instead of a UI scroll-fest._

  ```bash
  customer-io customers timeline [email protected] --since 30d --json
  ```

### Send-time safety
- **`broadcasts preflight`** — Before triggering a broadcast, check target segment size, suppression overlap, and last-sent recency from the local deliveries cache; emit a green/yellow/red verdict with structured reasons.

  _Use before any broadcast to avoid double-sending, accidental over-mailing, or 429 storms._

  ```bash
  customer-io broadcasts preflight 123457 bcr_77 --segment seg_19 --json
  ```
- **`suppressions audit`** — Attribute every suppression in a window to the triggering bounce or complaint delivery (or 'manual' if no preceding event).

  _Use when an ops engineer needs to explain why a customer is suppressed, or when auditing complaint-driven churn._

  ```bash
  customer-io suppressions audit --since 30d --reason bounce --json
  ```
- **`cdp-reverse-etl health`** — Named verb over Reverse-ETL run history with status, row counts, error reasons, and an optional --watch poll mode.

  _Use as the daily standup question 'are warehouse syncs healthy?' — replaces three separate api calls + jq filters._

  ```bash
  customer-io cdp-reverse-etl health --since 24h --watch
  ```

### Audit and provenance
- **`suppressions bulk add`** — Read a CSV or JSONL of email/customer-id, fan out real suppress calls with adaptive throttle, append every call to a local JSONL audit log keyed by date.

  _Use for compliance-driven bulk actions where you need to defend later 'who got suppressed when, by whom, with what status code'._

  ```bash
  customer-io suppressions bulk add --from-csv complaints.csv --reason complaint --dry-run
  ```
- **`deliveries triage`** — Filter live + local deliveries by template + status + window, write a self-contained bundle (summary.md with SQL group-by error reasons, deliveries.jsonl, recipients.txt) ready to paste into an incident doc.

  _Pipe the bundle into Claude or a Notion doc for one-shot incident handoff; replaces 30+ minutes of UI scrolling._

  ```bash
  customer-io deliveries triage --template tx_91 --status bounced --since 1h --bundle ./incident-2026-05-07
  ```

## Command Reference

**broadcasts** — List, inspect, and trigger one-off broadcasts (1 req / 10 s rate-limited)

- `customer-io-pp-cli broadcasts get` — Get one broadcast
- `customer-io-pp-cli broadcasts list` — List broadcasts in an environment
- `customer-io-pp-cli broadcasts metrics` — Read metrics for one broadcast
- `customer-io-pp-cli broadcasts trigger` — Trigger a broadcast (rate-limited to 1 req / 10 s)

**campaigns** — List campaigns and read campaign + journey metrics

- `customer-io-pp-cli campaigns get` — Get one campaign
- `customer-io-pp-cli campaigns journey_metrics` — Read step-by-step journey funnel metrics
- `customer-io-pp-cli campaigns list` — List campaigns in an environment
- `customer-io-pp-cli campaigns metrics` — Read aggregate metrics for a campaign

**cdp_destinations** — List CDP destinations (Premium feature)

- `customer-io-pp-cli cdp_destinations` — List CDP destinations

**cdp_reverse_etl** — List Reverse-ETL syncs (Premium feature)

- `customer-io-pp-cli cdp_reverse_etl` — List Reverse-ETL syncs

**cdp_sources** — List CDP data sources (Premium feature)

- `customer-io-pp-cli cdp_sources` — List CDP sources

**customers** — Manage Customer.io customer profiles within an environment (workspace)

- `customer-io-pp-cli customers get` — Get a customer's attributes
- `customer-io-pp-cli customers list_activities` — List activity events for a customer
- `customer-io-pp-cli customers list_messages` — List messages sent to a customer
- `customer-io-pp-cli customers list_segments` — List the segments a customer belongs to

**deliveries** — Inspect delivery events (sends, opens, clicks, bounces, complaints)

- `customer-io-pp-cli deliveries get` — Get one delivery
- `customer-io-pp-cli deliveries list` — List recent deliveries

**exports** — Start, monitor, and download data exports (segment members, deliveries, customers, etc.)

- `customer-io-pp-cli exports download` — Get the signed download URL for a finished export
- `customer-io-pp-cli exports get` — Get the status of an export
- `customer-io-pp-cli exports list` — List recent exports

**segments** — List segments and inspect segment membership

- `customer-io-pp-cli segments customer_count` — Get the customer count for a segment
- `customer-io-pp-cli segments get` — Get one segment
- `customer-io-pp-cli segments list` — List segments in an environment
- `customer-io-pp-cli segments members` — List customer IDs in a segment

**suppressions** — Suppress and unsuppress customers; the official audit surface for compliance actions

- `customer-io-pp-cli suppressions add` — Suppress a customer
- `customer-io-pp-cli suppressions count` 

Related in AI Agents