---
name: canva-bulk-create
description: "Generate hundreds of Canva designs from a CSV — bulk create data, naming, and template-field mapping. Operationalizes Canva's Bulk Create: structures your data into the CSV Canva expects, maps each column to a template field, handles image URLs, and plans the batch so you generate hundreds of personalized designs (certificates, product cards, quote graphics, name badges) in one run."
license: MIT
---

# Canva Bulk Create

Canva Bulk Create lets you generate many designs at once from a single source of data. This skill takes a spreadsheet of records and turns it into a Canva-ready CSV, maps each column to a connected field in your template, and plans the run so a 600-row file produces 600 finished designs. It's built for marketers, ops teams, educators, and event organizers who repeatedly produce the same layout with different content — certificates, product cards, quote graphics, name badges, social posts.

## When to use it

- You have a roster, product feed, or content calendar and need one design per row.
- You're hand-duplicating a Canva template and editing the same two or three text boxes over and over.
- Your data lives in Google Sheets, Airtable, or an export, and the column names don't match what Canva expects.
- You need product or headshot images pulled in per row from URLs rather than uploaded one by one.

## How it works

Canva's Bulk Create lives inside the editor under **Apps → Bulk Create** (available on Canva Pro / Teams). It works by connecting template elements to named data fields: you select a text or image element, choose **Connect data**, and bind it to a column. This skill prepares everything that feeds that flow:

1. **Shapes your CSV.** Header row becomes the field list; values become per-design content. UTF-8, comma-separated, one row per design.
2. **Maps columns to fields.** Proposes which column connects to which element (e.g. `recipient_name` → the headline text, `course` → subheading).
3. **Handles image columns.** Image fields require direct, publicly reachable URLs ending in a real file extension; the skill validates and flags links that won't resolve.
4. **Plans the batch.** Warns on row counts near plan limits and suggests splitting large files.

After upload you click **Apply** to map fields, then **Continue** to generate every design as pages in one project.

## Usage example

```
curl -fsSL --create-dirs -o ~/.claude/skills/canva-bulk-create/SKILL.md https://claudeskil.com/skills/canva-bulk-create/SKILL.md

# then, in your project:
"Turn roster.xlsx into a Bulk Create CSV. Headline = full name,
 subheading = course title, and pull the seal image from logo_url."
```

Resulting `bulk_create.csv`:

```csv
recipient_name,course,completion_date,logo_url
Ada Lovelace,Intro to Analytics,2026-06-12,https://cdn.example.com/seal.png
Grace Hopper,Advanced SQL,2026-06-12,https://cdn.example.com/seal.png
```

## Tips & gotchas

- **Image fields are different from text fields.** You must connect them as image elements; pasting a URL into a text box just prints the URL.
- **Image URLs must be public and direct.** Google Drive share links and pages behind auth fail silently. Use a CDN or signed direct link.
- **Generation is one-way.** Editing the CSV later won't update already-created designs; re-run to regenerate.
- **Watch row limits.** Free plans cap Bulk Create rows; large runs can also exceed Canva's per-project page count, so split into batches of a few hundred.

## FAQ

**Can I export all designs to PDF or PNG automatically?**
Bulk Create produces multi-page designs; export them together via Share → Download. For per-file automation, the Canva Connect API (Autofill endpoint) is the programmatic route.

**Does it edit my template?**
No. It produces the data file and a mapping plan. Connecting fields and clicking generate happens in the Canva editor.

**What if a row has a missing value?**
The field renders empty for that design. The skill flags blank cells so you can decide before running.
