mcpField
C
canva-bulk-create

canva-bulk-create

github.com/canva-sdks设计与 UI138282 次安装5 天前更新
代码仓库

关于 canva-bulk-create

canva-bulk-create 根据表格数据和品牌模板,为每行生成一个 Canva 设计。适合需要批量制作可编辑品牌素材的用户,并提供字段映射、逐行处理和结果汇总流程。

主要功能

  1. 01解析文件、粘贴内容或 URL 中的表格数据
  2. 02搜索并检查品牌模板字段
  3. 03将列映射到模板字段
  4. 04逐行创建并记录设计结果
  5. 05处理图片资源并汇总失败原因

适用场景

  1. 01用产品表生成一组品牌设计
  2. 02把图片 URL 上传为 Canva 资源后填入模板
  3. 03预览字段匹配并确认批量创建
  4. 04检查批次中成功和失败的行

MCP 相关

该技能通过 Canva 工具搜索模板、检查字段、上传资源并自动填充设计。它按行调用创建操作,并汇总结果。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/canva-sdks/canva-skills --skill canva-bulk-create

安装后在 Claude Code 中输入/canva-bulk-create确认已加载。

详细介绍

Canva 批量创建设计

使用数据标签填充品牌模板,为每行数据创建一个 Canva 设计。

工作流

步骤 1:获取数据

接受用户以任意形式提供的数据,并提取包含命名列的行列表:

  • 上传的文件:读取文件并提取表头和行
  • 粘贴的数据:直接解析聊天中的 Markdown 表格、制表符分隔值或 JSON 数组
  • URL:获取资源并将响应解析为表格数据

如果用户尚未提供数据,请让用户以方便的格式分享数据。

解析完成后,向用户展示:

  • 找到的列标题
  • 行数(= 将创建的设计数量)
  • 前几行的预览
步骤 2:选择品牌模板

如果用户尚未指定模板,搜索支持自动填充的模板:

Canva:search-brand-templates  dataset=non_empty

展示搜索结果并请用户选择一个。如果用户已命名或描述模板,则使用该查询进行搜索。

步骤 3:检查模板架构
Canva:get-brand-template-dataset  template_id=<selected_id>

这会返回模板所需的字段名称和类型(文本、图像、图表)。

步骤 4:将 CSV 列映射到模板字段

向用户展示映射表:

模板字段类型匹配的 CSV 列备注
product_nametextProduct Name自动匹配
pricetextPrice自动匹配
hero_imageimage(无)未匹配 — 图像字段需要资源 ID

匹配规则:

  • 对 CSV 表头和模板字段名称进行不区分大小写的模糊匹配
  • 文本字段可以直接使用 CSV 字符串值填充
  • 图像字段需要 Canva 资源 ID — 请参阅下文的图像字段处理
  • 图表字段需要结构化数据 — 将其视为高级用法,并请用户说明

继续操作前,请与用户确认映射,尤其是在有未映射字段或匹配不明确时。

图像字段处理

CSV 可以通过两种方式为图像类型的模板字段提供图像:

模式 A — CSV 包含 Canva 资源 ID 列(例如 image_asset_id): 在 autofill-design 调用中直接使用资源 ID 值:

{ "image": { "type": "image", "asset_id": "<value from CSV column>" } }

模式 B — CSV 包含图像 URL 列(例如 image_url): URL 不能直接传递给 autofill-design。请先使用 Canva:upload-asset-from-url 将每个 URL 上传到 Canva,获取返回的资源 ID,然后在自动填充调用中使用该 ID。应在创建对应行的设计前立即上传,这样失败的影响范围更小。

模式 C — CSV 中没有图像列: 询问用户是要跳过图像字段(保留模板默认图像),还是中止操作。跳过是安全的 — 只需从 data 负载中完全省略图像键。

步骤 5:批量创建 — 每行创建一个设计

遍历每行 CSV 数据,并为每行调用一次 Canva:autofill-design。请按顺序调用,不要一次性全部调用 — API 可能有限流,按顺序调用也更便于调试。

对于每一行:

  1. 如果该行包含图像 URL 列(模式 B),先调用 Canva:upload-asset-from-url 获取 Canva 资源 ID。
  2. 根据已确认的字段映射构建 data 负载:
{
  "text_field_name": { "type": "text", "text": "<value from CSV>" },
  "image_field_name": { "type": "image", "asset_id": "<asset ID>" }
}
  1. 使用模板 ID、数据负载和描述性标题调用 Canva:autofill-design,标题中应包含行号或有意义的列值(例如 "Bulk Design - Row 3 - <identifier>")。

在执行过程中跟踪结果:

Row 1 / 50: Created — <design_url>
Row 2 / 50: Created — <design_url>
Row 3 / 50: Failed — <error>
步骤 6:报告结果

处理完所有行后,总结:

  • 尝试处理的总行数
  • 成功项(附链接)
  • 失败项(附行号和原因)

询问用户是否要保存包含以下列的汇总 CSV:row、status、design_url、error。

备注

  • 自动填充需要 Canva Enterprise 计划。
  • 对于大型 CSV(50 行以上),请提前告知用户这需要发起 N 次 API 调用,可能需要一段时间。提供先对前 3 行进行测试,然后再处理整个批次的选项。
  • 如果部分行失败,请继续处理其余行,不要中止整个批次。
  • 跳过所有映射字段都为空的行,并提醒用户。
  • 如果没有 CSV 列与必填模板字段匹配,请询问用户要使用哪一列,或是否跳过该字段。
  • API 中的模板字段名称区分大小写,请使用 get-brand-template-dataset 返回的准确键名。
  • 批量创建无法撤销,开始大批量操作前请提醒用户。
  • 通过这种方式创建的设计是完整的 Canva 设计,用户可以在自己的账户中继续编辑。

评论

支持 Markdown