PostPrep
← Blog
2026-06-13

How Nonprofits Can Use Canva Bulk Create for Donor Thank-Yous, Volunteer Spotlights, and Event Graphics

Draft — Post #22 · Target keyword: canva bulk create nonprofits · Meta: Generate donor thank-yous, volunteer spotlights, and certificates from one spreadsheet. The Canva Bulk Create workflow built for

Pete B.
Pete B.
Founder, Postprep

Draft — Post #22 · Target keyword: canva bulk create nonprofits · Meta: Generate donor thank-yous, volunteer spotlights, and certificates from one spreadsheet. The Canva Bulk Create workflow built for nonprofits with images that actually load.

Your annual report just closed. You have 240 donors to thank by name, 60 volunteers to spotlight on social, a stack of contribution certificates for the gala, and board headshots to drop into a recognition wall graphic. Every one of those is the same design with a different name, photo, or logo swapped in.

You already know Canva Bulk Create is the tool for this. You also know what happens the first time you upload a spreadsheet with a column of photo URLs: Canva treats the URLs as plain text and ships you a stack of half-blank designs with web links printed where the headshots should be.

This post walks through the full Canva Bulk Create nonprofits workflow, the one step Canva refuses to do on its own, and a realistic rhythm a small development team can actually keep.

Why Canva Bulk Create Stalls for Nonprofits

Nonprofits run on people and proof. Donor names tied to giving levels. Volunteer headshots from a sign-up form. Corporate sponsor logos from a partnership folder. Board member photos from the last retreat. Grantee photos for an impact report. All of those assets usually live as image URLs somewhere: a shared Google Drive, a CRM export, a sponsor portal, a volunteer management tool.

Canva Bulk Create handles the text fields without complaint. Drop in a column of donor names, gift amounts, volunteer hours, or event dates and Canva merges them cleanly into your template.

Image URLs are where it breaks. Canva's Bulk Create only accepts images that are physically embedded inside the XLSX file as binary data in a format called DrawingML. A URL is just a string of text to Canva. It either prints the raw link inside your design or leaves the image slot empty. We covered the technical reason in Why Canva Bulk Create Ignores Image URLs.

For a nonprofit this is the difference between a working pipeline and a dead end. A list of 80 volunteers with photo URLs will not render unless those photos are embedded inside the XLSX before you upload it to Canva.

One honest caveat: plenty of nonprofit jobs are text-only. A batch of donor thank-you cards that just need a name and gift amount, with no photo, needs no conversion at all. Bulk Create handles those out of the box. The conversion step below only matters when your designs include a per-row image like a headshot, logo, or grantee photo.

The Manual Workaround Most Nonprofits Try First

The standard hack goes like this. Open the spreadsheet, switch to Excel, click each image cell, use Insert > Picture > Place in Cell, point to the file on your laptop, repeat for every row. That works in theory if every photo is already downloaded, sized correctly, and named to match the right person.

In practice you are pulling volunteer headshots from a Google Form, sponsor logos from a shared Drive, board photos from someone's phone, and a few late donor logos still arriving by email. By the time you have everything organized and inserted by hand, the gala is over.

The other common attempt is the =IMAGE() formula in Google Sheets. We explained why that fails for Bulk Create in Why =IMAGE() Doesn't Work for Canva Bulk Create. Short version: =IMAGE() is a live cell reference, not embedded image data, so Canva sees nothing when it parses the file.

What You Need Before You Start

Two things have to be in place.

A Canva template per asset type. Most nonprofits cycle through a small set of recurring designs. The common ones look like this:

A donor thank-you graphic with name, giving level, and an optional portrait or corporate logo. A contribution or volunteer certificate with name, role, and hours served. A volunteer or staff spotlight card for social with headshot, name, and a short quote. A sponsor recognition graphic with logo, tier, and a brand-matched background. An event flyer variant per program with a photo and date.

Each template needs Canva Bulk Create placeholders for the text variables like {{donor_name}}, {{giving_level}}, {{hours}}, and an image element for the headshot or logo.

A single source-of-truth spreadsheet. One row per output design. Columns for every text field plus a column with the direct image URL.

If you already run donors in a CRM like Bloomerang, Little Green Light, or Salesforce NPSP, and volunteers in a sign-up tool, you are most of the way there. The only column you might need to add is a direct URL to the headshot or logo. The same clean-sheet rules we wrote about for Etsy sellers apply here: one row per output, one column per data field, image URLs in their own column.

Step 1: Collect Image URLs From Wherever They Live

This is the step that costs most teams the most time. Each source exposes URLs differently.

Google Drive or Shared Drive. Convert the share link to a direct image URL using the format https://drive.google.com/uc?id=FILEID&export=download, or copy the asset into a public folder on your website.

Dropbox. Take the share link and change the trailing ?dl=0 to ?raw=1 to return the raw image instead of the preview page.

Sponsor brand portals. Most corporate partners give you a logo URL. Right-click the logo and copy image address. If it ends in .png it works in Canva. SVG should be exported to PNG first.

Volunteer and event sign-up forms. If your form tool stores photo uploads (Google Forms with file upload, Typeform, Tally, SignUpGenius), each upload has a viewable URL you can copy from the admin view.

Your own brand kit. Standard assets stored on your website or in cloud storage already have working URLs.

Drop every URL into the spreadsheet under one column. Name it image_url or headshot or logo, pick a convention, and stick with it.

