How to Bulk Create From Canva Templates
Use Canva Bulk Create to turn CSV, XLSX, or Canva Sheets rows into personalized designs, with mapping, previews, limits, troubleshooting, and automation options.

Canva Bulk Create turns one template into many personalized designs. Put each variable in its own column, put one design’s values in each row, connect those columns to text boxes or image placeholders, preview the results, and generate either one multi-page Canva file or separate designs. This workflow supports CSV and XLSX uploads, Canva Sheets selections, supported data apps, and manual entry. Canva documents a maximum of 150 data fields, while a Canva Sheets selection can contain up to 300 rows and 150 columns. See Canva’s current instructions in the Bulk Create Help Center article before a production run because product limits can change.
What Canva Bulk Create does
Bulk Create treats your template as a layout and your table as a set of values. Every column is a field, such as name, job_title, photo, or event_date. Every row supplies the complete values for one generated page or design.

| Spreadsheet part | Canva meaning | Example |
|---|---|---|
| Column header | Data field name | customer_name |
| Cell | Value inserted into a connected element | Alex Morgan |
| Row | One finished page or design | Alex’s personalized invitation |
| Text box | Destination for a text field | Name, title, location |
| Frame or grid | Destination for image data | Headshot or product photo |
Typical uses include localized campaigns, personalized sales materials, business cards, event invitations, certificates, and social variations. The key preparation rule is simple: create a separate text box for every text field and add an image frame or grid for every image field before importing the data.
Prepare a Canva template for bulk creation
- List the fields. Write down every value that changes between designs. Use clear, stable names such as
first_name,company,location, andportrait. - Create separate text boxes. Do not combine unrelated variables in one text box if you need predictable mapping. A separate box for a name, role, and date makes connections and line wrapping easier to inspect.
- Add image destinations. Use frames or grids for photos and other replaceable images. Your data source must provide supported embedded cell images; a cloud-photo URL pasted into a cell is treated as plain text according to Canva’s documentation.
- Plan every page. For a multi-page template, connect the fields used on each page. Keep field names unique and descriptive so a later edit does not break the mapping.
- Respect the field limit. Canva documents a maximum of 150 data fields. Count columns and mapped elements before designing a very complex template.
A practical data layout
first_name,role,company,event_date,portrait
Alex Morgan,Product designer,Northstar,June 18,2026,[embedded image]
Priya Shah,Engineer,Bluebird,June 18,2026,[embedded image]
Keep headers short but specific. Avoid duplicate headers, accidental blank columns, and values that contain unexpected line breaks. If a value can be long, design the text box with enough room and preview the longest realistic row.
Open Bulk Create in Canva
Bulk Create is available on desktop for Canva Pro, Canva Teams, Canva Business, Canva for Enterprise, Canva Education, and Canva for Nonprofits users. In the desktop editor:
- Open the template and click the page background.
- Choose Edit, then select Bulk create.
- Alternatively, open Apps and choose Bulk create.
- If your data is already in Canva Sheets, select the range and launch Bulk Create from that selection.
The desktop requirement matters for teams that expect a completely browserless workflow. Canva also announced that its bulkCreate and publish APIs reached general availability on February 6, 2026. Those APIs are a separate integration route; authentication, scopes, quotas, and implementation details must be taken from Canva’s developer documentation rather than assumed from the editor workflow. The announcement is in the Canva Developers Community.
Import CSV, XLSX, Canva Sheets, or manual data
After opening Bulk Create, choose the source that matches your operating process:
- CSV or XLSX: export a clean rectangular table with one header row. Check delimiter, encoding, and date formatting before upload.
- Canva Sheets: select the exact range you want to use. Canva documents up to 300 selected rows and 150 columns for this route.
- Supported data app: import through the available integration and confirm which fields arrive as text or media.
- Manual entry: type or paste values for a small batch or a quick proof.
For image data, embed the images directly in supported cells. A URL to a photo stored in a cloud service is not automatically fetched as an image; Canva treats cloud-photo URLs as plain text in this workflow. If you need remote assets at scale, validate the supported data source or use the separate API integration path.
Connect columns to template elements
- Choose Auto-match fields when your headers clearly correspond to element names.
- Inspect every suggested connection. Auto-match saves time but should not be trusted without review.
- For manual mapping, drag each data field onto its matching text box, frame, or grid.
- Check every page in a multi-page design. A field can be correct on page one and missing on page two.
- Fix the template or mapping before generation if a field is attached to the wrong element.
Use names such as speaker_name and speaker_photo instead of generic headers like data1. Clear names make a mismatch visible and reduce errors when a template is edited later.
Preview, generate, and organize the batch
Preview rows before generating the complete set. Check the shortest and longest text, rows with missing values, image crops, date formats, and any page that uses a different combination of fields. Canva notes that videos appear as a frozen first frame in preview and that media replacement behavior can differ by data source.
When the preview is correct, choose how Canva should organize the output:
- One file with multiple pages: useful for a presentation, print run, or review packet.
- One design per row: useful when each customer, event, or location needs an independent file.
Advanced options let you name pages or files from a selected data column and choose the destination folder in Projects. Pick a stable identifier such as customer_id or event_slug, and avoid names that contain characters your downstream file system cannot handle.
Quality-control checklist
- Template has a separate text box for each variable.
- Every image field has a frame or grid.
- Headers are unique and descriptive.
- Image cells contain embedded supported images rather than unprocessed cloud URLs.
- At least one short and one long row have been previewed.
- Rows with blank optional values have been checked.
- Output mode is intentionally set to one multi-page file or separate files.
- Page or file naming uses a stable column.
- Destination folder is correct.
- Licensing has been reviewed before selling the result.
Common errors and fixes
| Symptom | Likely cause | Fix |
|---|---|---|
| Field does not appear for mapping | Header is blank, duplicated, or outside the selected range | Rename the header, remove blank columns, and reselect the data range. |
| Text lands in the wrong box | Auto-match guessed incorrectly | Undo the connection and drag the field manually. |
| Photo appears as a URL | Cell contains a cloud-photo URL | Embed the image in a supported cell or use a supported integration. |
| Only some pages populate | Fields on later pages were never connected | Map each page’s elements before generating. |
| Text is clipped | Real data is longer than the sample used in the template | Resize the box, reduce font size, or shorten the source value; preview the longest row. |
| Images crop unexpectedly | Frame aspect ratio differs from source image | Adjust the frame or prepare source images with a consistent crop. |
| Video preview looks wrong | Preview shows a frozen first frame | Review the generated design and confirm the media source’s replacement behavior. |
| Batch exceeds available fields or rows | Product limits | Reduce the mapped fields, split the data, or evaluate the separate API route. |
| Bulk Create option is missing | Unsupported plan, account type, or non-desktop editor | Use a supported Canva plan and the desktop editor. |

