canva-automation
npx machina-cli add skill davepoon/buildwithclaude/canva-automation --openclawCanva Automation via Rube MCP
Automate Canva design operations through Composio's Canva toolkit via Rube MCP.
Toolkit docs: composio.dev/toolkits/canva
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Canva connection via
RUBE_MANAGE_CONNECTIONSwith toolkitcanva - Always call
RUBE_SEARCH_TOOLSfirst to get current tool schemas
Setup
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.
- Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLSresponds - Call
RUBE_MANAGE_CONNECTIONSwith toolkitcanva - If connection is not ACTIVE, follow the returned auth link to complete Canva OAuth
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. List and Browse Designs
When to use: User wants to find existing designs or browse their Canva library
Tool sequence:
CANVA_LIST_USER_DESIGNS- List all designs with optional filters [Required]
Key parameters:
query: Search term to filter designs by namecontinuation: Pagination token from previous responseownership: Filter by 'owned', 'shared', or 'any'sort_by: Sort field (e.g., 'modified_at', 'title')
Pitfalls:
- Results are paginated; follow
continuationtoken until absent - Deleted designs may still appear briefly; check design status
- Search is substring-based, not fuzzy matching
2. Create and Design
When to use: User wants to create a new Canva design from scratch or from a template
Tool sequence:
CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST- Browse available brand templates [Optional]CANVA_CREATE_CANVA_DESIGN_WITH_OPTIONAL_ASSET- Create a new design [Required]
Key parameters:
design_type: Type of design (e.g., 'Presentation', 'Poster', 'SocialMedia')title: Name for the new designasset_id: Optional asset to include in the designwidth/height: Custom dimensions in pixels
Pitfalls:
- Design type must match Canva's predefined types exactly
- Custom dimensions have minimum and maximum limits
- Asset must be uploaded first via CANVA_CREATE_ASSET_UPLOAD_JOB before referencing
3. Upload Assets
When to use: User wants to upload images or files to Canva for use in designs
Tool sequence:
CANVA_CREATE_ASSET_UPLOAD_JOB- Initiate the asset upload [Required]CANVA_FETCH_ASSET_UPLOAD_JOB_STATUS- Poll until upload completes [Required]
Key parameters:
name: Display name for the asseturl: Public URL of the file to upload (for URL-based uploads)job_id: Upload job ID returned from step 1 (for status polling)
Pitfalls:
- Upload is asynchronous; you MUST poll the job status until it completes
- Supported formats include PNG, JPG, SVG, MP4, GIF
- File size limits apply; large files may take longer to process
- The
job_idfrom CREATE returns the ID needed for status polling - Status values: 'in_progress', 'success', 'failed'
4. Export Designs
When to use: User wants to download or export a Canva design as PDF, PNG, or other format
Tool sequence:
CANVA_LIST_USER_DESIGNS- Find the design to export [Prerequisite]CANVA_CREATE_CANVA_DESIGN_EXPORT_JOB- Start the export process [Required]CANVA_GET_DESIGN_EXPORT_JOB_RESULT- Poll until export completes and get download URL [Required]
Key parameters:
design_id: ID of the design to exportformat: Export format ('pdf', 'png', 'jpg', 'svg', 'mp4', 'gif', 'pptx')pages: Specific page numbers to export (array)quality: Export quality ('regular', 'high')job_id: Export job ID for polling status
Pitfalls:
- Export is asynchronous; you MUST poll the job result until it completes
- Download URLs from completed exports expire after a limited time
- Large designs with many pages take longer to export
- Not all formats support all design types (e.g., MP4 only for animations)
- Poll interval: wait 2-3 seconds between status checks
5. Organize with Folders
When to use: User wants to create folders or organize designs into folders
Tool sequence:
CANVA_POST_FOLDERS- Create a new folder [Required]CANVA_MOVE_ITEM_TO_SPECIFIED_FOLDER- Move designs into folders [Optional]
Key parameters:
name: Folder nameparent_folder_id: Parent folder for nested organizationitem_id: ID of the design or asset to movefolder_id: Target folder ID
Pitfalls:
- Folder names must be unique within the same parent folder
- Moving items between folders updates their location immediately
- Root-level folders have no parent_folder_id
6. Autofill from Brand Templates
When to use: User wants to generate designs by filling brand template placeholders with data
Tool sequence:
CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST- List available brand templates [Required]CANVA_INITIATE_CANVA_DESIGN_AUTOFILL_JOB- Start autofill with data [Required]
Key parameters:
brand_template_id: ID of the brand template to usetitle: Title for the generated designdata: Key-value mapping of placeholder names to replacement values
Pitfalls:
- Template placeholders must match exactly (case-sensitive)
- Autofill is asynchronous; poll for completion
- Only brand templates support autofill, not regular designs
- Data values must match the expected type for each placeholder (text, image URL)
Common Patterns
Async Job Pattern
Many Canva operations are asynchronous:
1. Initiate job (upload, export, autofill) -> get job_id
2. Poll status endpoint with job_id every 2-3 seconds
3. Check for 'success' or 'failed' status
4. On success, extract result (asset_id, download_url, design_id)
ID Resolution
Design name -> Design ID:
1. Call CANVA_LIST_USER_DESIGNS with query=design_name
2. Find matching design in results
3. Extract id field
Brand template name -> Template ID:
1. Call CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST
2. Find template by name
3. Extract brand_template_id
Pagination
- Check response for
continuationtoken - Pass token in next request's
continuationparameter - Continue until
continuationis absent or empty
Known Pitfalls
Async Operations:
- Uploads, exports, and autofills are all asynchronous
- Always poll job status; do not assume immediate completion
- Download URLs from exports expire; use them promptly
Asset Management:
- Assets must be uploaded before they can be used in designs
- Upload job must reach 'success' status before the asset_id is valid
- Supported formats vary; check Canva documentation for current limits
Rate Limits:
- Canva API has rate limits per endpoint
- Implement exponential backoff for bulk operations
- Batch operations where possible to reduce API calls
Response Parsing:
- Response data may be nested under
datakey - Job status responses include different fields based on completion state
- Parse defensively with fallbacks for optional fields
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| List designs | CANVA_LIST_USER_DESIGNS | query, continuation |
| Create design | CANVA_CREATE_CANVA_DESIGN_WITH_OPTIONAL_ASSET | design_type, title |
| Upload asset | CANVA_CREATE_ASSET_UPLOAD_JOB | name, url |
| Check upload | CANVA_FETCH_ASSET_UPLOAD_JOB_STATUS | job_id |
| Export design | CANVA_CREATE_CANVA_DESIGN_EXPORT_JOB | design_id, format |
| Get export | CANVA_GET_DESIGN_EXPORT_JOB_RESULT | job_id |
| Create folder | CANVA_POST_FOLDERS | name, parent_folder_id |
| Move to folder | CANVA_MOVE_ITEM_TO_SPECIFIED_FOLDER | item_id, folder_id |
| List templates | CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST | (none) |
| Autofill template | CANVA_INITIATE_CANVA_DESIGN_AUTOFILL_JOB | brand_template_id, data |
Powered by Composio
Source
git clone https://github.com/davepoon/buildwithclaude/blob/main/plugins/all-skills/skills/canva-automation/SKILL.mdView on GitHub Overview
Automate Canva design operations using Composio's Canva toolkit through Rube MCP. This skill covers designs, exports, asset uploads, folders, and brand templates, with a reminder to fetch current schemas using RUBE_SEARCH_TOOLS.
How This Skill Works
Connect to Rube MCP at rube.app/mcp and ensure the Canva connection is ACTIVE via RUBE_MANAGE_CONNECTIONS. Always call RUBE_SEARCH_TOOLS first to fetch the latest tool schemas, then execute core workflows such as listing designs, creating designs with optional assets, uploading assets, and exporting designs using the designated CANVA tool endpoints.
When to Use It
- Scenario 1: Browse the Canva library to find existing designs using CANVA_LIST_USER_DESIGNS
- Scenario 2: Create a new design from scratch or from a brand template using CANVA_CREATE_CANVA_DESIGN_WITH_OPTIONAL_ASSET
- Scenario 3: Upload images or files to Canva for use in designs with CANVA_CREATE_ASSET_UPLOAD_JOB and CANVA_FETCH_ASSET_UPLOAD_JOB_STATUS
- Scenario 4: Export a Canva design to PDF, PNG, or other formats using CANVA_CREATE_CANVA_DESIGN_EXPORT_JOB and CANVA_GET_DESIGN_EXPORT_JOB_RESULT
- Scenario 5: Access and apply user specific brand templates with CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST
Quick Start
- Step 1: Add https://rube.app/mcp as an MCP server in your client configuration (no API keys required)
- Step 2: Verify RUBE_SEARCH_TOOLS responds and establish Canva connection via RUBE_MANAGE_CONNECTIONS with toolkit canva
- Step 3: Run core workflows such as CANVA_LIST_USER_DESIGNS, CANVA_CREATE_CANVA_DESIGN_WITH_OPTIONAL_ASSET, CANVA_CREATE_ASSET_UPLOAD_JOB, and CANVA_GET_DESIGN_EXPORT_JOB_RESULT as needed
Best Practices
- Always call RUBE_SEARCH_TOOLS first to get current tool schemas
- Verify the Canva connection status is ACTIVE before running workflows
- Ensure design_type exactly matches Canva predefined types
- Poll asset upload status until success for asynchronous uploads
- Use continuation tokens when listing designs to handle pagination
Example Use Cases
- A designer browses the Canva library to select a poster for editing
- A designer creates a new social media post from a brand template and adds assets
- A batch of product images is uploaded and linked into an ongoing design workflow
- A finished brochure is exported as a high quality PDF for print production
- Brand templates are retrieved and applied to ensure consistent branding across campaigns
Frequently Asked Questions
Related Skills
ab-test-setup
ranbot-ai/awesome-skills
Structured guide for setting up A/B tests with mandatory gates for hypothesis, metrics, and execution readiness.
Database Design Expert
martinholovsky/claude-skills-generator
Expert in database schema design with focus on normalization, indexing strategies, FTS optimization, and performance-oriented architecture for desktop applications
web-artifacts-builder
anthropics/skills
Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state management, routing, or shadcn/ui components - not for simple single-file HTML/JSX artifacts.
figma-automation
davepoon/buildwithclaude
Automate Figma tasks via Rube MCP (Composio): files, components, design tokens, comments, exports. Always search tools first for current schemas.
miro-automation
davepoon/buildwithclaude
Automate Miro tasks via Rube MCP (Composio): boards, items, sticky notes, frames, sharing, connectors. Always search tools first for current schemas.
architect
aiskillstore/marketplace
Design systems, plan implementations, review architecture decisions - Use when you need to plan a complex feature, design system architecture, or make high-level technical decisions.