How Event Planners Can Use Canva Bulk Create for Invitations, Vendor Cards, and Sponsor Graphics
Spin up invitations, speaker badges, vendor cards, and sponsor thank-yous from one spreadsheet. The Canva Bulk Create workflow built for event planners.

You booked the venue six months ago. The vendors are locked. The run-of-show is tight. Now you have three weeks to ship 180 personalized invitations, 42 speaker badges, 28 sponsor thank-yous, a stack of vendor table cards, and the social rollout for every keynote.
Each one of those is the same design with a different name, headshot, logo, or company. You already know the right tool for this is Canva Bulk Create. You also know what happens the first time you try to feed it a spreadsheet with image URLs: Canva ignores the URLs and ships you a stack of half-blank designs.
This post walks through the full Canva Bulk Create event planners workflow, the one piece Canva does not handle on its own, and a realistic week-by-week rhythm for a working event team.
Why Canva Bulk Create Stalls for Event Planners
Event planners run on rosters and decks. Speaker bios with headshots. Sponsor lists with logos. VIP guest lists with profile photos. Vendor sheets with brand marks. All of those live as image URLs somewhere — a shared Drive folder, a sponsor portal, a guest registration form, a brand kit on the agency drive.
Canva Bulk Create can handle the text fields without trouble. Drop a column of guest names, dates, table numbers, or session times into your spreadsheet and Canva merges them in cleanly.
Image URLs are a different story. 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 text to Canva. It either prints the URL as a literal string inside your template or leaves the image slot empty. We covered the technical reason in Why Canva Bulk Create Ignores Image URLs.
For event planners this is the difference between a usable workflow and a dead end. A roster of 120 sponsors with logo URLs is not going to render unless those logos are embedded inside the XLSX before you upload it to Canva.
The Manual Workaround Most Planners Try First
The standard hack looks something like this. Open the spreadsheet, switch to Excel, click each image cell, use Insert > Picture > Place in Cell, point to the file on disk, repeat 180 times. That works in theory if every asset is already downloaded to your laptop in the right size and order, named to match the row.
In practice you are juggling a guest list from a Google Form, sponsor logos from a shared Drive folder, speaker headshots from a Dropbox link, and a few late additions still arriving by email. By the time you have the assets organized and inserted by hand, you could have already finalized the seating chart.
The other hack is the =IMAGE() formula in Google Sheets. We covered why that one fails for Bulk Create in detail in Why =IMAGE() Doesn't Work for Canva Bulk Create. Short version: =IMAGE() is a live cell reference, not embedded image data. 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 event teams cycle through a small set of recurring designs. The common ones look like this.
A personalized save-the-date or invitation with guest name, table assignment, and an optional portrait or monogram. A speaker badge or credential with headshot, name, title, and session. A sponsor thank-you graphic with the sponsor logo, tier, and a brand-matched background. A vendor table card with logo, booth number, and contact. A social rollout card per keynote with headshot, talk title, and date.
Each template needs Canva Bulk Create placeholders for the text variables like {{guest_name}}, {{session_title}}, {{table_number}}, and an image element for the headshot or logo.
A single source-of-truth spreadsheet per event. One row per output design. Columns for every text field plus a column with the direct image URL.
If you already run guest lists in Airtable, Notion, HoneyBook, Eventbrite, or a simple Google Sheet, you are most of the way there. The only column you might need to add is a direct URL to the headshot or logo. We have written about clean spreadsheet prep for verticals like Etsy sellers and Shopify stores, and the same rules apply: 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 platform 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 event site CDN.
Dropbox. Take the share link and change the trailing ?dl=0 to ?raw=1. That returns the raw image instead of the preview page.
Sponsor brand portals. Most sponsors give you a brand kit URL. Right-click the logo and copy image address. The URL ends in .png or .svg. PNG works in Canva. SVG should be exported to PNG first.
Speaker registration forms. If your form tool stores headshot uploads (Typeform, Tally, Google Forms with file upload, Eventbrite), each upload has a viewable URL. Open the file in the form admin and copy the image address.
Your own brand kit. If you store standard assets on your event website or in an S3 bucket, those URLs already work.
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 Event Spreadsheet
A typical event planner's bulk sheet looks like this.
| guest_name | role | company | session_title | table_number | headshot |
|---|---|---|---|---|---|
| Sarah Chen | Speaker | Northgate Labs | The Future of AI Ops | T-04 | https://cdn.event.com/.../chen.jpg |
| Marcus Diaz | VIP | Diaz & Co | — | T-01 | https://cdn.event.com/.../diaz.jpg |
| Lisa Park | Sponsor Rep | BrightCloud | — | T-12 | https://cdn.event.com/.../park.jpg |
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 them 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 invitation template in Canva. Make sure you are on a plan that supports Bulk Create (Pro, Teams, Business, Enterprise, Education, or Nonprofits — Bulk Create is desktop only).
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 headshots, logos, names, and session info already merged.
If you have three template types running off the same spreadsheet — a name badge, a social rollout card, and a thank-you graphic — take the same XLSX into each template and run Bulk Create three times. Same data, three sets of branded assets.
Download as a ZIP. You have the full set of personalized event collateral ready to print or schedule.
A Realistic Event Planner Workflow
Here is what the rhythm looks like for a working event team.
T-minus 6 weeks. Lock the guest list and sponsor roster. Drop everything into one master sheet with image URL columns. Run it through Postprep. Generate save-the-dates and sponsor announcements in Canva. Schedule social posts.
T-minus 3 weeks. Add latecomers and updated sponsor logos to the same sheet. Re-run Postprep. Generate badges, table cards, vendor signs, and printable name tags. Send to print.
T-minus 1 week. Final cleanup pass on stragglers and replacements. Re-run the bulk job for any new attendees. Generate day-of social rollouts for each keynote and breakout.
The whole cycle takes about 30 minutes of spreadsheet time and 15 minutes of Canva time per template, no matter whether the event is 60 attendees or 600. Without the converted XLSX you are looking at 4 to 6 hours per template at scale.
Frequently Asked Questions
Can I run this for both digital invitations and printed name tags?
Yes. Canva exports the same generated designs to PDF for print or PNG for digital. Run Bulk Create once, download both formats. The image data is embedded at the original resolution, so it holds up at print sizes as long as your source images are high enough resolution.
What if my sponsors send PNG logos but the backgrounds are not transparent?
Postprep embeds whatever the URL returns. If you want transparent backgrounds, ask sponsors for transparent PNGs at the brand kit stage, or run the logos through a background remover before adding the final URLs to your sheet.
Some of my speakers have not submitted headshots yet. What do I do?
Leave the image URL cell blank for those rows. Postprep will skip the image embed for empty cells, and Canva will leave the placeholder visible in the generated design. Re-run the bulk job once the headshots arrive.
My guest list lives in Eventbrite. Can I export it directly?
Eventbrite exports a CSV of registrations. Add a column for headshot_url if you collected one, or skip the image and just use Bulk Create for the text fields. Same workflow either way.
Does this work for multi-day conferences with different sessions per attendee?
Yes. One row per output design. If a speaker has three sessions, that is three rows with the same headshot URL and three different session titles. Canva generates one design per row.
What about per-table seating cards with multiple guests on one card?
Group the data first in your spreadsheet. One row per table, with concatenated guest names in a single cell separated by line breaks. Canva will merge the combined text into the placeholder. The image column can hold the table host's portrait or a venue graphic.
The Short Version
Canva Bulk Create handles the merge work for every invitation, badge, sponsor card, and rollout graphic at your event. 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 per event. Convert with Postprep. Bulk generate in Canva. Every guest, speaker, sponsor, and vendor ships their personalized assets without another all-nighter.
Try it free at postprep.app — 100 rows, no account required.