Skillshub Customer.io Automation

Automate customer engagement workflows including broadcast triggers, message analytics, segment management, and newsletter tracking through Customer.io via Composio

install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/ComposioHQ/awesome-claude-skills/customerio-automation" ~/.claude/skills/comeonoliver-skillshub-customer-io-automation && rm -rf "$T"
manifest: skills/ComposioHQ/awesome-claude-skills/customerio-automation/SKILL.md
source content

Customer.io Automation

Automate customer engagement operations -- trigger targeted broadcasts, retrieve delivery metrics, manage audience segments, list newsletters and transactional templates, and inspect trigger execution history -- all orchestrated through the Composio MCP integration.

Toolkit docs: composio.dev/toolkits/customerio


Setup

  1. Connect your Customer.io account through the Composio MCP server at
    https://rube.app/mcp
  2. The agent will prompt you with an authentication link if no active connection exists
  3. Once connected, all
    CUSTOMERIO_*
    tools become available for execution

Core Workflows

1. Trigger a Broadcast

Manually fire a pre-configured broadcast to a specific audience with personalization data.

Tool:

CUSTOMERIO_TRIGGER_BROADCAST

ParameterTypeRequiredDescription
broadcast_id
integerYesBroadcast ID from Customer.io Triggering Details
ids
arrayNoList of customer IDs to target
emails
arrayNoList of email addresses to target
recipients
objectNoComplex filter with
and
/
or
/
not
/
segment
operators
per_user_data
arrayNoPer-user personalization with
id
/
email
+
data
data
objectNoGlobal key-value data for Liquid template personalization
data_file_url
stringNoURL to JSON file with per-line user data
email_add_duplicates
booleanNoAllow duplicate recipients (default: false)
email_ignore_missing
booleanNoSkip people without emails (default: false)
id_ignore_missing
booleanNoSkip people without customer IDs (default: false)

Important: Provide exactly ONE audience option:

recipients
,
ids
,
emails
,
per_user_data
, or
data_file_url
. Rate limit: 1 request per 10 seconds per broadcast.


2. Retrieve Message Delivery Metrics

Fetch paginated delivery metrics for messages with filtering by campaign, type, and time window.

Tool:

CUSTOMERIO_GET_MESSAGES

ParameterTypeRequiredDescription
type
stringNoMessage type:
email
,
webhook
,
twilio
,
slack
,
push
,
in_app
metric
stringNoMetric:
attempted
,
sent
,
delivered
,
opened
,
clicked
,
converted
campaign_id
integerNoFilter by campaign ID
newsletter_id
integerNoFilter by newsletter ID
action_id
integerNoFilter by action ID
start_ts
integerNoStart of time window (Unix timestamp)
end_ts
integerNoEnd of time window (Unix timestamp)
limit
integerNoResults per page, 1-1000 (default: 50)
start
stringNoPagination token from previous response
next
value
drafts
booleanNoReturn draft messages instead of active/sent

3. List Audience Segments

Retrieve all segments defined in your workspace for audience analysis and broadcast targeting.

Tool:

CUSTOMERIO_GET_SEGMENTS

No parameters required -- returns all segments with IDs and metadata.

Use segment IDs when targeting broadcasts via the

recipients.segment.id
filter.


4. List Newsletters

Paginate through all newsletter metadata for tracking and analysis.

Tool:

CUSTOMERIO_LIST_NEWSLETTERS

ParameterTypeRequiredDescription
limit
integerNoMax per page, 1-100
sort
stringNo
asc
(chronological) or
desc
(reverse)
start
stringNoPagination cursor from previous response
next
value

5. Discover Transactional Message Templates

List all transactional message templates to find IDs for sending via the API.

Tool:

CUSTOMERIO_LIST_TRANSACTIONAL_MESSAGES

No parameters required -- returns template IDs and trigger names.

6. Inspect Broadcast Trigger History

Review all trigger executions for a broadcast and inspect individual trigger details.

Tools:

CUSTOMERIO_GET_TRIGGERS
and
CUSTOMERIO_GET_TRIGGER

List all triggers for a broadcast:

ParameterTypeRequiredDescription
broadcast_id
integerYesThe broadcast/campaign ID

Get a specific trigger:

ParameterTypeRequiredDescription
broadcast_id
integerYesThe campaign/broadcast ID
trigger_id
stringYesTrigger identifier (e.g.,
456
or
5-37
)

Known Pitfalls

PitfallDetails
Mutually exclusive audience params
CUSTOMERIO_TRIGGER_BROADCAST
requires exactly ONE of
recipients
,
ids
,
emails
,
per_user_data
, or
data_file_url
-- providing multiple causes errors
Rate limiting on broadcastsBroadcasts are limited to 1 trigger request per 10 seconds per broadcast ID
Unix timestamp format
start_ts
and
end_ts
in
CUSTOMERIO_GET_MESSAGES
must be Unix timestamps, not ISO strings
Pagination tokensMessages and newsletters use cursor-based pagination via the
start
parameter -- use the
next
value from previous responses
Segment ID resolutionTo target a segment in a broadcast, first fetch segment IDs via
CUSTOMERIO_GET_SEGMENTS
, then reference by ID in
recipients.segment.id

Quick Reference

Tool SlugPurpose
CUSTOMERIO_TRIGGER_BROADCAST
Trigger a broadcast to a defined audience
CUSTOMERIO_GET_MESSAGES
Retrieve message delivery metrics with filters
CUSTOMERIO_GET_SEGMENTS
List all audience segments
CUSTOMERIO_GET_SEGMENT_DETAILS
Get details for a specific segment
CUSTOMERIO_LIST_NEWSLETTERS
Paginate through newsletters
CUSTOMERIO_LIST_TRANSACTIONAL_MESSAGES
List transactional message templates
CUSTOMERIO_GET_TRIGGERS
List all trigger executions for a broadcast
CUSTOMERIO_GET_TRIGGER
Inspect a specific trigger execution

Powered by Composio