PostPrep
← Blog
2026-06-13

How Florists Can Use Canva Bulk Create for Bouquet Posts, Seasonal Collections, and Wedding Proposals

Draft — Post #30 · Target keyword: canva bulk create florists · Meta: Turn a spreadsheet of arrangement photos into a month of florist social posts. The Canva Bulk Create florists workflow that fixes

Pete B.
Pete B.
Founder, Postprep

Draft — Post #30 · Target keyword: canva bulk create florists · Meta: Turn a spreadsheet of arrangement photos into a month of florist social posts. The Canva Bulk Create florists workflow that fixes the image URL problem.

It's Monday morning. You have 40 fresh arrangements from the weekend market, a Mother's Day collection to promote, three wedding proposals due Friday, and a Valentine's pre-order push that should have gone out yesterday. Every one of those needs a branded graphic. Every graphic is the same layout with a different bouquet photo, name, and price.

You already know Canva Bulk Create is built for exactly this. You also know what happens the first time you load a spreadsheet full of photo links: Canva ignores the image URLs, treats them as plain text, and hands you a stack of designs with blank picture frames where your flowers should be.

This post walks through the full Canva Bulk Create florists workflow, the one step Canva will not do on its own, and a repeatable weekly rhythm for a working flower shop.

Why Canva Bulk Create Stalls for Florists

Florist content is photo-heavy by nature. Customers buy with their eyes. Every post needs the actual arrangement, the seasonal collection shot, the wedding centerpiece, the sympathy spray. Those images live somewhere as URLs already: a Shopify or Etsy product page, a Google Drive folder of weekend shoots, a Dropbox link from your photographer, a shared album from a recent wedding.

Canva Bulk Create handles the text side without complaint. Drop in a column of arrangement names, prices, stem counts, or pickup dates and Canva merges them in cleanly.

Image URLs are where it breaks. 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 a line of text to Canva. It either prints the raw link inside your template or leaves the photo slot empty. We covered the technical reason in full in Why Canva Bulk Create Ignores Image URLs.

For a florist this is the whole game. A collection of 30 bouquets with photo URLs will not render unless those photos are embedded inside the XLSX before Canva ever sees it. Text-only jobs, like a quote card or a "closed for the holiday" notice, need no conversion at all. The moment your post needs the flower photo, you hit the wall.

The Manual Workaround Most Florists Try First

The usual hack goes like this. Open the spreadsheet in Excel, click each image cell, use Insert > Picture > Place in Cell, point to the photo on your laptop, repeat for every row. That works on paper if every photo is already downloaded, cropped to the same size, named to match the row, and sitting in one folder.

In real life you are pulling bouquet shots off your phone, product images from your Shopify store, a few wedding photos from the photographer's Dropbox, and last-minute market arrangements you photographed an hour ago. By the time you have all of that downloaded, renamed, and inserted by hand, the flowers have wilted and the post is a day late.

The other common attempt is the =IMAGE() formula in Google Sheets. It looks like it works, because the photo shows up in the cell. Then Bulk Create sees nothing. We explained why in Why =IMAGE() Doesn't Work for Canva Bulk Create. Short version: =IMAGE() is a live cell reference, not embedded image data. When Canva parses the file, that cell is empty.

What You Need Before You Start

Two pieces have to be in place.

A Canva template per post type. Most flower shops cycle through a handful of recurring designs. The common ones look like this.

A single-arrangement product post with the bouquet photo, name, and price. A seasonal collection card with the photo, collection name, and an order-by date. A wedding or event proposal graphic with the centerpiece photo, package tier, and stem list. A sympathy or occasion post with the arrangement and a short message. A weekly "what's fresh" roundup with this week's market photos.

Each template needs Canva Bulk Create placeholders for the text variables like {{arrangement_name}}, {{price}}, {{order_by}}, plus one image element for the bouquet photo.

A single source-of-truth spreadsheet. One row per output design. A column for each text field, and one column with the direct image URL.

If you already run products in Shopify or Etsy, you are most of the way there. Your store already holds product names, prices, and image URLs. The same rules apply across every vertical: one row per output, one column per data field, image URLs in their own column.

Step 1: Collect Your Bouquet Image URLs

This is the step that eats the most time, so it is worth doing in a fixed order. Each source exposes URLs a little differently.

