PostPrep
← Blog
2026-06-13

How Interior Designers Can Use Canva Bulk Create for Product Boards, Spec Cards, and Project Portfolios

Draft — Post #18 · Target keyword: canva bulk create interior designers · Meta: Build furniture spec cards, mood boards, and project portfolio graphics from one spreadsheet. The Canva Bulk Create work

Pete B.
Pete B.
Founder, Postprep

Draft — Post #18 · Target keyword: canva bulk create interior designers · Meta: Build furniture spec cards, mood boards, and project portfolio graphics from one spreadsheet. The Canva Bulk Create workflow built for interior designers.

You just finished sourcing 60 pieces for a full-home project. Sofas, sconces, rugs, side tables, art, hardware. Each one needs a clean spec card for the client deck: product photo, name, vendor, dimensions, price, and the room it belongs to. Multiply that across three active projects and you are looking at 150 cards built by hand.

Every card is the same layout with a different photo and a different set of details. This is exactly what Canva Bulk Create is built for. So you drop your sourcing spreadsheet into Canva, point the image column at your product photo URLs, and hit generate. Canva ships you 60 cards with the text filled in and every photo slot blank.

This post walks through the full Canva Bulk Create interior designers workflow, the one step Canva will not do for you, and a repeatable rhythm for designers running multiple projects at once.

Why Canva Bulk Create Stalls for Interior Designers

Interior design work is image-dense. Furniture from vendor sites. Tile and finish samples. Fabric swatches. Before-and-after room shots. Lighting from manufacturer catalogs. Almost every asset you touch already lives somewhere as an image URL — a vendor product page, a trade portal, a Dropbox of site photos, a shared Drive of renders.

Canva Bulk Create handles the text side of this without complaint. Product names, dimensions, prices, vendor names, room labels, SKUs. Drop those columns into your spreadsheet and Canva merges them in cleanly.

Image URLs are where it breaks. Canva Bulk Create only reads images that are physically embedded inside the XLSX file as binary data, in a format called DrawingML. A URL is just text as far as Canva is concerned. It either prints the raw URL inside your card or leaves the photo frame empty. We broke down the technical reason in Why Canva Bulk Create Ignores Image URLs.

For a designer, that is the whole job. A spec deck without the product photos is a list, not a presentation. A portfolio board without the room shots is blank. The images have to be embedded inside the XLSX before Canva ever sees the file.

The Manual Workaround Most Designers Try First

The usual hack goes like this. Open the spreadsheet in Excel, click the first image cell, use Insert > Picture > Place in Cell, browse to the downloaded photo on your laptop, repeat for all 60 rows. It works in theory, as long as every product photo is already downloaded, cropped to a consistent size, named to match its row, and sitting in one folder.

In practice you are pulling sofa photos from one vendor site, lighting from a trade portal, rugs from a Dropbox link the rep sent, and a few custom pieces shot on your phone at the workroom. By the time you have all of that downloaded, renamed, and inserted by hand, you could have built the client deck the slow way and moved on.

The other common attempt is the =IMAGE() formula in Google Sheets. It looks like it embeds the photo, but it does not. We covered why it fails for Bulk Create in Why =IMAGE() Doesn't Work for Canva Bulk Create. Short version: =IMAGE() is a live cell reference pointing at a URL, not embedded image data. When Canva parses the file, there is nothing there to read.

What You Need Before You Start

Two things.

A Canva template per asset type. Most designers reuse a small set of recurring layouts. The common ones look like this.

A product spec card with photo, product name, vendor, dimensions, price, and room tag. A furniture lookbook page or shoppable board with multiple products laid out per room. A before-and-after social post with two photos and a short caption. A finished-project portfolio slide with a hero room shot, project name, and location. A client presentation cover or section divider with a signature room image.

Each template needs Canva Bulk Create placeholders for the text fields like {{product_name}}, {{vendor}}, {{dimensions}}, {{price}}, {{room}}, plus an image element for the product or room photo.

A single source-of-truth spreadsheet per project. One row per output design. A column for each text field, plus a column holding the direct image URL.

If you already track sourcing in a spreadsheet, Notion, or a tool like Programa, Mydoma, or DesignFiles, you are most of the way there. The one column you may need to add is a direct URL to the product or room photo. The same clean-sheet rules we wrote about for Shopify stores and product catalogs apply here: one row per output, one column per field, image URLs in their own column.

Step 1: Collect Image URLs From Wherever They Live

This is the step that eats the most time, because design assets are scattered across a dozen sources.

Vendor product pages. Right-click the product photo and choose Copy image address. The URL usually ends in .jpg, .png, or .webp. JPG and PNG work directly in Canva. WebP is hit or miss, so prefer the JPG version if the vendor offers one.

Trade portals and B2B catalogs. If there is a direct image link, copy it. If it is gated behind a login, download the photo and host it somewhere public first.

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.

