Skill

customer-io

Agent-native CLI for Customer.io — manages campaigns, broadcasts, segments, deliveries, exports, and Reverse-ETL via the Service Account token. Pre-broadcast safety checks, suppression audits with attribution, customer-event timelines for incident triage, and journey funnel analysis. Service-Account-token auth unifies all v1 surfaces; the Track API is intentionally out of scope.

Verified: 2026-05-13 (printing-press-ingest-2026-05-13+enrich-capability-skill)

When to use customer-io

Choose if

You're running Customer.io campaigns from an agent loop and want a CLI with pre-broadcast safety checks, segment overlap validation, suppression-audit attribution, and rate-limit-aware exit codes. Prefer this over hand-rolled curl against api.customer.io when the workflow needs replayable broadcasts with guardrails or when bulk suppression with audit trail matters.

Avoid if

You need event ingestion into Customer.io (the Track API is out of scope for v1). Also avoid if your account is on Essentials and the workflow depends on Reverse-ETL / CDP destinations — those endpoints return 403 below the Premium tier.

Risk Flags

  • HIGH scope Double-sending risk on broadcasts without preflight validation — agents triggering broadcasts must use the documented pre-broadcast safety check. Over-mailing / accidental segment over-targeting can cost real money and damage list health.
  • MEDIUM rate_limit Broadcast triggers rate-limited to 1 req / 10 s upstream; "429 storms" possible from unthrottled broadcast automation. Agents must respect the rate-limit-aware exit codes.
  • MEDIUM auth Service Account JWT expires and requires manual re-authentication. Region mismatch (US vs EU Customer.io endpoints) causes silent wrong-endpoint failures — agents must verify region config before first call.
  • LOW scope Track API intentionally out of scope for v1 (SA-token-only). Agents needing event-ingest into Customer.io must use a different tool or the Track API directly.

Cost

Type: Usage based · Free tier: The CLI binary is MIT-licensed. Customer.io itself requires a paid Service Account token; no upstream free tier for API access at the SA-token level (Essentials and up).

Hidden costs

  • The CLI is free but every Customer.io API call bills against your Customer.io plan (per-message / per-MAU pricing set by Customer.io, not this skill).
  • Premium features (CDP destinations, Reverse-ETL, sources) return 403 on Essentials accounts — README documents this.

Install

Default

npx -y @mvanhorn/printing-press install customer-io
# Set the Service Account token (mandatory):
export CUSTOMERIO_SA_TOKEN=<your-token>
# Set the region (US default; explicit EU recommended):
export CUSTOMERIO_REGION=us   # or eu

Setup docs →

Estimated time to first success: ~10 min

Dependencies

Minimum runtime: Node.js (npx) or Go 1.26.3+ (source install)

Distribution

Repository
https://github.com/mvanhorn/printing-press-library
License
MIT