[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-2eb2224d-a566-48eb-a1f8-4effa509efaf":3,"$fEasrir8CC_Rk2jU6aBabSJMdBVD8xS6aPdBvL1xGSMg":43},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":34},"2eb2224d-a566-48eb-a1f8-4effa509efaf","canva-automation","通过Rube MCP（Composio）自动化Canva任务：设计、导出、文件夹、品牌模板、自动填充。始终首先搜索工具以查找当前模式。","cat_prod_automation","mod_productivity","sickn33,productivity","---\nname: canva-automation\ndescription: \"Automate Canva tasks via Rube MCP (Composio): designs, exports, folders, brand templates, autofill. Always search tools first for current schemas.\"\nrisk: critical\nsource: community\ndate_added: \"2026-02-27\"\n---\n\n# 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:\u002F\u002Frube.app\u002Fmcp` 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` \u002F `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.\n","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,90,724,"2026-05-16 13:10:04",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"效率工具","productivity","mdi-lightning-bolt-outline","文档处理、数据分析、自动化工作流",4,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":32,"skillCount":33,"createdAt":26},"自动化","automation","mdi-robot-outline","工作流自动化、批处理",3,101,[35],{"id":36,"skillId":4,"version":37,"fileName":38,"fileSize":39,"filePath":40,"fileHash":41,"manifest":42,"createdAt":19},"b2e0a6db-fb42-4dac-9e3f-7b603775ef1c","1.0.0","canva-automation.zip",3493,"uploads\u002Fskills\u002F2eb2224d-a566-48eb-a1f8-4effa509efaf\u002Fcanva-automation.zip","ce2e1303636de04ded4a0d1508f96f0a5ba67b5bc11ee2f630deb8eddd9604ba","[{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":8559}]",{"code":44,"message":45,"data":46},200,"success",{"items":47,"stats":48,"page":51},[],{"averageRating":49,"totalRatings":49,"ratingCounts":50},0,[49,49,49,49,49],{"limit":52,"offset":49,"hasMore":53,"nextOffset":52,"ratedOnly":16},15,false]