Dropbox. Change the trailing ?dl=0 on the share link to ?raw=1 so it returns the raw image instead of the preview page.

Your own site photos and renders. Shots hosted on your portfolio site or an S3 bucket already work as is.

Drop every URL into one column in your spreadsheet. Name it image_url or product_photo or room_shot — pick a convention and keep it consistent.

Step 2: Build the Project Spreadsheet

A typical interior designer's bulk sheet looks like this.

product_namevendordimensionspriceroomproduct_photo
Linen Track Arm SofaMaiden Home84"W x 38"D$3,400Living Roomhttps://cdn.vendor.com/.../sofa.jpg
Brass Cone SconceCedar & Moss6"W x 11"H$295Hallwayhttps://cdn.vendor.com/.../sconce.jpg
Hand-Knotted Wool RugRevival9' x 12'$2,150Living Roomhttps://cdn.vendor.com/.../rug.jpg

Save it as CSV or XLSX. The 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 them in one click.

Step 3: Convert the Spreadsheet With Postprep

This is the conversion step Canva will not do.

Go to postprep.app, upload your CSV, and select the column that holds your 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 60-row sourcing sheet takes well under a minute. The free tier covers 100 rows with no account required, which is enough for most single-project spec decks.

Step 4: Bulk Generate in Canva

Open your spec card template in Canva. Confirm you are on a plan that supports Bulk Create. Based on Canva's current documentation, Bulk Create is part of the paid tiers (Pro, Teams, and similar) and runs on desktop, so double-check your plan and platform before you start. Plan names and eligibility change, so verify against Canva's own help docs if you are unsure.

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 the template fields.

Click Generate designs. Canva produces one finished card per row with the product photos, names, dimensions, prices, and room tags already merged.

If you run several templates off the same sheet — a spec card, a lookbook page, and a social before-and-after — take the same XLSX into each template and run Bulk Create once per template. One dataset, three sets of branded assets.

Download the set as a ZIP, as PDF for the client deck, or as PNG for social.

A Realistic Interior Designer Workflow

Here is the rhythm for a designer running multiple active projects.

Sourcing phase. As you select pieces, drop each one into the project's master sheet with its photo URL, vendor, dimensions, and price. The sheet doubles as your sourcing log and your Canva data source.

Client presentation. When the selections are locked, run the sheet through Postprep and bulk-generate the spec cards and lookbook pages. Export to PDF and drop it straight into the client deck. Edits later? Update the sheet, re-run Postprep, regenerate only what changed.

Project wrap. After the install shoot, build a second sheet with the final room photos, project name, and location. Run it through Postprep and generate portfolio slides and before-and-after social posts in one pass. Keep that sheet of finished rooms running, and once a month you can batch a month of project-showcase posts in a single Canva session.

The whole cycle is about 20 to 30 minutes of spreadsheet time and 15 minutes in Canva per template, whether the project has 20 pieces or 200. Building those same cards by hand runs 3 to 5 hours per project at scale.

One honest note: if a particular deliverable is text-only, like a simple budget summary or a typed scope sheet with no photos, you do not need any of this. Bulk Create handles plain text on its own, and Postprep is only for the jobs where images have to come along.

Frequently Asked Questions

Can I use the same spreadsheet for the client deck and social posts?

Yes. Build it once with all your fields and photo URLs, run it through Postprep once, then take the converted XLSX into as many templates as you need. A spec card template and a social template can both pull from the same file.

My product photos are different shapes and sizes. Will that break the layout?

Canva fits each image into the frame you set in the template. If your frames are a fixed aspect ratio, mismatched photos will crop to fit. For the cleanest result, set your image frames to a consistent ratio in the template and prefer source photos that are roughly that shape.

Some vendor photos are behind a login and I cannot get a public URL. What then?

Download those images and host them somewhere public first — a public Google Drive folder, your portfolio site, or a CDN — then use those URLs in your sheet. Postprep needs a URL it can fetch without authentication.

A few pieces are still being sourced and have no photo yet. Can I generate the rest?

Leave the image URL cell blank for those rows. Postprep skips the embed for empty cells and Canva leaves the placeholder visible. Re-run the job once you have the final photos.

My sourcing lives in a design project tool, not a spreadsheet. Does that matter?

Most project tools export to CSV or let you copy a table out. As long as you can get one row per product and a column of image URLs, the workflow is the same. See our product catalog guide for more on structuring catalog-style data.

The Short Version

Canva Bulk Create handles the merge work for every spec card, lookbook page, portfolio slide, and before-and-after post in your projects. The one thing it does not do is turn image URLs into embedded images inside the XLSX. Postprep is that missing step.

Build one master sheet per project. Convert with Postprep. Bulk generate in Canva. Every product and every room ships its card without another late night in the layout 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