关于 canva-bulk-create
canva-bulk-create 根据表格数据和品牌模板,为每行生成一个 Canva 设计。适合需要批量制作可编辑品牌素材的用户,并提供字段映射、逐行处理和结果汇总流程。
主要功能
- 01解析文件、粘贴内容或 URL 中的表格数据
- 02搜索并检查品牌模板字段
- 03将列映射到模板字段
- 04逐行创建并记录设计结果
- 05处理图片资源并汇总失败原因
适用场景
- 01用产品表生成一组品牌设计
- 02把图片 URL 上传为 Canva 资源后填入模板
- 03预览字段匹配并确认批量创建
- 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_name | text | Product Name | 自动匹配 |
price | text | Price | 自动匹配 |
hero_image | image | (无) | 未匹配 — 图像字段需要资源 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 可能有限流,按顺序调用也更便于调试。
对于每一行:
- 如果该行包含图像 URL 列(模式 B),先调用
Canva:upload-asset-from-url获取 Canva 资源 ID。 - 根据已确认的字段映射构建
data负载:
{
"text_field_name": { "type": "text", "text": "<value from CSV>" },
"image_field_name": { "type": "image", "asset_id": "<asset ID>" }
}
- 使用模板 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 设计,用户可以在自己的账户中继续编辑。