PostPrep
← Blog
2026-06-13

How to Use Canva Bulk Create for Wedding Place Cards, Escort Displays, and Welcome Signs

Draft — Post #41 · Target keyword: canva bulk create wedding · Meta: Use Canva Bulk Create for wedding place cards, escort cards, menus, and photo welcome signs from one guest list. The full workflow,

Pete B.
Pete B.
Founder, Postprep

Draft — Post #41 · Target keyword: canva bulk create wedding · Meta: Use Canva Bulk Create for wedding place cards, escort cards, menus, and photo welcome signs from one guest list. The full workflow, including the image step Canva skips.

The guest list is finally locked at 142. Now you need 142 place cards, 142 escort cards sorted by table, a stack of menu cards, a few signature drink signs, and a welcome display with the couple's photo. The wedding is in nine days.

Every one of those is the same design with a different name, table number, meal choice, or photo. This is exactly what Canva Bulk Create is built for. Drop in your guest list, generate the whole set in one pass, send it to print.

That works perfectly until you hit a job that needs an image. The moment your spreadsheet has a column of photo or monogram URLs, Canva ignores them and hands you a stack of designs with blank image slots. This post walks through the full Canva Bulk Create wedding workflow, which jobs need images and which honestly do not, and the one conversion step that makes the photo jobs work.

Why Canva Bulk Create Stalls on Wedding Image Jobs

Most wedding bulk jobs are pure text. A place card is a name and maybe a table number. An escort card is a name, a table assignment, and sometimes a meal icon. A table number sign is a single number. Canva Bulk Create handles all of those without a hitch. Put your guest list in a spreadsheet, map the columns to your template, generate. No image step, no conversion, done.

The trouble starts on jobs that pull in a photo or graphic per row. A welcome display or seating chart with each guest's photo. Escort cards with a small portrait. Save-the-dates built from engagement photos. A styled-shoot lookbook with a vendor logo on each card. A monogram or crest that changes per family. Those all live as image URLs somewhere, in a shared Drive folder, a photographer's gallery link, a Dropbox folder, or a vendor's brand kit.

Canva 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 raw link as a string inside your card or leaves the image slot empty. We covered the technical reason in Why Canva Bulk Create Ignores Image URLs.

So the rule for weddings is simple. Text-only jobs need no conversion at all. Anything with a per-row photo or logo needs those images embedded in the XLSX before you upload it to Canva.

The Manual Workaround Most Couples and Planners Try First

When the photo job fails, the usual hack is to switch to Excel, click each image cell, use Insert > Picture > Place in Cell, point to the file on disk, and repeat for every guest. That works in theory if all 142 photos are already downloaded, cropped to the same size, named to match each row, and sitting in one folder.

In practice the engagement photos are in a Dropbox link from the photographer, the guest headshots came in by text, and a few are still arriving the week of the wedding. By the time you have them downloaded, renamed, and inserted by hand, you could have addressed the envelopes twice.

The other common attempt is the =IMAGE() formula in Google Sheets. It looks like it embeds the photo, but it does not. =IMAGE() is a live cell reference, not stored image data, so Canva sees nothing when it parses the file. We broke this down in Why =IMAGE() Doesn't Work for Canva Bulk Create.

What You Need Before You Start

Two things.

A Canva template per stationery type. Weddings cycle through a predictable set of designs. Common ones look like this. A place card with guest name and table number. An escort card with name, table, and an optional meal icon or portrait. A menu card with the guest name and their selected entree. A welcome or seating display with each guest's name and photo. A signature drink or table sign. A save-the-date built from an engagement photo.

Each template needs Canva Bulk Create placeholders for the text fields like {{guest_name}}, {{table_number}}, {{entree}}, and an image element for any photo or monogram.

A single source-of-truth guest spreadsheet. One row per output design. Columns for every text field, plus a column with a direct image URL only if that job needs a photo.

If your guest list already lives in a wedding planning app, a Google Sheet, or an RSVP tool like Zola, The Knot, or RSVPify, you are most of the way there. For text-only place cards you already have everything. For a photo welcome sign, the only column you might add is a direct URL to each guest's photo. The same clean-spreadsheet rules we use for photographers and event planners apply here: one row per output, one column per field, image URLs in their own column.

Step 1: Decide Which Jobs Actually Need Images

This saves the most time. Sort your stationery into two piles.

Text-only, no conversion needed: place cards, escort cards by name and table, table number signs, menu cards, basic seating lists, drink signs. Build the spreadsheet, run Bulk Create, done. Skip the rest of this guide for those.

Image jobs, conversion needed: photo welcome displays, escort cards with portraits, engagement-photo save-the-dates, per-family monograms or crests, styled-shoot cards with vendor logos. These need the image step.

Step 2: Collect the Image URLs

For the photo jobs, gather each image as a direct URL in one column.

