From canva
Reads all Canva design comment threads, synthesizes reviewer feedback, applies supported changes via the Canva API, and flags ambiguous or unsupported requests for manual resolution.
How this skill is triggered — by the user, by Claude, or both
Slash command
/canva:implement-feedbackThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
A deck has been out for review — stakeholders have left comments scattered across slides. This skill reads every thread, summarises what reviewers actually want, makes the clear-cut changes directly, and flags anything ambiguous for a human decision.
A deck has been out for review — stakeholders have left comments scattered across slides. This skill reads every thread, summarises what reviewers actually want, makes the clear-cut changes directly, and flags anything ambiguous for a human decision.
Before triaging feedback, you MUST know these constraints. This avoids wasted back-and-forth with the user on changes that are impossible via the API.
perform-editing-operations)replace_text), find-and-replace substrings (find_and_replace_text)update_fill), insert new images/videos (insert_fill), delete elements (delete_element)position_element), resize elements (resize_element)update_title)When a comment requests something in the "CANNOT do" list, classify it as Requires manual action. Don't dwell on the limitation — simply note it in the summary and move on. These are normal; most design reviews will have a mix of API-supported and manual changes. Save the details for the manual changes checklist at the end (Step 7).
canva.link), call Canva:resolve-shortlink to get the design URLD, e.g. DABcd1234ef), use it as design_id; do not use Canva:search-designs for a raw IDCanva:list-comments with the design ID to get every comment threadCanva:list-replies to capture the full conversationCanva:get-design-content to read the current text on every pageClassify each comment thread into one of these categories:
Present a summary to the user organised by category: what you plan to change, what needs clarification, what must be done manually, and what you're skipping.
This is the only confirmation point in the entire workflow. Once the user says yes, go.
Do NOT ask the user again. They already approved. Execute all of these in sequence immediately:
Canva:start-editing-transaction to begin an editing sessionCanva:perform-editing-operations to make each approved change (batch all operations in a single call where possible)Canva:commit-editing-transaction to save — do NOT ask "shall I commit?" or "ready to save?"After committing (or if no API-supported changes were possible), present a clear checklist of everything that still needs to be done manually in the Canva editor:
## Changes to make manually in Canva
1. **Slide 3 — Change heading font to Montserrat**
Reviewer: @Sarah | Why: API cannot change font family
→ Open slide 3, select the heading, change font to Montserrat
2. **Slide 7 — Add a new text box for the disclaimer**
Reviewer: @James | Why: API cannot add new text elements
→ Add a text box below the chart with: "Source: Q3 2025 internal data"
3. ...
Include the slide number, what to change, who requested it, and step-by-step instructions so the user can work through the list quickly.
Canva:reply-to-comment on each actionable thread to note what was changedperform-editing-operations call with multiple operations rather than one call per changenpx claudepluginhub canva-sdks/canva-claude-skills --plugin canvaEdits existing Canva designs: change/fix text, replace/insert/delete media, reformat text style, reposition/resize elements, update title. Use when user wants to modify a specific Canva design.
Creates Canva designs via Connect REST API, redirects for user editing, fetches metadata, and exports as PDF/PNG/JPG. For programmatic design workflows and app integrations.
Automates Canva tasks like listing designs, creating from brand templates, uploading assets, and exports via Composio toolkit and Rube MCP. Useful for design automation workflows.