canva-implement-feedback

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Feedback to Finished

从反馈到成品

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.
演示文稿已发出待评审,利益相关者在幻灯片各处留下了评论。该技能会读取每一条评论线程,总结评审者的实际需求,直接完成明确的修改,并标记所有歧义内容等待人工决策。

Canva Editing API — What You Can and Cannot Do

Canva Editing API — 支持与不支持的操作

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.
在对反馈进行分类处理前,你必须了解这些限制,避免在API无法实现的修改上浪费时间与用户反复沟通。

What the API CAN do (via
perform-editing-operations
)

API 支持的操作(通过
perform-editing-operations
调用)

  • Text content: replace entire text elements (
    replace_text
    ), find-and-replace substrings (
    find_and_replace_text
    )
  • Text formatting: font size, font weight (bold), font style (italic), text color, text alignment, line height, text decoration (underline), strikethrough, links, list formatting
  • Media: replace images/videos (
    update_fill
    ), insert new images/videos (
    insert_fill
    ), delete elements (
    delete_element
    )
  • Layout: reposition elements (
    position_element
    ), resize elements (
    resize_element
    )
  • Metadata: update design title (
    update_title
    )
  • 文本内容:替换整个文本元素(
    replace_text
    )、查找并替换子字符串(
    find_and_replace_text
  • 文本格式:字体大小、字体粗细(粗体)、字体样式(斜体)、文本颜色、文本对齐方式、行高、文本装饰(下划线)、删除线、链接、列表格式
  • 媒体内容:替换图片/视频(
    update_fill
    )、插入新的图片/视频(
    insert_fill
    )、删除元素(
    delete_element
  • 布局:调整元素位置(
    position_element
    )、调整元素大小(
    resize_element
  • 元数据:更新设计标题(
    update_title

What the API CANNOT do

API 不支持的操作

  • Change font family/typeface — only size, weight, and style are supported
  • Add new text elements — you can only insert media (images/videos), not new text boxes
  • Change background colors or gradients
  • Add, remove, or reorder pages/slides
  • Modify animations or transitions
  • Change element opacity (except on newly inserted fills)
  • Group/ungroup elements
  • Modify shapes (color, border, etc.) — only text within shapes can be edited
  • 修改字体家族/字体类型——仅支持修改大小、粗细和样式
  • 新增文本元素——仅支持插入媒体(图片/视频),无法新增文本框
  • 修改背景色或渐变
  • 添加、删除或重新排序页面/幻灯片
  • 修改动画或转场效果
  • 修改元素不透明度(新插入的填充元素除外)
  • 对元素进行分组/取消分组
  • 修改形状(颜色、边框等)——仅形状内的文本可编辑

Triage rule

分类规则

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).
当评论请求的内容属于“不支持操作”列表时,将其归类为需要手动操作。不要纠结于限制,只需在总结中注明即可继续处理,这类情况十分常见,大多数设计评审都会同时包含API支持的修改和手动修改,相关详情可以留在最后的手动修改清单中统一说明(步骤7)。

Workflow

工作流

Step 1: Resolve the Design

步骤1:解析设计信息

  • If the user provides a short link (
    canva.link
    ), call
    Canva:resolve-shortlink
    to get the design URL
  • If the user provides a full Canva URL, extract the design ID from the URL
  • Otherwise ask for the design ID or link
  • 如果用户提供了短链接(
    canva.link
    ),调用
    Canva:resolve-shortlink
    获取设计URL
  • 如果用户提供了完整的Canva URL,从URL中提取设计ID
  • 否则请求用户提供设计ID或链接

Step 2: Read All Feedback

步骤2:读取所有反馈

  • Call
    Canva:list-comments
    with the design ID to get every comment thread
  • For each thread with replies, call
    Canva:list-replies
    to capture the full conversation
  • Call
    Canva:get-design-content
    to read the current text on every page
  • 传入设计ID调用
    Canva:list-comments
    获取所有评论线程
  • 针对有回复的线程,调用
    Canva:list-replies
    获取完整对话内容
  • 调用
    Canva:get-design-content
    读取每一页当前的文本内容

Step 3: Triage the Feedback

步骤3:反馈分类处理

Classify each comment thread into one of these categories:
  • Actionable — a change that the API supports and you can reasonably interpret. Use your best judgement — if a comment says "make the title punchier", rewrite it to be punchier rather than flagging it as ambiguous. If a comment says "fix the spacing", look at the design content and make a reasonable adjustment. Only escalate to the user when you genuinely cannot determine what the reviewer intends (e.g., two reviewers directly contradict each other, or a comment references something you can't find in the design).
  • Requires manual action — the reviewer wants something the API cannot do (font family change, new text element, background change, page reorder, etc.). Note these briefly in the summary — full details go in the manual changes checklist (Step 7).
  • Resolved — already addressed, explicitly marked done, or is a positive acknowledgement (e.g., "LGTM", "looks good")
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.
将每个评论线程归类为以下类别之一:
  • 可执行:API支持且你可以合理解读的修改要求。请做出最佳判断——如果评论说“让标题更有冲击力”,直接重写标题使其更有冲击力,不要将其标记为歧义内容。如果评论说“调整间距”,查看设计内容后做出合理调整。只有当你完全无法确定评审者的意图时才需要向用户确认(例如:两位评审者的要求直接矛盾,或者评论提及的内容你在设计中找不到)。
  • 需要手动操作:评审者的需求是API无法实现的(修改字体家族、新增文本元素、修改背景、重新排序页面等)。在总结中简要注明这些内容,详情写入手动修改清单(步骤7)。
  • 已解决:需求已经处理、明确标记为已完成,或者是正面反馈(例如:“LGTM”、“看起来不错”)
按类别向用户呈现总结:你计划修改的内容、需要澄清的内容、必须手动完成的内容,以及你将跳过的内容。

Step 4: Get User Approval — ONE time only

步骤4:获取用户审批——仅需一次

  • Present the plan and wait for the user to approve
  • If the user wants adjustments, update the plan and confirm once more
This is the only confirmation point in the entire workflow. Once the user says yes, go.
  • 呈现修改计划,等待用户审批
  • 如果用户需要调整,更新计划后再次确认
这是整个工作流中唯一的确认节点,用户同意后即可直接执行。

Step 5: Apply and Commit the Changes

步骤5:应用并提交修改

Do NOT ask the user again. They already approved. Execute all of these in sequence immediately:
  • Call
    Canva:start-editing-transaction
    to begin an editing session
  • Call
    Canva:perform-editing-operations
    to make each approved change (batch all operations in a single call where possible)
  • Call
    Canva:commit-editing-transaction
    to save — do NOT ask "shall I commit?" or "ready to save?"
  • Show the thumbnail from the editing response to the user as confirmation
无需再次询问用户,他们已经审批通过,请立即按顺序执行以下所有操作:
  • 调用
    Canva:start-editing-transaction
    启动编辑会话
  • 调用
    Canva:perform-editing-operations
    执行每一个已审批的修改(尽可能将所有操作批量合并到单次调用中)
  • 调用
    Canva:commit-editing-transaction
    保存修改——不要询问“我可以提交吗?”或者“准备好保存了吗?”
  • 向用户展示编辑响应返回的缩略图作为确认

Step 7: Present Remaining Manual Changes

步骤7:呈现剩余的手动修改

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:
undefined
提交修改后(如果没有API支持的可修改内容也可直接执行),呈现清晰的清单,列出所有仍需要在Canva编辑器中手动完成的内容:
undefined

Changes to make manually in Canva

需要在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.
  1. 幻灯片3 — 将标题字体改为Montserrat 评审者:@Sarah | 原因:API不支持修改字体家族 → 打开幻灯片3,选中标题,将字体改为Montserrat
  2. 幻灯片7 — 新增免责声明文本框 评审者:@James | 原因:API不支持新增文本元素 → 在图表下方添加文本框,内容为:"来源:2025年第三季度内部数据"
  3. ...

请包含幻灯片编号、修改内容、请求人,以及分步操作说明,方便用户快速完成清单内容。

Step 8: Resolve Comment Threads

步骤8:处理评论线程

  • After committing, call
    Canva:reply-to-comment
    on each actionable thread to note what was changed
  • For "Requires manual action" threads, reply noting what was done as the closest alternative and what still needs manual attention
  • This closes the feedback loop so reviewers can see their comments were addressed
  • 提交修改后,对每个可执行的评论线程调用
    Canva:reply-to-comment
    ,说明已完成的修改内容
  • 对于“需要手动操作”的线程,回复说明已完成的最接近的替代方案,以及仍需要手动处理的内容
  • 这样可以形成完整的反馈闭环,让评审者看到他们的评论已被处理

Rules

规则

  • Be helpful, not cautious — interpret feedback generously and make your best attempt at a change rather than labelling it "ambiguous" and giving up. The user can always reject your changes in the approval step.
  • Only escalate to the user when you genuinely can't figure out the intent — two reviewers directly contradict each other, or a comment references something you can't find in the design
  • When reviewers disagree, present both sides and let the user decide
  • Show the summary of planned changes and wait for approval ONCE — after that, execute everything without further confirmation
  • NEVER ask "shall I commit?", "ready to save?", or any variation — the user's initial approval covers the entire edit-and-commit flow
  • Manual changes are normal and expected — don't over-explain or apologise for API limitations, just include them in the checklist
  • Batch operations: use a single
    perform-editing-operations
    call with multiple operations rather than one call per change
  • 要提供帮助,不要过于谨慎:充分解读反馈,尽最大尝试完成修改,不要直接标记为“歧义”就放弃,用户随时可以在审批步骤拒绝你的修改
  • 只有当你完全无法确定意图时才需要向用户升级反馈——两位评审者要求直接矛盾,或者评论提及的内容你在设计中找不到
  • 当评审者意见不一致时,呈现双方观点让用户决策
  • 仅展示一次计划修改的总结并等待审批——之后无需额外确认即可执行所有操作
  • 绝对不要询问“我可以提交吗?”、“准备好保存了吗?”或任何类似问题——用户的初始审批已经覆盖了整个编辑和提交流程
  • 手动修改是正常且可预期的——不要过度解释或为API的限制道歉,只需将其列入清单即可
  • 批量操作:使用单个
    perform-editing-operations
    调用执行多个操作,不要每次修改单独调用