Photographer galleries. Most galleries (Pixieset, Pic-Time, ShootProof) let you copy a direct image link or download originals. Right-click the photo and copy image address, or download and host them in one folder.

Google Drive or Shared Drive. Convert the share link to a direct URL using the format https://drive.google.com/uc?id=FILEID&export=download.

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

Vendor brand kits. For styled shoots, right-click a vendor logo and copy image address. PNG works in Canva. Export SVG to PNG first.

Drop every URL into one column. Name it photo or image_url and keep the convention consistent.

Step 3: Build the Guest Spreadsheet

A typical wedding bulk sheet looks like this.

guest_nametable_numberentreephoto
Sarah Chen4Salmonhttps://gallery.example.com/chen.jpg
Marcus Diaz1Beefhttps://gallery.example.com/diaz.jpg
Aunt Linda7Veghttps://gallery.example.com/linda.jpg

Save it as CSV or XLSX. For a text-only place card set, drop the photo column entirely. Column names do not need to match Canva exactly because you map them in the Bulk Create panel, but matching names lets Canva auto-connect in one click.

Step 4: Convert the Spreadsheet With Postprep

This is the step Canva refuses to do, and you only need it for the photo jobs.

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 150-row sheet takes under a minute. The free tier covers 100 rows with no account required.

Step 5: Bulk Generate in Canva

Open your template in Canva. Bulk Create runs inside the Canva desktop app and requires a paid plan. Canva currently offers a free trial, but plan names, eligibility, and trial length change often, so check Canva's pricing page for the current details before you commit.

In the left panel click Apps, then Bulk Create. Click Upload data and pick your file. For text-only jobs that is your plain CSV. For photo jobs it is the converted XLSX from Postprep. Drag each column onto its matching placeholder, or use Auto-connect if the names already match.

Click Generate designs. Canva produces one finished card per guest with the names, table numbers, meals, and photos already merged. Download as a PDF for print or PNG for digital.

If you run several template types off the same guest list, a place card, a menu card, and a photo welcome display, take the same spreadsheet into each template and run Bulk Create once per template. One guest list, the full stationery suite.

A Realistic Wedding Stationery Workflow

Here is the rhythm for a planner or a hands-on couple.

Save-the-date stage. Build the early guest list with engagement-photo URLs. Run it through Postprep. Generate save-the-dates in Canva and send.

RSVP close, about three weeks out. Export the final guest list with table assignments and meal choices from your RSVP tool. For place cards, escort cards, and menus, this is text only, so skip the conversion and go straight to Bulk Create. Generate and send to print.

Week of the wedding. Add or fix any last-minute guests in the same sheet. For the photo welcome display, run the photo column through Postprep, generate in Canva, and send the final file to your print shop or large-format printer.

The whole cycle is roughly 20 minutes of spreadsheet time and 15 minutes of Canva time per template, whether the wedding is 60 guests or 300. Inserting 200 photos by hand would cost an afternoon per job.

Frequently Asked Questions

Do place cards and table numbers need Postprep at all?

No. Those are text-only jobs. Build the guest list, run Bulk Create on the plain CSV, and print. You only need the conversion step when a design pulls in a per-row photo, monogram, or logo.

Can I do escort cards with each guest's photo?

Yes. Add a photo URL column, run it through Postprep to embed the images, then map the photo to the image placeholder in your escort card template. One card per guest with name, table, and portrait.

My photographer sent a gallery link, not individual files. What do I do?

Most galleries let you copy a direct image link per photo or download originals to a folder you control. Get a direct URL for each guest photo, drop them in the photo column, and convert. If the gallery only allows bulk download, host the files somewhere that gives direct links first.

Can I use one guest list for the whole stationery suite?

Yes, and that is the point. Keep one master sheet with every field. Take it into each template, map the columns that template uses, and generate. Place cards use name and table, menus add the entree, the welcome display adds the photo.

What resolution do photos need for a large welcome sign?

Postprep embeds whatever the URL returns at its original resolution. For a big printed display, start with high-resolution source photos. Low-res web thumbnails will look soft when blown up to poster size.

Some RSVPs are still missing meal choices. Can I generate anyway?

Yes. Leave those cells blank. Canva leaves the placeholder visible in the generated design, and you re-run the bulk job once the answers come in. Same with empty photo cells, Postprep skips the embed for blank rows.

The Short Version

Canva Bulk Create handles your entire wedding stationery suite from one guest list. Place cards, escort cards, table numbers, and menus are text-only and need nothing extra. The photo jobs, welcome displays, portrait escort cards, engagement-photo save-the-dates, are the ones where Canva ignores image URLs and leaves the slots blank.

Postprep is the missing step for those. Build one master guest sheet, convert the photo jobs, bulk generate in Canva. Every guest gets their card without a week of manual photo dragging.


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