Customer.io Automation
Automate customer engagement workflows including broadcast triggers, message analytics, segment management, and newsletter tracking through Customer.io via Composio
Best use case
Customer.io Automation is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Automate customer engagement workflows including broadcast triggers, message analytics, segment management, and newsletter tracking through Customer.io via Composio
Teams using Customer.io Automation should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/customerio-automation/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How Customer.io Automation Compares
| Feature / Agent | Customer.io Automation | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Automate customer engagement workflows including broadcast triggers, message analytics, segment management, and newsletter tracking through Customer.io via Composio
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 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](https://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` | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `broadcast_id` | integer | Yes | Broadcast ID from Customer.io Triggering Details | | `ids` | array | No | List of customer IDs to target | | `emails` | array | No | List of email addresses to target | | `recipients` | object | No | Complex filter with `and`/`or`/`not`/`segment` operators | | `per_user_data` | array | No | Per-user personalization with `id`/`email` + `data` | | `data` | object | No | Global key-value data for Liquid template personalization | | `data_file_url` | string | No | URL to JSON file with per-line user data | | `email_add_duplicates` | boolean | No | Allow duplicate recipients (default: false) | | `email_ignore_missing` | boolean | No | Skip people without emails (default: false) | | `id_ignore_missing` | 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 | |-----------|------|----------|-------------| | `type` | string | No | Message type: `email`, `webhook`, `twilio`, `slack`, `push`, `in_app` | | `metric` | string | No | Metric: `attempted`, `sent`, `delivered`, `opened`, `clicked`, `converted` | | `campaign_id` | integer | No | Filter by campaign ID | | `newsletter_id` | integer | No | Filter by newsletter ID | | `action_id` | integer | No | Filter by action ID | | `start_ts` | integer | No | Start of time window (Unix timestamp) | | `end_ts` | integer | No | End of time window (Unix timestamp) | | `limit` | integer | No | Results per page, 1-1000 (default: 50) | | `start` | string | No | Pagination token from previous response `next` value | | `drafts` | 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 | |-----------|------|----------|-------------| | `limit` | integer | No | Max per page, 1-100 | | `sort` | string | No | `asc` (chronological) or `desc` (reverse) | | `start` | string | No | Pagination 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:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `broadcast_id` | integer | Yes | The broadcast/campaign ID | **Get a specific trigger:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `broadcast_id` | integer | Yes | The campaign/broadcast ID | | `trigger_id` | string | Yes | Trigger identifier (e.g., `456` or `5-37`) | --- ## Known Pitfalls | Pitfall | Details | |---------|---------| | **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 broadcasts** | Broadcasts 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 tokens** | Messages and newsletters use cursor-based pagination via the `start` parameter -- use the `next` value from previous responses | | **Segment ID resolution** | To 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 Slug | Purpose | |-----------|---------| | `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](https://composio.dev)*
Related Skills
serpapi-automation
Automate Serpapi tasks via Rube MCP (Composio). Always search tools first for current schemas.
scrapingbee-automation
Automate Scrapingbee tasks via Rube MCP (Composio). Always search tools first for current schemas.
scrapingant-automation
Automate Scrapingant tasks via Rube MCP (Composio). Always search tools first for current schemas.
pdf-api-io-automation
Automate PDF API IO tasks via Rube MCP (Composio). Always search tools first for current schemas.
openweather-api-automation
Automate Openweather API tasks via Rube MCP (Composio). Always search tools first for current schemas.
onesignal-rest-api-automation
Automate OneSignal tasks via Rube MCP (Composio): push notifications, segments, templates, and messaging. Always search tools first for current schemas.
news-api-automation
Automate News API tasks via Rube MCP (Composio). Always search tools first for current schemas.
nango-automation
Automate Nango tasks via Rube MCP (Composio). Always search tools first for current schemas.
logo-dev-automation
Automate Logo Dev tasks via Rube MCP (Composio). Always search tools first for current schemas.
hashnode-automation
Automate Hashnode tasks via Rube MCP (Composio). Always search tools first for current schemas.
genderapi-io-automation
Automate Genderapi IO tasks via Rube MCP (Composio). Always search tools first for current schemas.
gender-api-automation
Automate Gender API tasks via Rube MCP (Composio). Always search tools first for current schemas.