Step 2: Build the Spreadsheet

A typical nonprofit bulk sheet looks like this.

donor_namegiving_levelgift_amountprogramlogo
The Hartwell FoundationChampion$25,000Youth Literacyhttps://cdn.org/.../hartwell.png
Maria DelgadoSustainer$1,200General Fundhttps://cdn.org/.../delgado.jpg
Riverside Credit UnionPartner$10,000Food Accesshttps://cdn.org/.../riverside.png

Save it as CSV or XLSX. Column names do not have to match Canva exactly because you will map them in the Bulk Create panel, but matching names lets Canva auto-connect in one click.

Step 3: Convert the Spreadsheet With Postprep

This is the conversion step Canva refuses to do.

Go to postprep.app, upload your CSV, and pick the column that holds the image URLs. Postprep fetches each URL, downloads the image, and embeds it inside the XLSX as DrawingML, the binary format Canva actually reads. Every other column passes through unchanged.

A 200-row sheet takes under a minute. The free tier covers 100 rows with no account required.

Step 4: Bulk Generate in Canva

Open your template in Canva. You will need a plan that supports Bulk Create. Canva offers a free Canva for Nonprofits program that gives eligible organizations access to Canva Pro features, and Bulk Create is a Pro-tier feature available on desktop. (Eligibility and exactly which features are included can change, so confirm your nonprofit's current access on Canva's site before you build a workflow around it.)

In the left panel click Apps, then Bulk Create. Click Upload data and pick your converted XLSX. Drag each column onto its matching placeholder, or use Auto-connect if your column names already match.

Click Generate designs. Canva produces one finished design per row with the logos, headshots, names, and giving levels already merged.

If you run several template types off the same spreadsheet, a thank-you graphic, a certificate, and a social spotlight card, take the same XLSX into each template and run Bulk Create once per template. Same data, three sets of branded assets.

Download as a ZIP and you have the full set ready to print, email, or schedule.

A Realistic Nonprofit Workflow

Here is what the rhythm looks like for a small development team.

End of campaign or quarter. Export your donor list from the CRM into one master sheet with a logo or photo column. Run it through Postprep. Generate donor thank-you graphics and contribution certificates in Canva. Email or mail them.

Monthly. Pull new volunteer sign-ups and their headshots into the same sheet. Re-run Postprep. Generate volunteer spotlight cards and schedule them across the month of social posts. If you want a repeatable batch-posting rhythm, the approach in Canva Bulk Create for a Month of Social Media Posts maps directly onto a volunteer or impact-story series.

Before each event. Add sponsors and honorees to the sheet with their logos. Re-run the bulk job. Generate recognition graphics, name badges, and printable certificates for the gala.

The whole cycle takes about 30 minutes of spreadsheet time and 15 minutes of Canva time per template, whether you are thanking 40 donors or 400. Without the converted XLSX you are looking at hours of manual photo placement per template.

Frequently Asked Questions

Do I need Canva Pro to use Bulk Create as a nonprofit?

Bulk Create is a Pro-tier feature. Many nonprofits qualify for the free Canva for Nonprofits program, which includes Pro features. Eligibility rules and included features can change, so check Canva's nonprofit page for your organization's current status rather than assuming.

A lot of our thank-you cards are just a name and an amount. Do those need conversion?

No. Text-only designs work in Bulk Create with a plain CSV. You only need Postprep when a design includes a per-row image like a headshot or sponsor logo.

Some volunteers have not submitted a photo yet. What happens to those rows?

Leave the image cell blank. Postprep skips the embed for empty cells and Canva leaves the placeholder visible. Re-run the job once the photos come in.

Our sponsor logos have white backgrounds and clash with the template.

Postprep embeds whatever the URL returns. Ask sponsors for transparent PNGs, or run logos through a background remover before adding the final URLs to your sheet.

Can I generate both a printed certificate and a digital social card from the same data?

Yes. Run Bulk Create against each template using the same converted XLSX. Canva exports to PDF for print and PNG for digital, so one data set covers both.

Our donor data is sensitive. Is it safe to upload?

Only include the columns you actually need for the design, like name, giving level, and a public logo or headshot URL. Leave out gift details, contact info, or anything you would not put on a printed card.

The Short Version

Canva Bulk Create handles the merge work for every donor thank-you, certificate, volunteer spotlight, and sponsor graphic your nonprofit ships. The one thing it does not do is convert image URLs into embedded images inside the XLSX. Postprep is the missing step.

Build one master sheet. Convert with Postprep when your designs have photos or logos. Bulk generate in Canva. Every donor, volunteer, and sponsor gets recognized without another late night in front of the design tool.


Try it free at postprep.app — 100 rows, no account required.

Try it free

Canva Bulk Create with real embedded images.

Upload your CSV or XLSX. Select your image column. Download a Canva-ready file. Free for up to 100 rows — no account needed.

Try Postprep →
Pete B.

Written by

Pete B.

Pete is a small business owner who got tired of social media eating his evenings. Posting product graphics across channels used to mean opening Canva, dropping in each image by hand, and repeating that for every listing and every platform. He kept hitting the same wall: Canva Bulk Create can save hours, but it refuses to read image URLs from a spreadsheet — turning a 5-minute workflow into a 2-hour copy-paste job. So he built Postprep to fix that one specific limitation, and writes about bulk content workflows, design tool limitations, and shipping social content without burning out.

Discussion