[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FQPAPX2NEQ9249146XVG1K":3,"skill-same:01M6FQPAPX2NEQ9249146XVG1K":70},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":40,"linkOnly":41,"markdownContent":42,"markdownBody":43,"frontMatter":44,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":14,"repositoryHtmlUrl":51,"repositoryHomepageUrl":6,"ownerHtmlUrl":52,"ownerBlogUrl":53,"ownerDescription":54,"updatedAt":55,"install":56,"resources":69},"01M6FQPAPX2NEQ9249146XVG1K","Customer.io Automation",null,"Automate customer engagement workflows including broadcast triggers, message analytics, segment management, and newsletter tracking through Customer.io via Composio","reikiplanet\u002Fdaoskills","reikiplanet","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F96377599?v=4","01M6CVWCMD740YHQDK7E9QYBW4","Reiki Planet","01M6CVWCS4KXVA2CWFVJ43EAXK",0,"MIT","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fautomation\u002Fcomposio-customerio-automation\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"customer","automation","Customer io Automation","io","workflows","analytics","automate","tracking","management","engagement","newsletter","composio","message","triggers","via","segment","2026-11-10 10:12:30",false,"---\nname: Customer.io Automation\ndescription: \"Automate customer engagement workflows including broadcast triggers, message analytics, segment management, and newsletter tracking through Customer.io via Composio\"\nrequires:\n  mcp:\n    - rube\n---\n\n# Customer.io Automation\n\nAutomate 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.\n\n**Toolkit docs:** [composio.dev\u002Ftoolkits\u002Fcustomerio](https:\u002F\u002Fcomposio.dev\u002Ftoolkits\u002Fcustomerio)\n\n---\n\n## Setup\n\n1. Connect your Customer.io account through the Composio MCP server at `https:\u002F\u002Frube.app\u002Fmcp`\n2. The agent will prompt you with an authentication link if no active connection exists\n3. Once connected, all `CUSTOMERIO_*` tools become available for execution\n\n---\n\n## Core Workflows\n\n### 1. Trigger a Broadcast\nManually fire a pre-configured broadcast to a specific audience with personalization data.\n\n**Tool:** `CUSTOMERIO_TRIGGER_BROADCAST`\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `broadcast_id` | integer | Yes | Broadcast ID from Customer.io Triggering Details |\n| `ids` | array | No | List of customer IDs to target |\n| `emails` | array | No | List of email addresses to target |\n| `recipients` | object | No | Complex filter with `and`\u002F`or`\u002F`not`\u002F`segment` operators |\n| `per_user_data` | array | No | Per-user personalization with `id`\u002F`email` + `data` |\n| `data` | object | No | Global key-value data for Liquid template personalization |\n| `data_file_url` | string | No | URL to JSON file with per-line user data |\n| `email_add_duplicates` | boolean | No | Allow duplicate recipients (default: false) |\n| `email_ignore_missing` | boolean | No | Skip people without emails (default: false) |\n| `id_ignore_missing` | boolean | No | Skip people without customer IDs (default: false) |\n\n**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.\n\n---\n\n### 2. Retrieve Message Delivery Metrics\nFetch paginated delivery metrics for messages with filtering by campaign, type, and time window.\n\n**Tool:** `CUSTOMERIO_GET_MESSAGES`\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `type` | string | No | Message type: `email`, `webhook`, `twilio`, `slack`, `push`, `in_app` |\n| `metric` | string | No | Metric: `attempted`, `sent`, `delivered`, `opened`, `clicked`, `converted` |\n| `campaign_id` | integer | No | Filter by campaign ID |\n| `newsletter_id` | integer | No | Filter by newsletter ID |\n| `action_id` | integer | No | Filter by action ID |\n| `start_ts` | integer | No | Start of time window (Unix timestamp) |\n| `end_ts` | integer | No | End of time window (Unix timestamp) |\n| `limit` | integer | No | Results per page, 1-1000 (default: 50) |\n| `start` | string | No | Pagination token from previous response `next` value |\n| `drafts` | boolean | No | Return draft messages instead of active\u002Fsent |\n\n---\n\n### 3. List Audience Segments\nRetrieve all segments defined in your workspace for audience analysis and broadcast targeting.\n\n**Tool:** `CUSTOMERIO_GET_SEGMENTS`\n\n```\nNo parameters required -- returns all segments with IDs and metadata.\n```\n\nUse segment IDs when targeting broadcasts via the `recipients.segment.id` filter.\n\n---\n\n### 4. List Newsletters\nPaginate through all newsletter metadata for tracking and analysis.\n\n**Tool:** `CUSTOMERIO_LIST_NEWSLETTERS`\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `limit` | integer | No | Max per page, 1-100 |\n| `sort` | string | No | `asc` (chronological) or `desc` (reverse) |\n| `start` | string | No | Pagination cursor from previous response `next` value |\n\n---\n\n### 5. Discover Transactional Message Templates\nList all transactional message templates to find IDs for sending via the API.\n\n**Tool:** `CUSTOMERIO_LIST_TRANSACTIONAL_MESSAGES`\n\n```\nNo parameters required -- returns template IDs and trigger names.\n```\n\n---\n\n### 6. Inspect Broadcast Trigger History\nReview all trigger executions for a broadcast and inspect individual trigger details.\n\n**Tools:** `CUSTOMERIO_GET_TRIGGERS` and `CUSTOMERIO_GET_TRIGGER`\n\n**List all triggers for a broadcast:**\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `broadcast_id` | integer | Yes | The broadcast\u002Fcampaign ID |\n\n**Get a specific trigger:**\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `broadcast_id` | integer | Yes | The campaign\u002Fbroadcast ID |\n| `trigger_id` | string | Yes | Trigger identifier (e.g., `456` or `5-37`) |\n\n---\n\n## Known Pitfalls\n\n| Pitfall | Details |\n|---------|---------|\n| **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 |\n| **Rate limiting on broadcasts** | Broadcasts are limited to 1 trigger request per 10 seconds per broadcast ID |\n| **Unix timestamp format** | `start_ts` and `end_ts` in `CUSTOMERIO_GET_MESSAGES` must be Unix timestamps, not ISO strings |\n| **Pagination tokens** | Messages and newsletters use cursor-based pagination via the `start` parameter -- use the `next` value from previous responses |\n| **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` |\n\n---\n\n## Quick Reference\n\n| Tool Slug | Purpose |\n|-----------|---------|\n| `CUSTOMERIO_TRIGGER_BROADCAST` | Trigger a broadcast to a defined audience |\n| `CUSTOMERIO_GET_MESSAGES` | Retrieve message delivery metrics with filters |\n| `CUSTOMERIO_GET_SEGMENTS` | List all audience segments |\n| `CUSTOMERIO_GET_SEGMENT_DETAILS` | Get details for a specific segment |\n| `CUSTOMERIO_LIST_NEWSLETTERS` | Paginate through newsletters |\n| `CUSTOMERIO_LIST_TRANSACTIONAL_MESSAGES` | List transactional message templates |\n| `CUSTOMERIO_GET_TRIGGERS` | List all trigger executions for a broadcast |\n| `CUSTOMERIO_GET_TRIGGER` | Inspect a specific trigger execution |\n\n---\n\n*Powered by [Composio](https:\u002F\u002Fcomposio.dev)*\n","# Customer.io Automation\n\nAutomate 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.\n\n**Toolkit docs:** [composio.dev\u002Ftoolkits\u002Fcustomerio](https:\u002F\u002Fcomposio.dev\u002Ftoolkits\u002Fcustomerio)\n\n---\n\n## Setup\n\n1. Connect your Customer.io account through the Composio MCP server at `https:\u002F\u002Frube.app\u002Fmcp`\n2. The agent will prompt you with an authentication link if no active connection exists\n3. Once connected, all `CUSTOMERIO_*` tools become available for execution\n\n---\n\n## Core Workflows\n\n### 1. Trigger a Broadcast\nManually fire a pre-configured broadcast to a specific audience with personalization data.\n\n**Tool:** `CUSTOMERIO_TRIGGER_BROADCAST`\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `broadcast_id` | integer | Yes | Broadcast ID from Customer.io Triggering Details |\n| `ids` | array | No | List of customer IDs to target |\n| `emails` | array | No | List of email addresses to target |\n| `recipients` | object | No | Complex filter with `and`\u002F`or`\u002F`not`\u002F`segment` operators |\n| `per_user_data` | array | No | Per-user personalization with `id`\u002F`email` + `data` |\n| `data` | object | No | Global key-value data for Liquid template personalization |\n| `data_file_url` | string | No | URL to JSON file with per-line user data |\n| `email_add_duplicates` | boolean | No | Allow duplicate recipients (default: false) |\n| `email_ignore_missing` | boolean | No | Skip people without emails (default: false) |\n| `id_ignore_missing` | boolean | No | Skip people without customer IDs (default: false) |\n\n**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.\n\n---\n\n### 2. Retrieve Message Delivery Metrics\nFetch paginated delivery metrics for messages with filtering by campaign, type, and time window.\n\n**Tool:** `CUSTOMERIO_GET_MESSAGES`\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `type` | string | No | Message type: `email`, `webhook`, `twilio`, `slack`, `push`, `in_app` |\n| `metric` | string | No | Metric: `attempted`, `sent`, `delivered`, `opened`, `clicked`, `converted` |\n| `campaign_id` | integer | No | Filter by campaign ID |\n| `newsletter_id` | integer | No | Filter by newsletter ID |\n| `action_id` | integer | No | Filter by action ID |\n| `start_ts` | integer | No | Start of time window (Unix timestamp) |\n| `end_ts` | integer | No | End of time window (Unix timestamp) |\n| `limit` | integer | No | Results per page, 1-1000 (default: 50) |\n| `start` | string | No | Pagination token from previous response `next` value |\n| `drafts` | boolean | No | Return draft messages instead of active\u002Fsent |\n\n---\n\n### 3. List Audience Segments\nRetrieve all segments defined in your workspace for audience analysis and broadcast targeting.\n\n**Tool:** `CUSTOMERIO_GET_SEGMENTS`\n\n```\nNo parameters required -- returns all segments with IDs and metadata.\n```\n\nUse segment IDs when targeting broadcasts via the `recipients.segment.id` filter.\n\n---\n\n### 4. List Newsletters\nPaginate through all newsletter metadata for tracking and analysis.\n\n**Tool:** `CUSTOMERIO_LIST_NEWSLETTERS`\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `limit` | integer | No | Max per page, 1-100 |\n| `sort` | string | No | `asc` (chronological) or `desc` (reverse) |\n| `start` | string | No | Pagination cursor from previous response `next` value |\n\n---\n\n### 5. Discover Transactional Message Templates\nList all transactional message templates to find IDs for sending via the API.\n\n**Tool:** `CUSTOMERIO_LIST_TRANSACTIONAL_MESSAGES`\n\n```\nNo parameters required -- returns template IDs and trigger names.\n```\n\n---\n\n### 6. Inspect Broadcast Trigger History\nReview all trigger executions for a broadcast and inspect individual trigger details.\n\n**Tools:** `CUSTOMERIO_GET_TRIGGERS` and `CUSTOMERIO_GET_TRIGGER`\n\n**List all triggers for a broadcast:**\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `broadcast_id` | integer | Yes | The broadcast\u002Fcampaign ID |\n\n**Get a specific trigger:**\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `broadcast_id` | integer | Yes | The campaign\u002Fbroadcast ID |\n| `trigger_id` | string | Yes | Trigger identifier (e.g., `456` or `5-37`) |\n\n---\n\n## Known Pitfalls\n\n| Pitfall | Details |\n|---------|---------|\n| **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 |\n| **Rate limiting on broadcasts** | Broadcasts are limited to 1 trigger request per 10 seconds per broadcast ID |\n| **Unix timestamp format** | `start_ts` and `end_ts` in `CUSTOMERIO_GET_MESSAGES` must be Unix timestamps, not ISO strings |\n| **Pagination tokens** | Messages and newsletters use cursor-based pagination via the `start` parameter -- use the `next` value from previous responses |\n| **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` |\n\n---\n\n## Quick Reference\n\n| Tool Slug | Purpose |\n|-----------|---------|\n| `CUSTOMERIO_TRIGGER_BROADCAST` | Trigger a broadcast to a defined audience |\n| `CUSTOMERIO_GET_MESSAGES` | Retrieve message delivery metrics with filters |\n| `CUSTOMERIO_GET_SEGMENTS` | List all audience segments |\n| `CUSTOMERIO_GET_SEGMENT_DETAILS` | Get details for a specific segment |\n| `CUSTOMERIO_LIST_NEWSLETTERS` | Paginate through newsletters |\n| `CUSTOMERIO_LIST_TRANSACTIONAL_MESSAGES` | List transactional message templates |\n| `CUSTOMERIO_GET_TRIGGERS` | List all trigger executions for a broadcast |\n| `CUSTOMERIO_GET_TRIGGER` | Inspect a specific trigger execution |\n\n---\n\n*Powered by [Composio](https:\u002F\u002Fcomposio.dev)*\n",{"name":5,"requires":45,"description":7},{"mcp":46},[47],"rube","master","dff58085da947e81e8418c922055644bf0082b1b","automation\u002Fcomposio-customerio-automation","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills","https:\u002F\u002Fgithub.com\u002Freikiplanet","https:\u002F\u002Fwww.reiki-planet.com","Reiki Planet Game","2026-03-29 06:02:29",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add reikiplanet\u002Fdaoskills --skill \"Customer.io Automation\"",{"tool":62,"command":63},"bunx","bunx skills add reikiplanet\u002Fdaoskills --skill \"Customer.io Automation\"",{"tool":65,"command":66},"pnpm","pnpm dlx skills add reikiplanet\u002Fdaoskills --skill \"Customer.io Automation\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fautomation\u002Fcomposio-customerio-automation\u002FSKILL.md",true,[],[71,98,110,125,145,168],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":40},"01M6G614JTEQJHPT8AKK3YQ18S","web-games","Web browser game development principles. Framework selection, WebGPU, optimization, PWA.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fweb-games\u002FSKILL.md",[],[78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97],"games","web games","web","grep","principles","selection","community","framework selection","edit","write","read","pwa","game","web browser","game development","Optimization","framework","browser","development","webgpu",{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":104,"publishedAt":40},"01M6G611H2YGV0GZFP90D38ZMJ","vr-ar","VR\u002FAR development principles. Comfort, interaction, performance requirements.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fvr-ar\u002FSKILL.md",[],[105,106,96,107,108,84,86,87,88,81,109,82],"ar","vr ar","interaction","requirements","performance",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":116,"publishedAt":40},"01M6G60XNMHAMV1SV0EJ1CX0AY","templates","Project scaffolding templates for new applications. Use when creating new projects from scratch. Contains 12 templates for various tech stacks.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Ftemplates\u002FSKILL.md",[],[112,117,118,119,120,121,84,122,88,123,124,81],"project scaffolding","From Scratch","tech","project","scaffolding","use","projects","applications",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":131,"publishedAt":40},"01M6G60T0GATMK3Q5H8GDC1Z8S","wcag-audit-patterns","Conduct WCAG 2.2 accessibility audits with automated testing, manual verification, and remediation guidance. Use when auditing websites for accessibility, fixing WCAG violations, or implementing ac...","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fwcag-audit-patterns\u002FSKILL.md",[],[132,133,134,135,136,84,137,138,139,140,122,141,142,143,144],"wcag audit patterns","wcag audit","patterns","WCAG","audit","manual","with","automated testing","guidance","remediation","verification","accessibility","testing",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":151,"publishedAt":40},"01M6G60PMCHW1FRZ63F931QK3R","vulnerability-scanner","Advanced vulnerability analysis principles. OWASP 2025, Supply Chain Security, attack surface mapping, risk prioritization.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fvulnerability-scanner\u002FSKILL.md",[],[152,153,154,155,156,157,158,159,84,88,81,160,82,161,162,163,164,165,166,167],"scanner","vulnerability scanner","vulnerability","prioritization","2025","mapping","chain","supply chain","Bash","analysis","risk","owasp","supply chain security","security","supply","advanced",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":172,"categories":173,"keywords":174,"publishedAt":40},"01M6G60JZBB8DK0W3DSG1WNMZK","threat-modeling-expert","Expert in threat modeling methodologies, security architecture review, and risk assessment. Masters STRIDE, PASTA, attack trees, and security requirement extraction. Use for security architecture r...","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fthreat-modeling-expert\u002FSKILL.md",[],[175,176,177,178,179,180,181,182,165,122,183,184,185,84,186,187,188,162,189,190],"modeling","threat modeling expert","threat modeling","expert","threat","risk assessment","architecture review","architecture","security architecture review","trees","security architecture","security requirement extraction","assessment","extraction","review","stride"]