Skip to content
cccskills
FreePublished on GitHub

canva-bulk-create

Create one editable Canva design per data row using a brand template with autofill fields. Map columns from files, pasted tables, JSON, or URLs to text and image fields, then receive design links and failure details.

OriginalShow the original 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.

Works withCanva
See how to install

Good for

  • Create a design for each product
  • Generate designs from CSV rows
  • Fill templates with text and image URLs
  • Review batch results and failed rows

Files included (1)

  • SKILL.md5.2 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

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:

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

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

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Review charts, diagrams, and dashboards for accessibility, including color contrast, keyboard access, and text alternatives. Get specific guidance for preserving key findings in screen readers, static exports, and reduced-motion views.

  • Reviewing dashboard colors and keyboard access
  • Writing chart alt text and long descriptions
  • Preparing accessible figures for PDF reports
openai/plugins7.5KUpdated Oct 8, 2026

Give a photo collection a consistent look using Adobe tools to adjust color, tone, presets, and optional crops. Review a before-and-after sample before processing the full set, then receive links to the edited images.

  • Giving travel photos a consistent look
  • Unifying photos taken in mixed lighting
  • Applying a warm or cinematic style across a photo set
openai/plugins7.5KUpdated Oct 8, 2026

Visualize a logo, sketch, or design on products such as mugs, shirts, and business cards. Review a pilot image, generate a visually consistent set, and collect the results on a shareable Firefly Board.

  • Preview a logo on mugs and shirts
  • Turn a hand-drawn sketch into product mockups
  • Create consistent brand presentation images
openai/plugins7.5KUpdated Oct 8, 2026

Prepare images and videos for social platforms using Adobe tools. Create image crops that keep the subject in view, expand backgrounds when available, preview a full-set sample, and resize videos while preserving their aspect ratio.

  • Creating image variants for multiple social platforms
  • Cropping photos for Instagram Stories
  • Preparing LinkedIn images and YouTube thumbnails
openai/plugins7.5KUpdated Oct 8, 2026

Create flyers, social posts, business cards, and other visuals from Adobe Express templates. Choose a template, customize its text and background color, and receive a design link, with additional editing and export options depending on the available tools.

  • Creating an event flyer
  • Designing an Instagram post
  • Customizing business card text and colors
openai/plugins7.5KUpdated Oct 8, 2026

Turn an uploaded video into three highlight edits with Adobe Quick Cut. Choose a target length and style, then compare versions that feature different moments and download the ones you prefer.

  • Creating a short highlight video for social media
  • Condensing interview footage into a highlight reel
  • Comparing three edits with different moment selections
openai/plugins7.5KUpdated Oct 8, 2026

See all skills by openai

Report a problem with this skill