Agent skill

Canva Bulk Create

by canva-sdks in canva-sdks/canva-skills

Bulk-create Canva designs from tabular data using a brand template with autofill fields, producing one design per row.

Apache-2.0Auto-check passedDocuments & Office

Install Canva Bulk Create

skills CLI
$ npx skills add canva-sdks/canva-skills --skill canva-bulk-create -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install canva-sdks/canva-skills canva-bulk-create --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/canva-sdks/canva-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/canva/skills/bulk-create .claude/skills/canva-bulk-create && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
canva-bulk-create
GitHub stars
115
Token cost
~1.3k tokens
SKILL.md length
688 words
Files
1
Skills in repo
10
Repo updated
First seen
Licence
Apache-2.0

At a glance

Bulk-create Canva designs from tabular data using a brand template with autofill fields, producing one design per row.

  • Works in 6 steps: Get the Data → Select the Brand Template → Inspect the Template Schema → …
  • Users say bulk create designs from this CSV
  • SKILL.md covers Workflow and Notes
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Canva Bulk Create is an agent skill from canva-sdks/canva-skills. 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.

Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Documents & Office, covering CSV and tabular files and Excel spreadsheets. It works with Canva. The repository describes itself as: Ready-to-use Canva Skills that improve creative workflows using the Canva Connector. The licence is Apache-2.0.

When your agent uses it

  • Users say bulk create designs from this CSV
  • Generate one design per row
  • Create a design for each product
  • Batch generate from a template

Example prompts

  • “bulk create designs from this CSV”
  • “generate one design per row”
  • “create a design for each product”
  • “/canva-bulk-create”

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Get the Data
  2. Select the Brand Template
  3. Inspect the Template Schema
  4. Map CSV Columns to Template Fields
  5. Bulk Create — One Design per Row
  6. Report Results

What it can do on your machine

Read from SKILL.md and the folder at commit b56291e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are json).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Canva Bulk Create loads about 1.3k tokens when it runs. Until then it costs about 105 tokens; SKILL.md has 688 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~105
When it runs · the whole SKILL.md, loaded when a task matches
~1.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from canva-sdks/canva-skills at commit b56291e, republished under its Apache-2.0 licence (© canva-sdks). 688 words, ~1,320 tokens.

