[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FRMPCSSM06X102F8DN6K0B":3,"skill-same:01M6FRMPCSSM06X102F8DN6K0B":66},{"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":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":14,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":49,"ownerDescription":50,"updatedAt":51,"install":52,"resources":65},"01M6FRMPCSSM06X102F8DN6K0B","Omnisend Automation",null,"Automate ecommerce marketing workflows including contact management, bulk operations, and subscriber segmentation through Omnisend 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-omnisend-automation\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,5,25,26,27,28,29,30,31,32,33,34,35],"automation","workflows","segmentation","marketing","automate","management","operations","ecommerce","composio","bulk operations","via","bulk","2026-11-10 10:12:30",false,"---\nname: Omnisend Automation\ndescription: \"Automate ecommerce marketing workflows including contact management, bulk operations, and subscriber segmentation through Omnisend via Composio\"\nrequires:\n  mcp:\n    - rube\n---\n\n# Omnisend Automation\n\nAutomate ecommerce marketing operations -- create and update contacts, manage subscriber lists with cursor pagination, run bulk batch operations, and segment audiences -- all orchestrated through the Composio MCP integration.\n\n**Toolkit docs:** [composio.dev\u002Ftoolkits\u002Fomnisend](https:\u002F\u002Fcomposio.dev\u002Ftoolkits\u002Fomnisend)\n\n---\n\n## Setup\n\n1. Connect your Omnisend 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 `OMNISEND_*` tools become available for execution\n\n---\n\n## Core Workflows\n\n### 1. Create or Update a Contact\nUpsert a contact by email identifier with subscription status, profile fields, and optional welcome message.\n\n**Tool:** `OMNISEND_CREATE_OR_UPDATE_CONTACT`\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `identifiers` | array | Yes | At least one identifier object with `id` (email), `type` (`email`), optional `channels.email.status` (`subscribed`, `nonSubscribed`, `unsubscribed`), and `sendWelcomeMessage` (boolean) |\n| `firstName` | string | No | Contact's first name |\n| `lastName` | string | No | Contact's last name |\n| `gender` | string | No | `m` or `f` |\n| `birthdate` | string | No | Format: `YYYY-MM-DD` |\n| `country` | string | No | Full country name |\n| `countryCode` | string | No | ISO 3166-1 alpha-2 code (e.g., `US`) |\n| `city` | string | No | City name |\n| `address` | string | No | Street address |\n| `postalCode` | string | No | ZIP\u002Fpostal code |\n\n---\n\n### 2. List Contacts with Pagination\nRetrieve contacts in batches with optional filters for email, phone, status, segment, or tag.\n\n**Tool:** `OMNISEND_LIST_CONTACTS`\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `limit` | integer | No | Results per page (default: 100, max: 250) |\n| `after` | string | No | Cursor for next page (base64-encoded ContactID) |\n| `before` | string | No | Cursor for previous page |\n| `email` | string | No | Filter by exact email address |\n| `phone` | string | No | Filter by full phone number with country code |\n| `status` | string | No | Filter by: `subscribed`, `nonSubscribed`, `unsubscribed` |\n| `segmentID` | integer | No | Filter by segment ID |\n| `tag` | string | No | Filter by tag (e.g., `VIP`) |\n\n---\n\n### 3. Get Contact Details\nRetrieve the full profile for a single contact when you already have their contact ID.\n\n**Tool:** `OMNISEND_GET_CONTACT`\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `contactId` | string | Yes | Unique contact identifier (e.g., `60e7412b1234567890abcdef`) |\n\n---\n\n### 4. Update an Existing Contact\nPatch specific fields on a contact by ID without overwriting the entire record.\n\n**Tool:** `OMNISEND_UPDATE_CONTACT`\n\nRequires the `contactId` and the fields to update. Retrieve the contact ID first via `OMNISEND_LIST_CONTACTS` or `OMNISEND_GET_CONTACT`.\n\n---\n\n### 5. Bulk Batch Operations\nProcess many records asynchronously in a single call -- contacts, products, orders, events, or categories.\n\n**Tool:** `OMNISEND_CREATE_BATCH`\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `method` | string | Yes | `POST` or `PUT` |\n| `endpoint` | string | Yes | Target: `contacts`, `orders`, `products`, `events`, `categories` |\n| `items` | array | Yes | Array of payload objects for each operation |\n| `eventID` | string | Conditional | Required when endpoint is `events` |\n\nUse batch operations to avoid rate limits when processing large data sets.\n\n---\n\n## Known Pitfalls\n\n| Pitfall | Details |\n|---------|---------|\n| **Identifier required** | `OMNISEND_CREATE_OR_UPDATE_CONTACT` requires at least one identifier in the `identifiers` array -- only `email` type is supported |\n| **Cursor-based pagination** | `OMNISEND_LIST_CONTACTS` uses base64-encoded `after`\u002F`before` cursors, not page numbers -- follow cursors to avoid incomplete data |\n| **Contact ID resolution** | `OMNISEND_UPDATE_CONTACT` requires a `contactId` -- always resolve it first via list or get operations |\n| **Batch method constraints** | `OMNISEND_CREATE_BATCH` only accepts `POST` or `PUT` methods -- no `DELETE` or `PATCH` |\n| **Event ID dependency** | When batching events, the `eventID` parameter is mandatory -- omitting it causes the batch to fail |\n\n---\n\n## Quick Reference\n\n| Tool Slug | Purpose |\n|-----------|---------|\n| `OMNISEND_CREATE_OR_UPDATE_CONTACT` | Create or upsert a contact by email |\n| `OMNISEND_LIST_CONTACTS` | List contacts with filtering and cursor pagination |\n| `OMNISEND_GET_CONTACT` | Get full profile for a single contact by ID |\n| `OMNISEND_UPDATE_CONTACT` | Patch specific fields on an existing contact |\n| `OMNISEND_CREATE_BATCH` | Bulk async operations for contacts, products, orders, events |\n\n---\n\n*Powered by [Composio](https:\u002F\u002Fcomposio.dev)*\n","# Omnisend Automation\n\nAutomate ecommerce marketing operations -- create and update contacts, manage subscriber lists with cursor pagination, run bulk batch operations, and segment audiences -- all orchestrated through the Composio MCP integration.\n\n**Toolkit docs:** [composio.dev\u002Ftoolkits\u002Fomnisend](https:\u002F\u002Fcomposio.dev\u002Ftoolkits\u002Fomnisend)\n\n---\n\n## Setup\n\n1. Connect your Omnisend 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 `OMNISEND_*` tools become available for execution\n\n---\n\n## Core Workflows\n\n### 1. Create or Update a Contact\nUpsert a contact by email identifier with subscription status, profile fields, and optional welcome message.\n\n**Tool:** `OMNISEND_CREATE_OR_UPDATE_CONTACT`\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `identifiers` | array | Yes | At least one identifier object with `id` (email), `type` (`email`), optional `channels.email.status` (`subscribed`, `nonSubscribed`, `unsubscribed`), and `sendWelcomeMessage` (boolean) |\n| `firstName` | string | No | Contact's first name |\n| `lastName` | string | No | Contact's last name |\n| `gender` | string | No | `m` or `f` |\n| `birthdate` | string | No | Format: `YYYY-MM-DD` |\n| `country` | string | No | Full country name |\n| `countryCode` | string | No | ISO 3166-1 alpha-2 code (e.g., `US`) |\n| `city` | string | No | City name |\n| `address` | string | No | Street address |\n| `postalCode` | string | No | ZIP\u002Fpostal code |\n\n---\n\n### 2. List Contacts with Pagination\nRetrieve contacts in batches with optional filters for email, phone, status, segment, or tag.\n\n**Tool:** `OMNISEND_LIST_CONTACTS`\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `limit` | integer | No | Results per page (default: 100, max: 250) |\n| `after` | string | No | Cursor for next page (base64-encoded ContactID) |\n| `before` | string | No | Cursor for previous page |\n| `email` | string | No | Filter by exact email address |\n| `phone` | string | No | Filter by full phone number with country code |\n| `status` | string | No | Filter by: `subscribed`, `nonSubscribed`, `unsubscribed` |\n| `segmentID` | integer | No | Filter by segment ID |\n| `tag` | string | No | Filter by tag (e.g., `VIP`) |\n\n---\n\n### 3. Get Contact Details\nRetrieve the full profile for a single contact when you already have their contact ID.\n\n**Tool:** `OMNISEND_GET_CONTACT`\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `contactId` | string | Yes | Unique contact identifier (e.g., `60e7412b1234567890abcdef`) |\n\n---\n\n### 4. Update an Existing Contact\nPatch specific fields on a contact by ID without overwriting the entire record.\n\n**Tool:** `OMNISEND_UPDATE_CONTACT`\n\nRequires the `contactId` and the fields to update. Retrieve the contact ID first via `OMNISEND_LIST_CONTACTS` or `OMNISEND_GET_CONTACT`.\n\n---\n\n### 5. Bulk Batch Operations\nProcess many records asynchronously in a single call -- contacts, products, orders, events, or categories.\n\n**Tool:** `OMNISEND_CREATE_BATCH`\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `method` | string | Yes | `POST` or `PUT` |\n| `endpoint` | string | Yes | Target: `contacts`, `orders`, `products`, `events`, `categories` |\n| `items` | array | Yes | Array of payload objects for each operation |\n| `eventID` | string | Conditional | Required when endpoint is `events` |\n\nUse batch operations to avoid rate limits when processing large data sets.\n\n---\n\n## Known Pitfalls\n\n| Pitfall | Details |\n|---------|---------|\n| **Identifier required** | `OMNISEND_CREATE_OR_UPDATE_CONTACT` requires at least one identifier in the `identifiers` array -- only `email` type is supported |\n| **Cursor-based pagination** | `OMNISEND_LIST_CONTACTS` uses base64-encoded `after`\u002F`before` cursors, not page numbers -- follow cursors to avoid incomplete data |\n| **Contact ID resolution** | `OMNISEND_UPDATE_CONTACT` requires a `contactId` -- always resolve it first via list or get operations |\n| **Batch method constraints** | `OMNISEND_CREATE_BATCH` only accepts `POST` or `PUT` methods -- no `DELETE` or `PATCH` |\n| **Event ID dependency** | When batching events, the `eventID` parameter is mandatory -- omitting it causes the batch to fail |\n\n---\n\n## Quick Reference\n\n| Tool Slug | Purpose |\n|-----------|---------|\n| `OMNISEND_CREATE_OR_UPDATE_CONTACT` | Create or upsert a contact by email |\n| `OMNISEND_LIST_CONTACTS` | List contacts with filtering and cursor pagination |\n| `OMNISEND_GET_CONTACT` | Get full profile for a single contact by ID |\n| `OMNISEND_UPDATE_CONTACT` | Patch specific fields on an existing contact |\n| `OMNISEND_CREATE_BATCH` | Bulk async operations for contacts, products, orders, events |\n\n---\n\n*Powered by [Composio](https:\u002F\u002Fcomposio.dev)*\n",{"name":5,"requires":41,"description":7},{"mcp":42},[43],"rube","master","dff58085da947e81e8418c922055644bf0082b1b","automation\u002Fcomposio-omnisend-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":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add reikiplanet\u002Fdaoskills --skill \"Omnisend Automation\"",{"tool":58,"command":59},"bunx","bunx skills add reikiplanet\u002Fdaoskills --skill \"Omnisend Automation\"",{"tool":61,"command":62},"pnpm","pnpm dlx skills add reikiplanet\u002Fdaoskills --skill \"Omnisend Automation\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fautomation\u002Fcomposio-omnisend-automation\u002FSKILL.md",true,[],[67,94,106,121,141,164],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":73,"publishedAt":36},"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",[],[74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93],"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":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":100,"publishedAt":36},"01M6G611H2YGV0GZFP90D38ZMJ","vr-ar","VR\u002FAR development principles. Comfort, interaction, performance requirements.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fvr-ar\u002FSKILL.md",[],[101,102,92,103,104,80,82,83,84,77,105,78],"ar","vr ar","interaction","requirements","performance",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":36},"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",[],[108,113,114,115,116,117,80,118,84,119,120,77],"project scaffolding","From Scratch","tech","project","scaffolding","use","projects","applications",{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":127,"publishedAt":36},"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",[],[128,129,130,131,132,80,133,134,135,136,118,137,138,139,140],"wcag audit patterns","wcag audit","patterns","WCAG","audit","manual","with","automated testing","guidance","remediation","verification","accessibility","testing",{"skillNo":142,"name":143,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":147,"publishedAt":36},"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",[],[148,149,150,151,152,153,154,155,80,84,77,156,78,157,158,159,160,161,162,163],"scanner","vulnerability scanner","vulnerability","prioritization","2025","mapping","chain","supply chain","Bash","analysis","risk","owasp","supply chain security","security","supply","advanced",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":168,"categories":169,"keywords":170,"publishedAt":36},"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",[],[171,172,173,174,175,176,177,178,161,118,179,180,181,80,182,183,184,158,185,186],"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"]