How Pet Groomers Can Use Canva Bulk Create for Before-and-After Posts, Pet of the Week, and Booking Promos
Draft — Post #37 · Target keyword: canva bulk create pet groomers · Meta: Turn a folder of grooming photos into a month of before-and-after posts and Pet of the Week graphics. The Canva Bulk Create wo

Draft — Post #37 · Target keyword: canva bulk create pet groomers · Meta: Turn a folder of grooming photos into a month of before-and-after posts and Pet of the Week graphics. The Canva Bulk Create workflow built for pet groomers.
You finished a full day of grooms. Twelve dogs in, twelve fluffy dogs out. You snapped a before shot and an after shot of every single one because you know those side-by-sides are your best-performing content. Now they are sitting in your camera roll, and turning them into branded Instagram posts is going to eat your whole evening.
Each post is the same layout with a different pet photo, a different name, and a different breed. This is exactly what Canva Bulk Create is for. So you build a spreadsheet, paste in the photo links, upload it to Canva, and watch it spit out a stack of posts with empty image slots where the dogs should be.
This post walks through the full Canva Bulk Create pet groomers workflow, the one piece Canva will not do on its own, and a realistic weekly rhythm for a busy grooming salon.
Why Canva Bulk Create Stalls for Pet Groomers
Grooming content is photo-first. Before-and-after transformations. Pet of the Week. New client welcomes. Breed-specific cut showcases. Every one of those posts lives or dies on the photo, and those photos start life as files on your phone, in a Google Drive folder, or inside your booking software's client records.
Canva Bulk Create handles the text side without complaint. Drop in a column of pet names, breeds, owner handles, or service types and Canva merges them in cleanly across every design.
Image URLs are where it breaks. Canva Bulk Create only accepts photos that are physically embedded inside the XLSX file as binary data, in a format called DrawingML. A link to a photo is just text as far as Canva is concerned. It either prints the raw URL inside your post or leaves the photo slot blank. We covered the technical reason in full in Why Canva Bulk Create Ignores Image URLs.
For a groomer this is the whole game. A batch of 15 before-and-after posts with photo links is not going to render unless those photos are embedded inside the XLSX before Canva ever sees it.
The Manual Workaround Most Groomers Try First
The usual hack goes like this. Open Excel, click each image cell, use Insert > Picture > Place in Cell, find the right dog photo on disk, repeat for every row. That works in theory if every photo is already downloaded, cropped, named to match, and sitting in one folder.
In practice your before shots are on your phone, the afters are in a different album, a few got texted to you by the owner, and one client emailed a photo of their cat that you still need to track down. By the time you have all of it downloaded and inserted by hand, you could have groomed two more dogs.
The other common attempt is the =IMAGE() formula in Google Sheets. It looks like it works because the photo shows up in the cell. It does not survive the trip to Canva. We explained why in Why =IMAGE() Doesn't Work for Canva Bulk Create. Short version: =IMAGE() is a live cell reference, not real embedded image data, so Canva reads nothing.
What You Need Before You Start
Two things.
A Canva template per post type. Most groomers cycle through a handful of recurring designs. The common ones are a before-and-after split with the pet name and breed, a Pet of the Week feature with a single hero photo and a short caption, a new-client welcome card, and a service or seasonal promo with the pet photo as the background.
Each template needs Canva Bulk Create placeholders for your text variables like {{pet_name}}, {{breed}}, {{service}}, plus an image element (or two, for the before-and-after) where the photos drop in.
A single source-of-truth spreadsheet. One row per finished post. Columns for every text field plus a column for each photo URL. A before-and-after layout needs two image columns, one for the before shot and one for the after.
If you already track clients in software like Gingr, MoeGo, Pawfinity, or even a simple Google Sheet, you are most of the way there. The only thing you may need to add is a direct link to each photo. The same clean-sheet rules we wrote about for salons and spas apply here: one row per output, one column per data field, photo URLs in their own columns.
Step 1: Collect Your Photo URLs
This is the step that costs most groomers the most time, so it helps to have a system.
Google Drive. Upload the day's photos to a folder, then convert each share link to a direct image 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 so it returns the raw image instead of the preview page.
Your booking software. If your client management tool stores pet photos, open each record and copy the image address (right-click the photo, Copy image address). The URL usually ends in .jpg or .png.
Photos texted or emailed by owners. These need to go somewhere with a real URL first. Drop them in your Drive folder and use the Drive link format above.
Put the before links in one column and the after links in another. Pick a naming convention like before_photo and after_photo and stick with it.
Step 2: Build the Grooming Spreadsheet
A typical groomer's bulk sheet looks like this.
| pet_name | breed | service | before_photo | after_photo |
| Biscuit | Goldendoodle | Full Groom | https://drive.google.com/.../biscuit-before.jpg | https://drive.google.com/.../biscuit-after.jpg |
| Mochi | Shih Tzu | Bath & Tidy | https://drive.google.com/.../mochi-before.jpg | https://drive.google.com/.../mochi-after.jpg |
| Rex | German Shepherd | De-shed | https://drive.google.com/.../rex-before.jpg | https://drive.google.com/.../rex-after.jpg |
Save it as CSV or XLSX. Your column names do not have to match Canva exactly because 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 columns that hold your photo URLs. Postprep fetches each link, downloads the image, and embeds it inside the XLSX as DrawingML, the binary format Canva actually reads. Both your before and after columns get embedded, and every text column passes through unchanged.
A sheet of 30 grooms takes under a minute. The free tier covers 100 rows with no account required.
Step 4: Bulk Generate in Canva
Open your before-and-after template in Canva. Make sure you are on a plan that supports Bulk Create. Based on Canva's current documentation this is a paid feature found on Pro and the various team and organization plans, and it runs on desktop. Plan eligibility changes from time to time, so check your own account if the option is missing.
In the left panel click Apps, then Bulk Create. Click Upload data and choose your converted XLSX. Drag the before column onto the before image slot, the after column onto the after slot, and each text 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, every dog already in place with its name and breed.
Running more than one template off the same data? Take the same XLSX into your Pet of the Week template and your promo template and run Bulk Create again. Same photos, different layouts.
Download the set as a ZIP and you have a month of grooming content ready to schedule.
A Realistic Pet Groomer Workflow
Here is what the rhythm looks like for a working salon.
End of each grooming day. Snap a before and after for every pet. Drop both into that week's Drive folder.
Once a week. Spend ten minutes filling in the spreadsheet: pet name, breed, service, and the two photo links per row. Run it through Postprep. Generate the week's before-and-after posts in Canva. Pick your favorite for Pet of the Week and run that template too.
Once a month. Pull your best transformations into a seasonal promo or a "book your holiday groom" campaign using the same sheet and a different template.
The whole weekly cycle takes about 15 minutes of spreadsheet time and 10 minutes of Canva time, whether you groomed 10 pets that week or 40. Doing it by hand, one post at a time, is the difference between posting consistently and letting your camera roll pile up.
Frequently Asked Questions
Do I need this for text-only posts like grooming tips or hours updates?
No. If a post has no pet photo, Bulk Create handles the text on its own and there is nothing to convert. Postprep only matters when you are embedding actual photos from URLs.
My before-and-after layout has two photos. Does that work?
Yes. Use two image columns in your sheet, one for before and one for after, and point Postprep at both. It embeds each, and you map each to its slot in Canva.
Some owners send low-quality phone photos. Will they look bad?
Postprep embeds whatever the URL returns at its original resolution. A blurry source stays blurry, so it helps to shoot your own befores and afters on a clean background when you can.
I don't want to ask owners for photo links. Can I just use my own?
That is the easier path. Shoot every groom yourself, drop the photos in one Drive folder, and you control the whole pipeline. Owner-submitted photos are a bonus, not a requirement.
A few rows are missing the after photo because the dog left early. What happens?
Leave that cell blank. Postprep skips the embed for empty cells and Canva leaves the placeholder showing. Re-run the row once you have the photo.
Can I use this for my mobile grooming van, not just a salon?
Yes. The workflow does not care where you groom. As long as you can get the photos into a folder with shareable links, the rest is identical.
The Short Version
Canva Bulk Create does the merge work for every before-and-after, Pet of the Week, and promo post you put out. The one thing it does not do is turn photo URLs into embedded images inside the XLSX. Postprep is that missing step.
Shoot your grooms. Fill one weekly sheet. Convert with Postprep. Bulk generate in Canva. Your transformations turn into a steady stream of branded posts without eating your nights.
Try it free at postprep.app — 100 rows, no account required.