Download SKILL.mdSave it as .claude/skills/canva-bulk-create/SKILL.md (or your agent's skills folder).
name
canva-bulk-create
description
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.

Canva Bulk Design Creation

Create one Canva design per row of data by autofilling a brand template with data tags.

Workflow

Step 1: Get the Data

Accept data in any form the user provides and extract a list of rows with named columns:

  • Uploaded file: read the file and extract headers and rows
  • Pasted data: parse markdown tables, tab-separated values, or JSON arrays directly from the chat
  • URL: fetch the resource and parse the response as tabular data

If no data has been provided, ask the user to share it in whatever format is convenient for them.

Once parsed, show the user:

  • Column headers found
  • Number of rows (= number of designs that will be created)
  • A preview of the first few rows
Step 2: Select the Brand Template

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.

Step 3: Inspect the Template Schema
Canva:get-brand-template-dataset  template_id=<selected_id>

This returns the field names and types (text, image, chart) that the template expects.

Step 4: Map CSV Columns to Template Fields

Present a mapping table to the user:

Template FieldTypeMatched CSV ColumnNotes
product_nametextProduct Nameauto-matched
pricetextPriceauto-matched
hero_imageimage(none)no match — image fields need asset IDs

Matching rules:

  • Do case-insensitive, fuzzy matching between CSV headers and template field names
  • Text fields can be filled directly from CSV string values
  • Image fields require a Canva asset ID — see Image Field Handling below
  • Chart fields require structured data — treat as advanced and ask the user for clarification

Confirm the mapping with the user before proceeding, especially if there are unmapped fields or ambiguous matches.

Image Field Handling

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:

json
{ "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.

Show full SKILL.md (278 more words)Show less
Step 5: Bulk Create — One Design per Row

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:

  1. If the row has an image URL column (Pattern B), first call Canva:upload-asset-from-url to get a Canva asset ID.
  2. Build the data payload from the confirmed field mapping:
json
{
  "text_field_name": { "type": "text", "text": "<value from CSV>" },
  "image_field_name": { "type": "image", "asset_id": "<asset ID>" }
}
  1. Call 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>
Step 6: Report Results

After all rows are processed, summarise:

  • Total rows attempted
  • Successes (with links)
  • Failures (with row number and reason)

Offer to save a summary CSV with columns: row, status, design_url, error.

Notes

  • Autofill requires a Canva Enterprise plan.
  • For large CSVs (50+ rows), warn the user upfront that this will make N API calls and may take a while. Offer to do a test run on the first 3 rows before proceeding with the full batch.
  • If some rows fail, continue with the rest — don't abort the whole batch.
  • Skip rows where all mapped fields are empty and warn the user about them.
  • If no CSV column matches a required template field, ask the user to confirm which column to use or whether to skip that field.
  • Template field names are case-sensitive in the API — use the exact keys from get-brand-template-dataset.
  • There is no "undo bulk create" — warn the user before starting large runs.
  • Designs created this way are full Canva designs the user can further edit in their account.

© canva-sdks, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in plugins/canva/skills/bulk-create of canva-sdks/canva-skills.

Open the folder on GitHubat commit b56291e

Compare with similar skills

Canva Bulk Create next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Canva Bulk Create compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Canva Bulk Create this skillcanva-sdks/canva-skills115—~1.3kAutomated safety check: PassApache-2.0
Data Table Managern8n-io/n8n207k—~2.3kAutomated safety check: PassCustom licence
Instrument Data To Allotropeaws-samples/amazon-bedrock-agents-healthcare-lifesciences2742 repos~2.7kAutomated safety check: PassApache-2.0
Markitshift-labs-ai/markit1.3k—~299Automated safety check: PassMIT
Convert Fileduckdb/duckdb-skills6001 repos~720Automated safety check: NotesMIT
Research Integrity Auditxuzhougeng/wisp-science1k—~2.6kAutomated safety check: PassAGPL-3.0

Similar skills

  • Official

    Load before calling data-tables or parse-file. An agent skill from n8n-io/n8n.

    207k GitHub stars~2.3k tokensUpdated today
    Documents & OfficeAuto-check passed
  • Instrument Data To Allotrope

    aws-samples/amazon-bedrock-agents-healthcare-lifesciences

    Official

    Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV.

    274 GitHub starsUsed in 2 repos~2.7k tokens
    Documents & OfficeAuto-check passed
  • Markit

    shift-labs-ai/markit

    Convert files and URLs to Markdown. An agent skill from shift-labs-ai/markit.

    1.3k GitHub stars~299 tokensUpdated 1 mo ago
    Documents & OfficeAuto-check passed
  • Convert File

    duckdb/duckdb-skills

    Official

    Convert any data file to another format: CSV, Parquet, JSON, Excel, GeoJSON, and more.

    600 GitHub starsUsed in 1 repo~720 tokens
    Documents & OfficeAuto-check: notes
  • Research Integrity Audit

    xuzhougeng/wisp-science

    学术审查 / research-integrity screening of a manuscript's figures and reported numbers.

    1k GitHub stars~2.6k tokensUpdated today
    Documents & OfficeAuto-check passed
  • Jmh Benchmark Compare

    eclipse-rdf4j/rdf4j

    Parse JMH result text by finding the first header line that starts with Benchmark and contains Mode and Score, build a structured table for all columns/rows, compare overlapping benchmarks across 2+…

    420 GitHub stars~804 tokensUpdated today
    Documents & OfficeAuto-check passed

More from canva-sdks/canva-skills

All 10 skills in this repo
  • Canva Brand Check

    canva-sdks/canva-skills

    Check a Canva design against a brand kit and report where it diverges — off-palette colors, non-brand fonts, logo misuse, and off-tone copy.

    115 GitHub stars~1.3k tokensUpdated 3 mo ago
    Auto-check passed
  • Canva Design Feedback

    canva-sdks/canva-skills

    Read a Canva design and return structured, actionable design feedback — visual hierarchy, copy/messaging, layout & spacing, consistency, readability, and accessibility.

    115 GitHub stars~1.2k tokensUpdated 3 mo ago
    Auto-check passed
  • Canva Implement Feedback

    canva-sdks/canva-skills

    Implement reviewer feedback on a Canva design. An agent skill from canva-sdks/canva-skills.

    115 GitHub stars~1.8k tokensUpdated 3 mo ago
    Auto-check passed
  • Canva Resize For Social Media

    canva-sdks/canva-skills

    Resize a Canva design into multiple social media formats (Facebook post, Facebook story, Instagram post, Instagram story, LinkedIn post).

    115 GitHub stars~1.5k tokensUpdated 3 mo ago
    Auto-check passed
  • Canva Translate Design

    canva-sdks/canva-skills

    Translate all text in a Canva design to another language, creating a translated copy.

    115 GitHub stars~711 tokensUpdated 3 mo ago
    Auto-check passed
  • Canva Branded Presentation

    canva-sdks/canva-skills

    Create on-brand Canva presentations from an outline or brief.

    115 GitHub stars~770 tokensUpdated 3 mo ago
    Auto-check passed

Works with

Questions about Canva Bulk Create

What does Canva Bulk Create do?

Bulk-create Canva designs from tabular data using a brand template with autofill fields, producing one design per row. Canva Bulk Create is an agent skill from canva-sdks/canva-skills. Bulk-create Canva designs from tabular data using a brand template with autofill fields, producing one design per row.

When should I use Canva Bulk Create?

Canva Bulk Create fits situations like: users say bulk create designs from this CSV; generate one design per row; create a design for each product; batch generate from a template.

How do I install Canva Bulk Create in Claude Code?

Run `npx skills add canva-sdks/canva-skills --skill canva-bulk-create -a claude-code`. Or copy the skill folder (plugins/canva/skills/bulk-create in canva-sdks/canva-skills) into .claude/skills/canva-bulk-create in your project. Claude Code loads it when a task matches its description.

How do I install Canva Bulk Create in Codex?

Run `npx skills add canva-sdks/canva-skills --skill canva-bulk-create -a codex`. Or copy the skill folder (plugins/canva/skills/bulk-create in canva-sdks/canva-skills) into .agents/skills/canva-bulk-create in your project. Codex loads it when a task matches its description.

Can I use Canva Bulk Create in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add canva-sdks/canva-skills --skill canva-bulk-create -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/canva-bulk-create, .gemini/skills/canva-bulk-create, .github/skills/canva-bulk-create and .opencode/skills/canva-bulk-create in your project.

What does Canva Bulk Create need to run?

SKILL.md names no scripts, command-line tools or credentials: Canva Bulk Create is instructions for the agent only.

Does Canva Bulk Create access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Canva Bulk Create safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Canva Bulk Create use?

Canva Bulk Create is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Canva Bulk Create use?

About 1.3k tokens (SKILL.md is roughly 5.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Canva Bulk Create?

Skills that share tags, products or a category with Canva Bulk Create: Data Table Manager (n8n-io/n8n, 207k stars), Instrument Data To Allotrope (aws-samples/amazon-bedrock-agents-healthcare-lifesciences, 274 stars), Markit (shift-labs-ai/markit, 1.3k stars) and Convert File (duckdb/duckdb-skills, 600 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Canva Bulk Create?

canva-sdks (a GitHub organization) maintains it in canva-sdks/canva-skills, which has 115 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on June 30, 2026.

Source: canva-sdks/canva-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.