PostPrep
← Blog
2026-08-30

Smartsheet to Canva Bulk Create: The Complete Workflow (With Images)

Draft — Post #44 · Target keyword: smartsheet to canva bulk create · Meta: Smartsheet's export drops your inserted images entirely. Here's the full Smartsheet to Canva Bulk Create workflow, from image

Pete B.
Pete B.
Founder, Postprep

Draft — Post #44 · Target keyword: smartsheet to canva bulk create · Meta: Smartsheet's export drops your inserted images entirely. Here's the full Smartsheet to Canva Bulk Create workflow, from image URLs to bulk-generated designs.

Your Smartsheet tracks a product catalog, a client roster, or a content calendar. Every row has a name, a status, and a photo, dropped straight into a cell or pasted in as a link.

You export the sheet to Excel, open Canva, fire up Bulk Create, and connect the columns. The text merges fine. The image column comes back empty, or the photo isn't in the file at all.

That's the Smartsheet to Canva Bulk Create wall, and it's a harder wall than most spreadsheet tools put up. Smartsheet doesn't just export your images as unusable text links. If you inserted them the normal way, it drops them from the export completely: no link, no filename you can chase down, just alt text. Here's why that happens, the one setup that actually gets you a usable link, and the one-step fix that turns a Smartsheet export into finished Canva designs.

Why Canva Bulk Create Stalls on Smartsheet Exports