Performance, reliability, and cost planning
For reliable runs, separate preparation from generation. Validate the table first, generate a small sample, then process the full batch. Split very large jobs into logical groups by campaign, language, or event so a single bad row does not make review difficult. Keep an original copy of the source data and template version used for each run.
Use consistent image dimensions and concise text to reduce layout surprises. Naming outputs from a stable ID makes retries safer because you can identify which rows were already generated. If you need a repeatable pipeline from another system, investigate Canva’s bulkCreate and publish APIs directly; do not infer API quotas or permissions from the editor.
Bulk Create access is plan-gated. Before committing to a paid campaign, verify that every collaborator has the required Canva plan and that the destination folder has the intended permissions. If you sell templates or designs, Canva’s licensing rules apply. Canva states that templates containing Pro Content may be sold only as Canva template links, while other uses depend on the Content License Agreement and the composition of the final work. Read the current licensing guidance for your exact output.
Or skip the browser setup
If your next step is to capture the generated Canva pages or any public design URL as images or PDFs, ScreenshotNeo provides a one-request website screenshot API. It accepts a URL and returns PNG, JPEG, WebP, or PDF. Before capture, it accepts cookie or consent banners like a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and the response identifies the result with X-Page-Verdict and X-Billed headers.
See the ScreenshotNeo API documentation for all options. A basic call is:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
For Canva output review, useful options include full-page capture with lazy images loaded, a CSS selector for one element, dark mode, device presets or any viewport, retina scale, custom CSS and JavaScript, click actions, selector waits, delays, network-idle waits, blocked ads or trackers, custom headers and cookies, timezone and geolocation, transparent backgrounds, resizing, caching with a chosen TTL, signed links for public image tags, asynchronous jobs with signed webhooks, bulk capture of up to 100 URLs per call, a usage API, and an OpenAPI specification. Parameter names used by other screenshot APIs also work, which can simplify migration.
ScreenshotNeo also includes an MCP server with take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients. The Free plan includes 1,000 shots each month with no card. Paid plans start at $5 for 3,000 shots; yearly billing gives two months free, and every feature is available on every plan. Create a free ScreenshotNeo account.
FAQ
Can one row create multiple pages?
Yes. A row represents one generated design or page set, and a multi-page template can use that row’s values across connected pages.
Can I edit the preview values inside Bulk Create?
Use the preview for review. If a value or mapping is wrong, fix the source data or connection and preview again before generation.
Are cloud image links enough for photo replacement?
No. Canva’s documentation says cloud-photo URLs are treated as plain text in this workflow. Use embedded images in supported cells or a supported data source.
When should I use Canva’s APIs?
Use the API route when another system must initiate bulk creation or publishing repeatedly. Authentication, scopes, quotas, and request details require the current Canva developer documentation.
What should I check before selling the result?
Review Canva’s current Content License Agreement and product-selling guidance, especially when the template includes Pro Content.


