skills/writing-and-planning/copywriting/document-editorial/composio-skills/omnisend-automation/SKILL.md
Automate ecommerce marketing workflows including contact management, bulk operations, and subscriber segmentation through Omnisend via Composio
npx skillsauth add lunartech-x/superpowers Omnisend AutomationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Automate 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.
Toolkit docs: composio.dev/toolkits/omnisend
https://rube.app/mcpOMNISEND_* tools become available for executionUpsert a contact by email identifier with subscription status, profile fields, and optional welcome message.
Tool: OMNISEND_CREATE_OR_UPDATE_CONTACT
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| identifiers | array | Yes | At least one identifier object with id (email), type (email), optional channels.email.status (subscribed, nonSubscribed, unsubscribed), and sendWelcomeMessage (boolean) |
| firstName | string | No | Contact's first name |
| lastName | string | No | Contact's last name |
| gender | string | No | m or f |
| birthdate | string | No | Format: YYYY-MM-DD |
| country | string | No | Full country name |
| countryCode | string | No | ISO 3166-1 alpha-2 code (e.g., US) |
| city | string | No | City name |
| address | string | No | Street address |
| postalCode | string | No | ZIP/postal code |
Retrieve contacts in batches with optional filters for email, phone, status, segment, or tag.
Tool: OMNISEND_LIST_CONTACTS
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| limit | integer | No | Results per page (default: 100, max: 250) |
| after | string | No | Cursor for next page (base64-encoded ContactID) |
| before | string | No | Cursor for previous page |
| email | string | No | Filter by exact email address |
| phone | string | No | Filter by full phone number with country code |
| status | string | No | Filter by: subscribed, nonSubscribed, unsubscribed |
| segmentID | integer | No | Filter by segment ID |
| tag | string | No | Filter by tag (e.g., VIP) |
Retrieve the full profile for a single contact when you already have their contact ID.
Tool: OMNISEND_GET_CONTACT
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| contactId | string | Yes | Unique contact identifier (e.g., 60e7412b1234567890abcdef) |
Patch specific fields on a contact by ID without overwriting the entire record.
Tool: OMNISEND_UPDATE_CONTACT
Requires the contactId and the fields to update. Retrieve the contact ID first via OMNISEND_LIST_CONTACTS or OMNISEND_GET_CONTACT.
Process many records asynchronously in a single call -- contacts, products, orders, events, or categories.
Tool: OMNISEND_CREATE_BATCH
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| method | string | Yes | POST or PUT |
| endpoint | string | Yes | Target: contacts, orders, products, events, categories |
| items | array | Yes | Array of payload objects for each operation |
| eventID | string | Conditional | Required when endpoint is events |
Use batch operations to avoid rate limits when processing large data sets.
| Pitfall | Details |
|---------|---------|
| Identifier required | OMNISEND_CREATE_OR_UPDATE_CONTACT requires at least one identifier in the identifiers array -- only email type is supported |
| Cursor-based pagination | OMNISEND_LIST_CONTACTS uses base64-encoded after/before cursors, not page numbers -- follow cursors to avoid incomplete data |
| Contact ID resolution | OMNISEND_UPDATE_CONTACT requires a contactId -- always resolve it first via list or get operations |
| Batch method constraints | OMNISEND_CREATE_BATCH only accepts POST or PUT methods -- no DELETE or PATCH |
| Event ID dependency | When batching events, the eventID parameter is mandatory -- omitting it causes the batch to fail |
| Tool Slug | Purpose |
|-----------|---------|
| OMNISEND_CREATE_OR_UPDATE_CONTACT | Create or upsert a contact by email |
| OMNISEND_LIST_CONTACTS | List contacts with filtering and cursor pagination |
| OMNISEND_GET_CONTACT | Get full profile for a single contact by ID |
| OMNISEND_UPDATE_CONTACT | Patch specific fields on an existing contact |
| OMNISEND_CREATE_BATCH | Bulk async operations for contacts, products, orders, events |
Powered by Composio
tools
Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.
testing
Access AlphaFold 200M+ AI-predicted protein structures. Retrieve structures by UniProt ID, download PDB/mmCIF files, analyze confidence metrics (pLDDT, PAE), for drug discovery and structural biology.
development
Access real-time and historical stock market data, forex rates, cryptocurrency prices, commodities, economic indicators, and 50+ technical indicators via the Alpha Vantage API. Use when fetching stock prices (OHLCV), company fundamentals (income statement, balance sheet, cash flow), earnings, options data, market news/sentiment, insider transactions, GDP, CPI, treasury yields, gold/silver/oil prices, Bitcoin/crypto prices, forex exchange rates, or calculating technical indicators (SMA, EMA, MACD, RSI, Bollinger Bands). Requires a free API key from alphavantage.co.
development
This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search. Use when working with temporal data, sequential patterns, or time-indexed observations requiring specialized algorithms beyond standard ML approaches. Particularly suited for univariate and multivariate time series analysis with scikit-learn compatible APIs.