{"id":"d7309e42-a2cf-458a-95e9-8d0ff2136853","shortId":"GqKsqv","kind":"skill","title":"canva-automation","tagline":"Automate Canva tasks via Rube MCP (Composio): designs, exports, folders, brand templates, autofill. Always search tools first for current schemas.","description":"# Canva Automation via Rube MCP\n\nAutomate Canva design operations through Composio's Canva toolkit via Rube MCP.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active Canva connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `canva`\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 `canva`\n3. If connection is not ACTIVE, follow the returned auth link to complete Canva OAuth\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. List and Browse Designs\n\n**When to use**: User wants to find existing designs or browse their Canva library\n\n**Tool sequence**:\n1. `CANVA_LIST_USER_DESIGNS` - List all designs with optional filters [Required]\n\n**Key parameters**:\n- `query`: Search term to filter designs by name\n- `continuation`: Pagination token from previous response\n- `ownership`: Filter by 'owned', 'shared', or 'any'\n- `sort_by`: Sort field (e.g., 'modified_at', 'title')\n\n**Pitfalls**:\n- Results are paginated; follow `continuation` token until absent\n- Deleted designs may still appear briefly; check design status\n- Search is substring-based, not fuzzy matching\n\n### 2. Create and Design\n\n**When to use**: User wants to create a new Canva design from scratch or from a template\n\n**Tool sequence**:\n1. `CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST` - Browse available brand templates [Optional]\n2. `CANVA_CREATE_CANVA_DESIGN_WITH_OPTIONAL_ASSET` - Create a new design [Required]\n\n**Key parameters**:\n- `design_type`: Type of design (e.g., 'Presentation', 'Poster', 'SocialMedia')\n- `title`: Name for the new design\n- `asset_id`: Optional asset to include in the design\n- `width` / `height`: Custom dimensions in pixels\n\n**Pitfalls**:\n- Design type must match Canva's predefined types exactly\n- Custom dimensions have minimum and maximum limits\n- Asset must be uploaded first via CANVA_CREATE_ASSET_UPLOAD_JOB before referencing\n\n### 3. Upload Assets\n\n**When to use**: User wants to upload images or files to Canva for use in designs\n\n**Tool sequence**:\n1. `CANVA_CREATE_ASSET_UPLOAD_JOB` - Initiate the asset upload [Required]\n2. `CANVA_FETCH_ASSET_UPLOAD_JOB_STATUS` - Poll until upload completes [Required]\n\n**Key parameters**:\n- `name`: Display name for the asset\n- `url`: Public URL of the file to upload (for URL-based uploads)\n- `job_id`: Upload job ID returned from step 1 (for status polling)\n\n**Pitfalls**:\n- Upload is asynchronous; you MUST poll the job status until it completes\n- Supported formats include PNG, JPG, SVG, MP4, GIF\n- File size limits apply; large files may take longer to process\n- The `job_id` from CREATE returns the ID needed for status polling\n- Status values: 'in_progress', 'success', 'failed'\n\n### 4. Export Designs\n\n**When to use**: User wants to download or export a Canva design as PDF, PNG, or other format\n\n**Tool sequence**:\n1. `CANVA_LIST_USER_DESIGNS` - Find the design to export [Prerequisite]\n2. `CANVA_CREATE_CANVA_DESIGN_EXPORT_JOB` - Start the export process [Required]\n3. `CANVA_GET_DESIGN_EXPORT_JOB_RESULT` - Poll until export completes and get download URL [Required]\n\n**Key parameters**:\n- `design_id`: ID of the design to export\n- `format`: Export format ('pdf', 'png', 'jpg', 'svg', 'mp4', 'gif', 'pptx')\n- `pages`: Specific page numbers to export (array)\n- `quality`: Export quality ('regular', 'high')\n- `job_id`: Export job ID for polling status\n\n**Pitfalls**:\n- Export is asynchronous; you MUST poll the job result until it completes\n- Download URLs from completed exports expire after a limited time\n- Large designs with many pages take longer to export\n- Not all formats support all design types (e.g., MP4 only for animations)\n- Poll interval: wait 2-3 seconds between status checks\n\n### 5. Organize with Folders\n\n**When to use**: User wants to create folders or organize designs into folders\n\n**Tool sequence**:\n1. `CANVA_POST_FOLDERS` - Create a new folder [Required]\n2. `CANVA_MOVE_ITEM_TO_SPECIFIED_FOLDER` - Move designs into folders [Optional]\n\n**Key parameters**:\n- `name`: Folder name\n- `parent_folder_id`: Parent folder for nested organization\n- `item_id`: ID of the design or asset to move\n- `folder_id`: Target folder ID\n\n**Pitfalls**:\n- Folder names must be unique within the same parent folder\n- Moving items between folders updates their location immediately\n- Root-level folders have no parent_folder_id\n\n### 6. Autofill from Brand Templates\n\n**When to use**: User wants to generate designs by filling brand template placeholders with data\n\n**Tool sequence**:\n1. `CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST` - List available brand templates [Required]\n2. `CANVA_INITIATE_CANVA_DESIGN_AUTOFILL_JOB` - Start autofill with data [Required]\n\n**Key parameters**:\n- `brand_template_id`: ID of the brand template to use\n- `title`: Title for the generated design\n- `data`: Key-value mapping of placeholder names to replacement values\n\n**Pitfalls**:\n- Template placeholders must match exactly (case-sensitive)\n- Autofill is asynchronous; poll for completion\n- Only brand templates support autofill, not regular designs\n- Data values must match the expected type for each placeholder (text, image URL)\n\n## Common Patterns\n\n### Async Job Pattern\n\nMany Canva operations are asynchronous:\n```\n1. Initiate job (upload, export, autofill) -> get job_id\n2. Poll status endpoint with job_id every 2-3 seconds\n3. Check for 'success' or 'failed' status\n4. On success, extract result (asset_id, download_url, design_id)\n```\n\n### ID Resolution\n\n**Design name -> Design ID**:\n```\n1. Call CANVA_LIST_USER_DESIGNS with query=design_name\n2. Find matching design in results\n3. Extract id field\n```\n\n**Brand template name -> Template ID**:\n```\n1. Call CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST\n2. Find template by name\n3. Extract brand_template_id\n```\n\n### Pagination\n\n- Check response for `continuation` token\n- Pass token in next request's `continuation` parameter\n- Continue until `continuation` is absent or empty\n\n## Known Pitfalls\n\n**Async Operations**:\n- Uploads, exports, and autofills are all asynchronous\n- Always poll job status; do not assume immediate completion\n- Download URLs from exports expire; use them promptly\n\n**Asset Management**:\n- Assets must be uploaded before they can be used in designs\n- Upload job must reach 'success' status before the asset_id is valid\n- Supported formats vary; check Canva documentation for current limits\n\n**Rate Limits**:\n- Canva API has rate limits per endpoint\n- Implement exponential backoff for bulk operations\n- Batch operations where possible to reduce API calls\n\n**Response Parsing**:\n- Response data may be nested under `data` key\n- Job status responses include different fields based on completion state\n- Parse defensively with fallbacks for optional fields\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| List designs | CANVA_LIST_USER_DESIGNS | query, continuation |\n| Create design | CANVA_CREATE_CANVA_DESIGN_WITH_OPTIONAL_ASSET | design_type, title |\n| Upload asset | CANVA_CREATE_ASSET_UPLOAD_JOB | name, url |\n| Check upload | CANVA_FETCH_ASSET_UPLOAD_JOB_STATUS | job_id |\n| Export design | CANVA_CREATE_CANVA_DESIGN_EXPORT_JOB | design_id, format |\n| Get export | CANVA_GET_DESIGN_EXPORT_JOB_RESULT | job_id |\n| Create folder | CANVA_POST_FOLDERS | name, parent_folder_id |\n| Move to folder | CANVA_MOVE_ITEM_TO_SPECIFIED_FOLDER | item_id, folder_id |\n| List templates | CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST | (none) |\n| Autofill template | CANVA_INITIATE_CANVA_DESIGN_AUTOFILL_JOB | brand_template_id, data |\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":["canva","automation","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-canva-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/canva-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 · 34882 github stars · SKILL.md body (8,304 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-24T12:50:43.613Z","embedding":null,"createdAt":"2026-04-18T21:34:00.316Z","updatedAt":"2026-04-24T12:50:43.613Z","lastSeenAt":"2026-04-24T12:50:43.613Z","tsv":"'-3':624,865 '/mcp':79 '1':99,146,167,259,368,420,497,648,747,847,891,916 '2':111,236,272,379,508,623,657,760,856,864,901,925 '3':119,347,520,867,907,930 '4':134,474,874 '5':629 '6':725 'absent':218,953 'access':261,749,919,1160 'action':1191 'activ':51,124,139 'add':76,93 'alway':17,61,967 'anim':619 'api':89,1021,1039 'appear':223 'appli':448 'applic':1185 'array':562 'ask':1229 'asset':279,302,305,334,342,349,371,376,382,398,689,879,984,986,1005,1091,1096,1099,1108 'assum':973 'async':839,958 'asynchron':427,579,812,846,966 'auth':128 'autofil':16,726,765,768,810,820,852,963,1167,1173 'autom':3,4,25,29 'avail':50,104,268,756 'backoff':1029 'base':232,410,1057 'batch':1033 'boundari':1237 'brand':14,264,269,728,740,752,757,774,780,817,911,922,932,1163,1175 'briefli':224 'brows':149,161,267 'bulk':1031 'call':62,112,892,917,1040 'canva':2,5,24,30,36,52,60,118,132,163,168,249,260,273,275,322,340,361,369,380,487,498,509,511,521,649,658,748,761,763,843,893,918,1013,1020,1077,1085,1087,1097,1106,1116,1118,1127,1137,1147,1159,1169,1171 'canva-autom':1 'case':808 'case-sensit':807 'check':225,628,868,936,1012,1104 'clarif':1231 'clear':1204 'client':86 'common':837 'complet':131,389,436,530,588,592,815,975,1059 'composio':10,34 'configur':87 'confirm':106,135 'connect':46,53,57,115,121,136 'continu':189,215,939,947,949,951,1082 'core':144 'creat':237,246,274,280,341,370,460,510,639,652,1083,1086,1098,1117,1135 'criteria':1240 'current':22,69,1016 'custom':313,327 'data':744,770,790,824,1044,1049,1178 'defens':1062 'delet':219 'describ':1192,1208 'design':11,31,150,159,171,174,186,220,226,239,250,276,283,287,291,301,310,318,365,476,488,501,504,512,523,538,543,600,613,643,665,687,737,764,789,823,883,887,889,896,899,904,996,1076,1080,1084,1088,1092,1115,1119,1122,1129,1172 'differ':1055 'dimens':314,328 'display':394 'document':1014 'download':483,533,589,881,976 'e.g':206,292,615 'empti':955 'endpoint':95,859,1026 'environ':1220 'environment-specif':1219 'everi':863 'exact':326,806 'execut':1187 'exist':158 'expect':829 'expert':1225 'expir':594,980 'exponenti':1028 'export':12,475,485,506,513,517,524,529,545,547,561,564,570,577,593,607,851,961,979,1114,1120,1126,1130 'extract':877,908,931 'fail':473,872 'fallback':1064 'fetch':381,1107 'field':205,910,1056,1067 'file':359,404,445,450 'fill':739 'filter':177,185,196 'find':157,502,902,926 'first':20,66,338 'folder':13,632,640,645,651,655,663,667,672,675,678,692,695,698,707,711,719,723,1136,1139,1142,1146,1152,1155 'follow':125,214 'format':438,494,546,548,610,1010,1124 'fuzzi':234 'generat':736,788 'get':68,73,522,532,853,1125,1128 'gif':444,554 'height':312 'high':567 'id':303,413,416,458,463,539,540,569,572,676,683,684,693,696,724,776,777,855,862,880,884,885,890,909,915,934,1006,1113,1123,1134,1143,1154,1156,1177 'imag':357,835 'immedi':715,974 'implement':1027 'includ':307,439,1054 'initi':374,762,848,1170 'input':1234 'interv':621 'item':660,682,709,1149,1153 'job':344,373,384,412,415,432,457,514,525,568,571,584,766,840,849,854,861,969,998,1051,1101,1110,1112,1121,1131,1133,1174 'jpg':441,551 'key':90,179,285,391,536,669,772,792,1050,1073 'key-valu':791 'known':956 'larg':449,599 'level':718 'librari':164 'limit':333,447,597,1017,1019,1024,1196 'link':129 'list':147,169,172,266,499,754,755,894,924,1075,1078,1157,1165 'locat':714 'longer':453,605 'manag':56,114,985 'mani':602,842 'map':794 'match':235,321,805,827,903,1205 'maximum':332 'may':221,451,1045 'mcp':9,28,40,43,75,82,102 'minimum':330 'miss':1242 'modifi':207 'move':659,664,691,708,1144,1148 'mp4':443,553,616 'must':44,320,335,429,581,700,804,826,987,999 'name':188,297,393,395,671,673,699,797,888,900,913,929,1102,1140 'need':91,464 'nest':680,1047 'new':248,282,300,654 'next':944 'none':1166 'number':559 'oauth':133 'oper':32,844,959,1032,1034 'option':176,271,278,304,668,1066,1090 'organ':630,642,681 'output':1214 'overview':1195 'own':198 'ownership':195 'page':556,558,603 'pagin':190,213,935 'param':1074 'paramet':180,286,392,537,670,773,948 'parent':674,677,706,722,1141 'pars':1042,1061 'pass':941 'pattern':838,841 'pdf':490,549 'per':1025 'permiss':1235 'pitfal':210,317,424,576,697,801,957 'pixel':316 'placehold':742,796,803,833 'png':440,491,550 'poll':386,423,430,467,527,574,582,620,813,857,968 'possibl':1036 'post':650,1138 'poster':294 'pptx':555 'predefin':324 'prerequisit':41,507 'present':293 'previous':193 'process':455,518 'progress':471 'prompt':983 'public':400 'qualiti':563,565 'queri':181,898,1081 'quick':1068 'rate':1018,1023 'reach':1000 'reduc':1038 'refer':1069 'referenc':346 'regular':566,822 'replac':799 'request':945 'requir':178,284,378,390,519,535,656,759,771,1233 'resolut':886 'respond':110 'respons':194,937,1041,1043,1053 'result':211,526,585,878,906,1132 'return':127,417,461 'review':1226 'root':717 'root-level':716 'rube':8,27,39,42,47,55,63,74,101,107,113 'rube.app':78 'rube.app/mcp':77 'run':141 'safeti':1236 'schema':23,71 'scope':1207 'scratch':252 'search':18,48,64,108,182,228 'second':625,866 'sensit':809 'sequenc':166,258,367,496,647,746 'server':83 'setup':72 'share':199 'show':138 'size':446 'skill':1183,1199 'skill-canva-automation' 'slug':1072 'socialmedia':295 'sort':202,204 'source-sickn33' 'specif':263,557,751,921,1162,1221 'specifi':662,1151 'start':515,767 'state':1060 'status':137,227,385,422,433,466,468,575,627,858,873,970,1002,1052,1111 'step':419 'still':222 'stop':1227 'substitut':1217 'substr':231 'substring-bas':230 'success':472,870,876,1001,1239 'support':437,611,819,1009 'svg':442,552 'take':452,604 'target':694 'task':6,1070,1203 'templat':15,256,265,270,729,741,753,758,775,781,802,818,912,914,923,927,933,1158,1164,1168,1176 'term':183 'test':1223 'text':834 'time':598 'titl':209,296,784,785,1094 'token':191,216,940,942 'tool':19,49,65,70,109,165,257,366,495,646,745,1071 'toolkit':37,59,117 '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' 'treat':1212 'type':288,289,319,325,614,830,1093 'uniqu':702 'updat':712 'upload':337,343,348,356,372,377,383,388,406,411,414,425,850,960,989,997,1095,1100,1105,1109 'url':399,401,409,534,590,836,882,977,1103 'url-bas':408 'use':153,242,352,363,479,635,732,783,981,994,1181,1197 'user':154,170,243,262,353,480,500,636,733,750,895,920,1079,1161 'valid':1008,1222 'valu':469,793,800,825 'vari':1011 'verifi':100 'via':7,26,38,54,339 'wait':622 'want':155,244,354,481,637,734 'width':311 'within':703 'work':98 'workflow':143,145,1189","prices":[{"id":"af972001-ed94-406d-b4a3-8cbaada0b5f4","listingId":"d7309e42-a2cf-458a-95e9-8d0ff2136853","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:34:00.316Z"}],"sources":[{"listingId":"d7309e42-a2cf-458a-95e9-8d0ff2136853","source":"github","sourceId":"sickn33/antigravity-awesome-skills/canva-automation","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/canva-automation","isPrimary":false,"firstSeenAt":"2026-04-18T21:34:00.316Z","lastSeenAt":"2026-04-24T12:50:43.613Z"}],"details":{"listingId":"d7309e42-a2cf-458a-95e9-8d0ff2136853","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"canva-automation","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34882,"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-24T06:41:17Z","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":"7df2f4504a866fa3be72245bbd08cd9f019e4ded","skill_md_path":"skills/canva-automation/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/canva-automation"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"canva-automation","description":"Automate Canva tasks via Rube MCP (Composio): designs, exports, folders, brand templates, autofill. Always search tools first for current schemas."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/canva-automation"},"updatedAt":"2026-04-24T12:50:43.613Z"}}