Canva デザインのテンプレート(ブランド統一されたひな形)にある自動入力フィールドを活用して、表形式のデータから大量にデザインを作成します。データの1行ごとに1つのデザインが生成されます。 次のような場合に使用: - 「このCSVからまとめてデザインを作成したい」 - 「1行ごとに1つのデザインを生成する」 - 「商品ごとにデザインを作成する」 - 「テンプレートから一括生成する」 - 「スプレッドシートのデータをテンプレートに自動入力する」 対応するデータ形式: アップロードしたファイル、貼り付けた表、JSON、URLなど、あらゆる表形式のデータ源に対応しています。
Bulk-create Canva designs from tabular data using a brand template with autofill fields, producing one design per row. Use when users say "bulk create designs from this CSV", "generate one design per row", "create a design for each product", "batch generate from a template", or "autofill a template from a spreadsheet". Accepts any tabular data source — uploaded files, pasted tables, JSON, or URLs.
データタグを使ってブランドテンプレートに自動入力し、データの1行につき1つのCanvaデザインを作成します。
ユーザーが提供するあらゆる形式のデータを受け取り、列名付きの行リストとして抽出します:
データがまだ提供されていない場合は、ユーザーが都合のよい形式で共有するよう案内してください。
解析後、ユーザーに以下を表示します:
ユーザーがテンプレートを指定していない場合は、自動入力対応のテンプレートを検索します:
Canva:search-brand-templates dataset=non_empty
結果を表示し、ユーザーに選択を求めます。すでにテンプレート名や説明が指定されている場合は、その内容でクエリを実行してください。
Canva:get-brand-template-dataset template_id=<selected_id>
このAPIは、テンプレートが必要とするフィールド名とフィールドタイプ(text・image・chart)を返します。
以下のようなマッピングテーブルをユーザーに提示します:
| テンプレートフィールド | タイプ | 対応するCSV列 | 備考 |
|---|---|---|---|
product_name |
text | Product Name |
自動マッチ |
price |
text | Price |
自動マッチ |
hero_image |
image | (なし) | 一致なし — imageフィールドにはアセットIDが必要 |
マッチングルール:
マッピングされていないフィールドや曖昧なマッチがある場合は特に注意し、処理を進める前にユーザーにマッピング内容を確認してください。
CSVからimageタイプのテンプレートフィールドに画像を提供する方法は2通りあります:
パターンA — CSVにCanvaアセットID列がある場合(例: image_asset_id):
アセットIDの値を autofill-design の呼び出しで直接使用します:
{ "image": { "type": "image", "asset_id": "<CSVの列から取得した値>" } }
パターンB — CSVに画像URL列がある場合(例: image_url):
URLを autofill-design に直接渡すことはできません。
まず Canva:upload-asset-from-url を使って各URLをCanvaにアップロードし、返されたアセットIDを取得してから autofill の呼び出しで使用します。
アップロードは該当行のデザイン作成直前に行い、エラーが発生しても他の行に影響しないようにしてください。
パターンC — CSVに画像列がない場合:
imageフィールドをスキップする(テンプレートのデフォルト画像を使用する)か、処理を中断するかをユーザーに確認します。
スキップは安全な選択肢です — data ペイロードからimageキーを省略するだけでかまいません。
すべてのCSV行をループし、各行に対して Canva:autofill-design を呼び出します。
API にはレート制限がある可能性があり、逐次実行の方がデバッグも容易なため、すべてを同時に呼び出すのではなく、順番に1件ずつ呼び出してください。
各行の処理手順:
Canva:upload-asset-from-url を呼び出してCanvaアセットIDを取得する。data ペイロードを構築する:{
"text_field_name": { "type": "text", "text": "<CSVの値>" },
"image_field_name": { "type": "image", "asset_id": "<アセットID>" }
}
"Bulk Design - Row 3 - <識別子>")を指定して Canva:autofill-design を呼び出す。処理中は以下のように結果を随時記録します:
Row 1 / 50: 作成完了 — <design_url>
Row 2 / 50: 作成完了 — <design_url>
Row 3 / 50: 失敗 — <error>
すべての行の処理が完了したら、以下を要約します:
row・status・design_url・error の列を含むサマリーCSVの保存を提案します。
get-brand-template-dataset から取得したキーを正確に使用してください。Create one Canva design per row of data by autofilling a brand template with data tags.
Accept data in any form the user provides and extract a list of rows with named columns:
If no data has been provided, ask the user to share it in whatever format is convenient for them.
Once parsed, show the user:
If the user hasn't specified a template, search for autofill-capable ones:
Canva:search-brand-templates dataset=non_empty
Show the results and ask the user to pick one. If they already named or described a template, search with that query.
Canva:get-brand-template-dataset template_id=<selected_id>
This returns the field names and types (text, image, chart) that the template expects.
Present a mapping table to the user:
| Template Field | Type | Matched CSV Column | Notes |
|---|---|---|---|
product_name |
text | Product Name |
auto-matched |
price |
text | Price |
auto-matched |
hero_image |
image | (none) | no match — image fields need asset IDs |
Matching rules:
Confirm the mapping with the user before proceeding, especially if there are unmapped fields or ambiguous matches.
There are two ways a CSV can supply images for image-type template fields:
Pattern A — CSV has a Canva asset ID column (e.g. image_asset_id):
Use the asset ID value directly in the autofill-design call:
{ "image": { "type": "image", "asset_id": "<value from CSV column>" } }
Pattern B — CSV has an image URL column (e.g. image_url):
URLs cannot be passed directly to autofill-design. Upload each URL to Canva first using Canva:upload-asset-from-url, capture the returned asset ID, then use it in the autofill call. Do the upload immediately before creating that row's design so failures stay localised.
Pattern C — No image column in CSV:
Ask the user whether to skip the image field (template default image stays) or abort. Skipping is safe — just omit the image key from the data payload entirely.
Loop through every CSV row and call Canva:autofill-design for each one. Call them sequentially, not all at once — the API may have rate limits and sequential calls are easier to debug.
For each row:
Canva:upload-asset-from-url to get a Canva asset ID.data payload from the confirmed field mapping:{
"text_field_name": { "type": "text", "text": "<value from CSV>" },
"image_field_name": { "type": "image", "asset_id": "<asset ID>" }
}
Canva:autofill-design with the template ID, data payload, and a descriptive title using the row number or a meaningful column value (e.g. "Bulk Design - Row 3 - <identifier>").Track results as you go:
Row 1 / 50: Created — <design_url>
Row 2 / 50: Created — <design_url>
Row 3 / 50: Failed — <error>
After all rows are processed, summarise:
Offer to save a summary CSV with columns: row, status, design_url, error.
get-brand-template-dataset.原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。