{"id":"00e20919-a970-4342-bba2-9649d8c7f8c7","shortId":"hUbDQL","kind":"skill","title":"klaviyo-automation","tagline":"Automate Klaviyo tasks via Rube MCP (Composio): manage email/SMS campaigns, inspect campaign messages, track tags, and monitor send jobs. Always search tools first for current schemas.","description":"# Klaviyo Automation via Rube MCP\n\nAutomate Klaviyo email and SMS marketing operations through Composio's Klaviyo toolkit via Rube MCP.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active Klaviyo connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `klaviyo`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n\n## Setup\n\n**Get Rube MCP**: Add `https://rube.app/mcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `klaviyo`\n3. If connection is not ACTIVE, follow the returned auth link to complete Klaviyo authentication\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. List and Filter Campaigns\n\n**When to use**: User wants to browse, search, or filter marketing campaigns\n\n**Tool sequence**:\n1. `KLAVIYO_GET_CAMPAIGNS` - List campaigns with channel and status filters [Required]\n\n**Key parameters**:\n- `channel`: Campaign channel - 'email' or 'sms' (required by Klaviyo API)\n- `filter`: Additional filter string (e.g., `equals(status,\"draft\")`)\n- `sort`: Sort field with optional `-` prefix for descending (e.g., '-created_at', 'name')\n- `page_cursor`: Pagination cursor for next page\n- `include_archived`: Include archived campaigns (default: false)\n\n**Pitfalls**:\n- `channel` is required; omitting it can produce incomplete or unexpected results\n- Pagination is mandatory for full coverage; a single call returns only one page (default ~10)\n- Follow `page_cursor` until exhausted to get all campaigns\n- Status filtering via `filter` (e.g., `equals(status,\"draft\")`) can return mixed statuses; always validate `data[].attributes.status` client-side\n- Status strings are case-sensitive and can be compound (e.g., 'Cancelled: No Recipients')\n- Response shape is nested: `response.data.data` with status at `data[].attributes.status`\n\n### 2. Get Campaign Details\n\n**When to use**: User wants detailed information about a specific campaign\n\n**Tool sequence**:\n1. `KLAVIYO_GET_CAMPAIGNS` - Find campaign to get its ID [Prerequisite]\n2. `KLAVIYO_GET_CAMPAIGN` - Retrieve full campaign details [Required]\n\n**Key parameters**:\n- `campaign_id`: Campaign ID string (e.g., '01GDDKASAP8TKDDA2GRZDSVP4H')\n- `include_messages`: Include campaign messages in response\n- `include_tags`: Include tags in response\n\n**Pitfalls**:\n- Campaign IDs are alphanumeric strings, not numeric\n- `include_messages` and `include_tags` add related data to the response via Klaviyo's include mechanism\n- Campaign details include audiences, send strategy, tracking options, and scheduling info\n\n### 3. Inspect Campaign Messages\n\n**When to use**: User wants to view the email/SMS content of a campaign\n\n**Tool sequence**:\n1. `KLAVIYO_GET_CAMPAIGN` - Find campaign and its message IDs [Prerequisite]\n2. `KLAVIYO_GET_CAMPAIGN_MESSAGE` - Get message content details [Required]\n\n**Key parameters**:\n- `id`: Message ID string\n- `fields__campaign__message`: Sparse fieldset for message attributes (e.g., 'content.subject', 'content.from_email', 'content.body')\n- `fields__campaign`: Sparse fieldset for campaign attributes\n- `fields__template`: Sparse fieldset for template attributes\n- `include`: Related resources to include ('campaign', 'template')\n\n**Pitfalls**:\n- Message IDs are separate from campaign IDs; extract from campaign response\n- Sparse fieldset syntax uses dot notation for nested fields: 'content.subject', 'content.from_email'\n- Email messages have content fields: subject, preview_text, from_email, from_label, reply_to_email\n- SMS messages have content fields: body\n- Including 'template' provides the HTML/text content of the email\n\n### 4. Manage Campaign Tags\n\n**When to use**: User wants to view tags associated with campaigns for organization\n\n**Tool sequence**:\n1. `KLAVIYO_GET_CAMPAIGN_RELATIONSHIPS_TAGS` - Get tag IDs for a campaign [Required]\n\n**Key parameters**:\n- `id`: Campaign ID string\n\n**Pitfalls**:\n- Returns only tag IDs, not tag names/details\n- Tag IDs can be used with Klaviyo's tag endpoints for full details\n- Rate limit: 3/s burst, 60/m steady (stricter than other endpoints)\n\n### 5. Monitor Campaign Send Jobs\n\n**When to use**: User wants to check the status of a campaign send operation\n\n**Tool sequence**:\n1. `KLAVIYO_GET_CAMPAIGN_SEND_JOB` - Check send job status [Required]\n\n**Key parameters**:\n- `id`: Send job ID\n\n**Pitfalls**:\n- Send job IDs are returned when a campaign send is initiated\n- Job statuses indicate whether the send is queued, in progress, complete, or failed\n- Rate limit: 10/s burst, 150/m steady\n\n## Common Patterns\n\n### Campaign Discovery Pattern\n\n```\n1. Call KLAVIYO_GET_CAMPAIGNS with channel='email'\n2. Paginate through all results via page_cursor\n3. Filter by status client-side for accuracy\n4. Extract campaign IDs for detailed inspection\n```\n\n### Sparse Fieldset Pattern\n\nKlaviyo supports sparse fieldsets to reduce response size:\n```\nfields__campaign__message=['content.subject', 'content.from_email', 'send_times']\nfields__campaign=['name', 'status', 'send_time']\nfields__template=['name', 'html', 'text']\n```\n\n### Pagination\n\n- Klaviyo uses cursor-based pagination\n- Check response for `page_cursor` in the pagination metadata\n- Pass cursor as `page_cursor` in next request\n- Default page size is ~10 campaigns\n- Continue until no more cursor is returned\n\n### Filter Syntax\n\n```\n- equals(status,\"draft\") - Campaigns in draft status\n- equals(name,\"Newsletter\") - Campaign named \"Newsletter\"\n- greater-than(created_at,\"2024-01-01T00:00:00Z\") - Created after date\n```\n\n## Known Pitfalls\n\n**API Version**:\n- Klaviyo API uses versioned endpoints (e.g., v2024-07-15)\n- Response schemas may change between API versions\n- Tool responses follow the version configured in the Composio integration\n\n**Response Nesting**:\n- Data is nested: `response.data.data[].attributes`\n- Campaign status at `data[].attributes.status`\n- Mis-parsing the nesting yields empty or incorrect results\n- Always navigate through the full path defensively\n\n**Rate Limits**:\n- Burst: 10/s (3/s for tag endpoints)\n- Steady: 150/m (60/m for tag endpoints)\n- Required scope: campaigns:read\n- Implement backoff on 429 responses\n\n**Status Values**:\n- Status strings are case-sensitive\n- Compound statuses exist (e.g., 'Cancelled: No Recipients')\n- Server-side filtering may return mixed statuses; always validate client-side\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| List campaigns | KLAVIYO_GET_CAMPAIGNS | channel, filter, sort, page_cursor |\n| Get campaign details | KLAVIYO_GET_CAMPAIGN | campaign_id, include_messages, include_tags |\n| Get campaign message | KLAVIYO_GET_CAMPAIGN_MESSAGE | id, fields__campaign__message |\n| Get campaign tags | KLAVIYO_GET_CAMPAIGN_RELATIONSHIPS_TAGS | id |\n| Get send job status | KLAVIYO_GET_CAMPAIGN_SEND_JOB | id |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["klaviyo","automation","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-klaviyo-automation","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/klaviyo-automation","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34726 github stars · SKILL.md body (7,408 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-23T12:51:07.902Z","embedding":null,"createdAt":"2026-04-18T21:39:34.333Z","updatedAt":"2026-04-23T12:51:07.902Z","lastSeenAt":"2026-04-23T12:51:07.902Z","tsv":"'-01':802,803 '-07':821 '-15':822 '/mcp':88 '00':805 '00z':806 '01gddkasap8tkdda2grzdsvp4h':356 '1':108,155,174,328,424,558,629,682 '10':258,772 '10/s':673,872 '150/m':675,878 '2':120,311,339,435,690 '2024':801 '3':128,405,698 '3/s':600,873 '4':143,539,707 '429':890 '5':608 '60/m':602,879 'accuraci':706 'action':991 'activ':60,133,148 'add':85,102,383 'addit':199 'alphanumer':374 'alway':23,70,280,862,915 'api':98,197,812,815,828 'applic':985 'archiv':226,228 'ask':1029 'associ':551 'attribut':458,470,477,846 'attributes.status':283,310,851 'audienc':397 'auth':137 'authent':142 'autom':3,4,31,35 'avail':59,113 'backoff':888 'base':749 'bodi':529 'boundari':1037 'brows':166 'burst':601,674,871 'call':71,121,252,683 'campaign':13,15,159,171,177,179,189,229,267,313,325,331,333,342,345,350,352,360,371,394,407,421,427,429,438,452,465,469,483,491,495,541,553,561,569,574,610,624,632,654,679,686,709,726,734,773,786,793,847,885,928,931,938,942,943,950,954,958,961,965,975 'cancel':298,904 'case':291,898 'case-sensit':290,897 'chang':826 'channel':181,188,190,233,688,932 'check':619,635,751 'clarif':1031 'clear':1004 'client':95,285,703,918 'client-sid':284,702,917 'common':677 'complet':140,668 'composio':10,43,838 'compound':296,900 'configur':96,835 'confirm':115,144 'connect':55,62,66,124,130,145 'content':418,442,512,527,535 'content.body':463 'content.from':461,507,729 'content.subject':460,506,728 'continu':774 'core':153 'coverag':249 'creat':215,799,807 'criteria':1040 'current':28,78 'cursor':219,221,261,697,748,755,761,764,778,936 'cursor-bas':747 'data':282,309,385,842,850 'date':809 'default':230,257,768 'defens':868 'descend':213 'describ':992,1008 'detail':314,320,346,395,443,597,712,939 'discoveri':680 'dot':501 'draft':205,275,785,788 'e.g':202,214,272,297,355,459,819,903 'email':37,191,462,508,509,518,523,538,689,730 'email/sms':12,417 'empti':858 'endpoint':104,594,607,818,876,882 'environ':1020 'environment-specif':1019 'equal':203,273,783,790 'execut':987 'exhaust':263 'exist':902 'expert':1025 'extract':493,708 'fail':670 'fals':231 'field':208,451,464,471,505,513,528,725,733,739,957 'fieldset':455,467,474,498,715,720 'filter':158,169,184,198,200,269,271,699,781,910,933 'find':332,428 'first':26,75 'follow':134,259,832 'full':248,344,596,866 'get':77,82,176,265,312,330,335,341,426,437,440,560,564,631,685,930,937,941,949,953,960,964,969,974 'greater':797 'greater-than':796 'html':742 'html/text':534 'id':337,351,353,372,433,447,449,487,492,566,573,575,581,586,642,645,649,710,944,956,968,978 'implement':887 'includ':225,227,357,359,364,366,378,381,392,396,478,482,530,945,947 'incomplet':240 'incorrect':860 'indic':660 'info':404 'inform':321 'initi':657 'input':1034 'inspect':14,406,713 'integr':839 'job':22,612,634,637,644,648,658,971,977 'key':99,186,348,445,571,640,925 'klaviyo':2,5,30,36,45,61,69,127,141,175,196,329,340,390,425,436,559,591,630,684,717,745,814,929,940,952,963,973 'klaviyo-autom':1 'known':810 'label':520 'limit':599,672,870,996 'link':138 'list':156,178,927 'manag':11,65,123,540 'mandatori':246 'market':40,170 'match':1005 'may':825,911 'mcp':9,34,49,52,84,91,111 'mechan':393 'messag':16,358,361,379,408,432,439,441,448,453,457,486,510,525,727,946,951,955,959 'metadata':759 'mis':853 'mis-pars':852 'miss':1042 'mix':278,913 'monitor':20,609 'must':53 'name':217,735,741,791,794 'names/details':584 'navig':863 'need':100 'nest':304,504,841,844,856 'newslett':792,795 'next':223,766 'notat':502 'numer':377 'omit':236 'one':255 'oper':41,626 'option':210,401 'organ':555 'output':1014 'overview':995 'page':218,224,256,260,696,754,763,769,935 'pagin':220,244,691,744,750,758 'param':926 'paramet':187,349,446,572,641 'pars':854 'pass':760 'path':867 'pattern':678,681,716 'permiss':1035 'pitfal':232,370,485,577,646,811 'prefix':211 'prerequisit':50,338,434 'preview':515 'produc':239 'progress':667 'provid':532 'queu':665 'quick':920 'rate':598,671,869 'read':886 'recipi':300,906 'reduc':722 'refer':921 'relat':384,479 'relationship':562,966 'repli':521 'request':767 'requir':185,194,235,347,444,570,639,883,1033 'resourc':480 'respond':119 'respons':301,363,369,388,496,723,752,823,831,840,891 'response.data.data':305,845 'result':243,694,861 'retriev':343 'return':136,253,277,578,651,780,912 'review':1026 'rube':8,33,48,51,56,64,72,83,110,116,122 'rube.app':87 'rube.app/mcp':86 'run':150 'safeti':1036 'schedul':403 'schema':29,80,824 'scope':884,1007 'search':24,57,73,117,167 'send':21,398,611,625,633,636,643,647,655,663,731,737,970,976 'sensit':292,899 'separ':489 'sequenc':173,327,423,557,628 'server':92,908 'server-sid':907 'setup':81 'shape':302 'show':147 'side':286,704,909,919 'singl':251 'size':724,770 'skill':983,999 'skill-klaviyo-automation' 'slug':924 'sms':39,193,524 'sort':206,207,934 'source-sickn33' 'spars':454,466,473,497,714,719 'specif':324,1021 'status':146,183,204,268,274,279,287,307,621,638,659,701,736,784,789,848,892,894,901,914,972 'steadi':603,676,877 'stop':1027 'strategi':399 'stricter':604 'string':201,288,354,375,450,576,895 'subject':514 'substitut':1017 'success':1039 'support':718 'syntax':499,782 't00':804 'tag':18,365,367,382,542,550,563,565,580,583,585,593,875,881,948,962,967 'task':6,922,1003 'templat':472,476,484,531,740 'test':1023 'text':516,743 'time':732,738 'tool':25,58,74,79,118,172,326,422,556,627,830,923 'toolkit':46,68,126 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'track':17,400 'treat':1012 'unexpect':242 'use':162,317,411,500,545,589,615,746,816,981,997 'user':163,318,412,546,616 'v2024':820 'valid':281,916,1022 'valu':893 'verifi':109 'version':813,817,829,834 'via':7,32,47,63,270,389,695 'view':415,549 'want':164,319,413,547,617 'whether':661 'work':107 'workflow':152,154,989 'yield':857","prices":[{"id":"2af2903f-749b-479e-8a8e-95182a18a3d4","listingId":"00e20919-a970-4342-bba2-9649d8c7f8c7","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:39:34.333Z"}],"sources":[{"listingId":"00e20919-a970-4342-bba2-9649d8c7f8c7","source":"github","sourceId":"sickn33/antigravity-awesome-skills/klaviyo-automation","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/klaviyo-automation","isPrimary":false,"firstSeenAt":"2026-04-18T21:39:34.333Z","lastSeenAt":"2026-04-23T12:51:07.902Z"}],"details":{"listingId":"00e20919-a970-4342-bba2-9649d8c7f8c7","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"klaviyo-automation","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34726,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-23T06:41:03Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"5e9dcd7fc6417de18dd65f1fc4dbbe5172fa5f32","skill_md_path":"skills/klaviyo-automation/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/klaviyo-automation"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"klaviyo-automation","description":"Automate Klaviyo tasks via Rube MCP (Composio): manage email/SMS campaigns, inspect campaign messages, track tags, and monitor send jobs. Always search tools first for current schemas."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/klaviyo-automation"},"updatedAt":"2026-04-23T12:51:07.902Z"}}