Smartsheet holds images two different ways, and which one you used matters more here than on most source platforms. Insert an image directly into a cell (the toolbar's Insert Image button, or copy-paste in Chrome or Firefox), and Smartsheet stores it as an embedded picture, capped at 30 MB, one per cell. Paste a plain URL into a regular text or hyperlink column instead, and Smartsheet just holds onto the string of characters.

Export a sheet with inserted-image cells to Excel, Google Sheets, or Microsoft Project, and the images don't come along at all. Smartsheet's own help documentation states it plainly: "When you export data to Microsoft Excel, Microsoft Project, or Google Sheets, images aren't included. Instead, the alt text appears in the cell." You get a filename like Image: mug.jpg, not a link, not the photo. Row attachments, separate from in-cell images, don't survive export either. Users have been requesting a fix since at least 2016; the answer has stayed the same ever since: not supported.

Export a sheet with a plain URL in a text column, and you get what you'd expect: the raw link, exactly as typed. That's real progress, but it runs into the same wall as every other spreadsheet-to-Canva workflow. Canva Bulk Create only accepts images physically embedded inside the file as binary data, a format called DrawingML. A URL is just text to Canva. It either prints the raw link inside your design or leaves the image element blank. We covered the technical reason in full in Why Canva Bulk Create Ignores Image URLs.

So Smartsheet users are actually solving two problems: get a usable image URL out of Smartsheet at all, since the default method doesn't produce one, then get that URL turned into an embedded image Canva can read.

The Manual Workaround Most Smartsheet Users Try First

The first hack people find, usually right after the export comes back empty, is the copy-paste-URL trick. Open the row's attached image in a new tab, copy the long AWS-hosted URL from the address bar, and paste that as text into a new column. It works, technically, since the URL is now a plain string Excel will export. But it stops displaying the image inside Smartsheet, and it means redoing the copy-paste by hand for every row, every time a new one gets added.

The second hack is the Excel Insert > Picture route: export what you can, click into each image cell, use Insert > Picture > Place in Cell, browse to a downloaded copy of the photo, repeat for every row. Fine for a dozen rows. At catalog or roster scale, it's an afternoon gone, and it starts over the next time the sheet changes.

A third path is Google Sheets' =IMAGE() formula. It looks like it solves the problem, since the photo renders in the cell, but it doesn't embed anything: =IMAGE() fetches the picture live at view time, so the file still has zero embedded image data, and Canva sees nothing when it parses the sheet. We broke this down fully in Why =IMAGE() Doesn't Work for Canva Bulk Create.

Smartsheet's API also exposes a documented Image URL endpoint for cell images. Workable for a developer to script against, but it's a script, not a two-click export, and worth confirming the returned URL is stable before building a recurring workflow on it.

What You Need Before You Start

Two things.

A Canva template per design type. Most Smartsheet workflows map to a small set of repeating layouts: a product card with a photo, name, and price; a content calendar tile with a thumbnail and headline; a roster card with a headshot and title. Build the template with Bulk Create placeholders for each text field, plus one image element for the photo.

Your image links living in a plain text or hyperlink column, not inserted as in-cell images. This is the Smartsheet-specific step, and it's the one that actually matters. If your photos are currently inserted directly into cells, host them somewhere public (your website, a CDN, cloud storage with shareable links) and paste those links into a new column instead. If you're starting from row attachments, open each one, copy its hosted URL, and do the same.

The same clean-sheet rule applies here as on Airtable, Notion, Coda, and monday.com: one row per output, one column per data field, image links isolated in their own column.

Step 1: Get Your Image URLs Into a Plain Column

If your sheet already has a column of working plain-text image URLs, skip to Step 2. If your photos are inserted as in-cell images or row attachments, open each one, copy its hosted URL, and paste it into a new column for that row. It's manual the first time through a sheet. Once the column exists, new rows just need a URL pasted in going forward.

Step 2: Export Your Sheet to Excel

Open the sheet, filter to the rows you need, hide extra columns, and sort in the order you want the designs to come out. Then use File > Export > Export to Microsoft Excel.

Your plain-text URL column comes through intact. Any inserted-image cells will come through as alt text only, so double check your URL column is the one doing the work before you move on.

Step 3: Clean Up the Image Column

Open the exported file. You want one clean image URL per row.

Trim any stray text around the link down to the bare URL ending in .jpg, .png, or similar. Rename the column image_url. Leave everything else as is.

Step 4: Build the Spreadsheet

A typical Smartsheet product tracker, cleaned up for Bulk Create, looks like this.

itemstatusownerimage_url
Ceramic PlanterActiveDanahttps://cdn.yoursite.com/planter.jpg
Woven BasketActiveDanahttps://cdn.yoursite.com/basket.jpg
Oak Side TableBackorderedMarcushttps://cdn.yoursite.com/table.jpg

Save it as CSV or XLSX. Column names don't need to match your template exactly, since you connect them manually in Bulk Create, but matching names lets Canva auto-connect in one click.

Step 5: Convert the Spreadsheet With Postprep

This is the step nothing in Smartsheet or Canva does for you. Go to postprep.app, upload your file, and select the column holding the image URLs. Postprep fetches each link, downloads the image, and embeds it inside the XLSX as DrawingML, the binary format Canva Bulk Create actually reads. Every other column passes through unchanged.

A few hundred rows convert in about a minute. The free tier covers 100 rows with no account required, enough to run a full sheet through before committing to the whole workflow.

Step 6: Bulk Generate in Canva

Open your template in Canva. Bulk Create needs a Canva Pro, Teams, Business, Enterprise, Education, or Nonprofit plan, and runs on desktop only, so confirm your plan covers it before you get here.

In the left panel, click Apps, then Bulk Create. Click Upload data, select your converted file, then drag each column onto its placeholder, or use Auto-connect if the names line up. Click Generate designs. Canva builds one finished design per row, photo included, downloaded as a ZIP ready to post, print, or schedule.

A Realistic Smartsheet Workflow

Smartsheet stays the single source of truth. Every row that needs a graphic carries its image link in a plain text column instead of an inserted picture. When a batch is due, whether that's a weekly product update, a new round of roster cards, or a content calendar refresh, you open the sheet, filter to what's ready, export, clean the image column, run it through Postprep, and bulk-generate in Canva.

When the sheet changes, the pipeline doesn't. Update the rows, re-export, re-run Postprep, regenerate, no one opening Insert > Picture by hand. See the general version of this workflow in How to Use Canva Bulk Create With Images. If your team runs a similar setup in Airtable, Notion, Coda, or monday.com, the fix is the same shape, with its own export wrinkle covered on each: Airtable, Notion, Coda, and monday.com.

Frequently Asked Questions

Why did my images disappear completely when I exported to Excel?

They were inserted directly into cells, or attached to the row, and Smartsheet's own documentation confirms neither survives a standard export. You get alt text like Image: mug.jpg, not a link or the photo itself. Move your image links into a plain text or hyperlink column with a publicly hosted URL, and the export will include the actual link instead.

Can I use the Smartsheet API to pull image URLs instead?

Yes, via its documented Image URL endpoint for cell images. Workable for a developer's one-off pull, but it's a script, not a two-click export, so confirm the returned link stays valid before building a recurring workflow on it.

Do I need a paid Smartsheet plan for this?

No. Any plan that lets you export a sheet to Excel works. The conversion and design generation happen outside Smartsheet. You do need a Canva plan that includes Bulk Create.

The text merged in Canva but the images are blank or show a raw link. What happened?

Canva read your image column as plain text instead of an embedded photo. That's expected, not a bug. Run the exported file through Postprep first, then upload the converted XLSX to Bulk Create.

Will exporting to CSV instead of Excel fix the image problem?

No. CSV is a plain-text format and can't hold an embedded image either way. A plain-text URL column exports fine either way; an inserted-image cell doesn't come through at all, regardless of format.

The Short Version

Smartsheet is a solid single source of truth for a catalog, a roster, or a calendar, but its export handles images worse than most spreadsheet tools. Inserted images and row attachments don't survive the export at all, and even a working URL column only gets you as far as plain text, which is exactly what Canva Bulk Create can't read. Postprep closes that second gap in one upload, once your image links are sitting in a plain text column to begin with.

Move your photos to a plain text or hyperlink column, export the sheet, clean up the image column, convert with Postprep, bulk generate in Canva. Your Smartsheet becomes a design pipeline, and you never hand-place another image.


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