Skillshub Customer.io Automation
Automate customer engagement workflows including broadcast triggers, message analytics, segment management, and newsletter tracking through Customer.io via Composio
git clone https://github.com/ComeOnOliver/skillshub
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"
skills/ComposioHQ/awesome-claude-skills/customerio-automation/SKILL.mdCustomer.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
- Connect your Customer.io account through the Composio MCP server at
https://rube.app/mcp - The agent will prompt you with an authentication link if no active connection exists
- Once connected, all
tools become available for executionCUSTOMERIO_*
Core Workflows
1. Trigger a Broadcast
Manually fire a pre-configured broadcast to a specific audience with personalization data.
Tool:
CUSTOMERIO_TRIGGER_BROADCAST
| Parameter | Type | Required | Description |
|---|---|---|---|
| integer | Yes | Broadcast ID from Customer.io Triggering Details |
| array | No | List of customer IDs to target |
| array | No | List of email addresses to target |
| object | No | Complex filter with /// operators |
| array | No | Per-user personalization with / + |
| object | No | Global key-value data for Liquid template personalization |
| string | No | URL to JSON file with per-line user data |
| boolean | No | Allow duplicate recipients (default: false) |
| boolean | No | Skip people without emails (default: false) |
| boolean | No | Skip 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
| Parameter | Type | Required | Description |
|---|---|---|---|
| string | No | Message type: , , , , , |
| string | No | Metric: , , , , , |
| integer | No | Filter by campaign ID |
| integer | No | Filter by newsletter ID |
| integer | No | Filter by action ID |
| integer | No | Start of time window (Unix timestamp) |
| integer | No | End of time window (Unix timestamp) |
| integer | No | Results per page, 1-1000 (default: 50) |
| string | No | Pagination token from previous response value |
| boolean | No | Return 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
| Parameter | Type | Required | Description |
|---|---|---|---|
| integer | No | Max per page, 1-100 |
| string | No | (chronological) or (reverse) |
| string | No | Pagination cursor from previous response 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:
| Parameter | Type | Required | Description |
|---|---|---|---|
| integer | Yes | The broadcast/campaign ID |
Get a specific trigger:
| Parameter | Type | Required | Description |
|---|---|---|---|
| integer | Yes | The campaign/broadcast ID |
| string | Yes | Trigger identifier (e.g., or ) |
Known Pitfalls
| Pitfall | Details |
|---|---|
| Mutually exclusive audience params | requires exactly ONE of , , , , or -- providing multiple causes errors |
| Rate limiting on broadcasts | Broadcasts are limited to 1 trigger request per 10 seconds per broadcast ID |
| Unix timestamp format | and in must be Unix timestamps, not ISO strings |
| Pagination tokens | Messages and newsletters use cursor-based pagination via the parameter -- use the value from previous responses |
| Segment ID resolution | To target a segment in a broadcast, first fetch segment IDs via , then reference by ID in |
Quick Reference
| Tool Slug | Purpose |
|---|---|
| Trigger a broadcast to a defined audience |
| Retrieve message delivery metrics with filters |
| List all audience segments |
| Get details for a specific segment |
| Paginate through newsletters |
| List transactional message templates |
| List all trigger executions for a broadcast |
| Inspect a specific trigger execution |
Powered by Composio