← Back to all apps

Customer.io

by Peaberry Software, LLC dba Customer.io
Launched Jun 8, 2026 on ChatGPTLaunched Feb 28, 2026 on Claude

Connect Claude to your Customer.io workspace with full read, write, and delete access — granted independently, per workspace, via OAuth.

What Claude can do today: • Build and edit automations (campaigns), broadcasts, and newsletters • Create segments from plain-English audience definitions • Inspect and update customer profiles and attributes • Draft, QA, and publish emails in Design Studio • Analyze deliveries, opens, clicks, and conversions; diagnose deliverability • Manage CDP Data Pipelines: sources, destinations, and reverse ETL • Guide SDK setup and app integration end to end

The connector exposes Customer.io's Journeys UI API and Data Pipelines API through verb-scoped tools — cio_read_api (GET), cio_write_api (POST/PUT/PATCH), and cio_delete_api (DELETE) — so reads, writes, and deletes are approved separately. Built-in schema introspection (cio_schema) and server-maintained skills (cio_skills_list / cio_skills_read) give Claude authoritative, always-current guidance for complex workflows like automation wiring, segment conditions, and email design patterns, scoped to your account's plan.

Safety is built in: every write and delete supports a dry-run preview before execution, and credentials never pass through Claude — authentication is OAuth, with workspaces and permission scopes selected at connect time.

Try: "Analyze last month's welcome automation performance." "Build a segment of users inactive for 90 days." "Draft a re-engagement email and QA it." "Why did deliveries drop this week?"

8ChatGPT Tools
8Claude Tools
Peaberry Software, LLC dba Customer.ioDeveloper

Use Cases

sales-and-marketingdata-analyticscommunication

Available Tools

Check authentication

cio_auth_status
Full Description

Show the active authentication state. Reports the authenticated user and account, the workspaces the current OAuth token is allowed to access, and whether an agent service-account JWT can be minted. Use this to diagnose auth errors.

Delete from API

cio_delete_api
Full Description

Delete a resource via the Customer.io API (DELETE only). Always run with dry_run first to preview. Use cio_schema to find the correct path.

Parameters (1 required, 3 optional)
Required
pathstring

API path including placeholders, e.g. '/v1/environments/{environment_id}/campaigns/{campaign_id}'. Placeholders are substituted from params.

Optional
dry_runboolean

Validate and return the request without executing it.

jqstring

gojq expression to filter the response before returning.

paramsobject

Parameters as a nested JSON object (pass the object directly; do not JSON-encode it as a string). Keys matching path placeholders are substituted; remaining keys become the query string.

Get agent instructions

cio_prime
Full Description

Print LLM-ready instructions for using the Customer.io API. ALWAYS call this first in a new task — it contains the authoritative, version-specific rules for how to drive the API via the other cio_* tools.

Read from API

cio_read_api
Full Description

Read from the Customer.io API (GET only). Use cio_schema first to find the correct path and placeholders. Workspace routing is enforced server-side via the caller's OAuth token.

Parameters (1 required, 6 optional)
Required
pathstring

API path including placeholders, e.g. '/v1/environments/{environment_id}/campaigns'. Placeholders are substituted from params.

Optional
dry_runboolean

Validate and return the request without executing it.

jqstring

gojq expression to filter the response before returning. Use to trim large responses.

limitnumber

Page size.

pagenumber

Page number (1-indexed).

page_allboolean

Auto-paginate and return NDJSON for the full dataset.

paramsobject

Parameters as a nested JSON object (pass the object directly; do not JSON-encode it as a string). Keys matching path placeholders are substituted; remaining keys become the query string.

Browse API schema

cio_schema
Full Description

Introspect the Customer.io API schema. Use this to discover endpoints before calling cio_read_api / cio_write_api / cio_delete_api — never guess paths or field names. Pass no query to list resources; pass a resource name ('campaigns') to list its endpoints; pass 'resource.method' ('campaigns.list'), 'METHOD /path', or '/path' for endpoint detail.

Parameters (0 required, 2 optional)
Optional
querystring

One of: '' (list resources), 'campaigns' (resource), 'campaigns.list' (resource.method), 'GET /v1/...' (method + path), or '/v1/...' (all methods for a path).

refreshboolean

Force re-download of API specs.

List available skills

cio_skills_list
Full Description

List available agent skills — task-specific instruction manuals maintained by Customer.io (routing rules, required params, multi-step workflows).

Parameters (0 required, 1 optional)
Optional
refreshboolean

Force re-download of skills.

Read a skill

cio_skills_read
Full Description

Read the full content of a specific agent skill. Paths look like 'campaigns' for the main skill or 'campaigns/examples.md' for a sub-file — see cio_skills_list for available paths.

Parameters (1 required)
Required
pathstring

Skill path, e.g. 'campaigns' or 'campaigns/examples'. See cio_skills_list for available paths.

Write to API

cio_write_api
Full Description

Write to the Customer.io API (POST, PUT, or PATCH). Always run with dry_run first to preview. Use cio_schema to find the correct path, method, and body shape.

Parameters (1 required, 5 optional)
Required
pathstring

API path including placeholders, e.g. '/v1/environments/{environment_id}/campaigns'. Placeholders are substituted from params.

Optional
bodyobject

JSON request body as a nested object (pass the object directly; do not JSON-encode it as a string).

dry_runboolean

Validate and return the request without executing it.

jqstring

gojq expression to filter the response before returning.

methodstring

HTTP method: POST, PUT, or PATCH. Defaults to POST.

paramsobject

Parameters as a nested JSON object (pass the object directly; do not JSON-encode it as a string). Keys matching path placeholders are substituted; remaining keys become the query string.