Shopify or Etsy product photos. Open the product, right-click the main image, and copy image address. The URL ends in .jpg or .png and points straight at the photo.

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

Dropbox links from a photographer. Take the share link and change the trailing ?dl=0 to ?raw=1. That returns the raw image instead of the preview page.

Photos on your phone or camera. Upload them to your store, your Drive, or your website media library first, then grab the URL. The photo has to live at a public address before any tool can fetch it.

Drop every URL into the spreadsheet under one column. Name it image_url or photo and stick with that name across every sheet.

Step 2: Build the Florist Spreadsheet

A typical flower shop bulk sheet looks like this.

arrangement_namecollectionpriceorder_byphoto
Garden RomanceMother's Day$68May 9https://cdn.shop.com/.../garden-romance.jpg
Sunset PeonyMother's Day$84May 9https://cdn.shop.com/.../sunset-peony.jpg
Classic White LilySympathy$55https://cdn.shop.com/.../white-lily.jpg

Save it as CSV or XLSX. Column names do not have to match Canva exactly, since you map them in the Bulk Create panel, but matching names lets Canva auto-connect everything 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 your photo 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 untouched.

A 50-row sheet takes well under a minute. The free tier covers 100 rows with no account required, which is more than most shops post in a month.

Step 4: Bulk Generate in Canva

Open your product post template in Canva. Bulk Create runs on the desktop app and is available on Canva's paid plans. (Plan eligibility and naming change over time, so check your account if you are unsure which tier you are on.)

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

Click Generate designs. Canva produces one finished post per row, with the bouquet photo, name, and price already merged in.

If you run three template types off the same sheet, a product post, a story version, and a wedding proposal card, load the same XLSX into each template and run Bulk Create three times. One data set, three sets of branded graphics. Download as a ZIP and you have the full set ready to schedule or print.

A Realistic Florist Weekly Workflow

Here is what the rhythm looks like for a working shop.

Monday. Photograph the weekend's fresh arrangements. Pull this week's product photos from Shopify or Etsy into one master sheet with a photo URL column. Run it through Postprep. Generate the week's product posts and "what's fresh" roundup in Canva. Schedule them out.

Mid-week. Add any seasonal collection or holiday pre-order items to the same sheet. Re-run Postprep. Generate the collection cards and promo graphics for the upcoming push.

As proposals come in. Build a small sheet per wedding or event, one row per arrangement in the proposal, with centerpiece and bouquet photos. Convert once, generate the full proposal deck in Canva.

The whole cycle is about 20 minutes of spreadsheet time and 15 minutes of Canva time per template, whether you are posting 10 arrangements or 60. Done by hand, the same volume runs 3 to 5 hours per template once you add up the downloading, cropping, and inserting.

Frequently Asked Questions

Do I need this for text-only posts like quotes or holiday hours?

No. If a post has no photo, Canva Bulk Create handles it on its own, or you just design it once. Postprep only matters when you need bouquet photos embedded from URLs.

My photos are different shapes. Some are square, some are tall. Will that break the layout?

Postprep embeds whatever the URL returns at its native dimensions. Canva fits each image into your template's image placeholder, so the frame controls the crop. For the cleanest result, set your placeholder to a fixed shape and let Canva crop to fill.

Can I pull straight from my Shopify or Etsy store?

Yes. Both let you export or copy product data including image URLs. Build your sheet from that export, add or rename columns to match your template, and convert. See the Shopify and Etsy walkthroughs for the export details.

Some arrangements do not have a photo yet. What happens to those rows?

Leave the photo cell blank. Postprep skips the image embed for empty cells and Canva leaves the placeholder visible in that design. Re-run the job once you shoot the photo.

Can I use the same arrangement photo across more than one post?

Yes. Reuse the same URL in as many rows as you need. One row per output design, so a bouquet that appears in a product post, a Mother's Day card, and a wedding proposal is three rows with the same photo URL and different text.

The Short Version

Canva Bulk Create does the merge work for every product post, collection card, and wedding proposal in your shop. The one thing it will not do is turn image URLs into embedded photos inside the XLSX. Postprep is the missing step.

Build one master sheet. Convert with Postprep. Bulk generate in Canva. Every bouquet ships its post without another late night downloading and dragging photos one at a time.


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