Personalize at scale
Design one template, mark the parts that change per person, and turn a spreadsheet into hundreds of finished pages in one run, name badges, certificates, or personalized cards, without touching each one by hand.
Before you start
You need to be signed in with a workspace open, and a CSV or Excel file with one row per output, headers matching the fields you plan to mark in step 2.
Step 1: Design the template
Build the layout once: a name badge, a certificate, or whatever you are generating many of. Treat it exactly like a normal page, add text, images, a QR code, or a barcode as placeholders for what will change per row.
Step 2: Mark the fields that change per row
Select an object and open the properties panel's Design fields section. Pick a preset from the field dropdown, text fields like title, subtitle, body, or a counter, image fields like a photo or a logo, or a QR/barcode value. Repeat for every placeholder on the template: a text object, an image object, a QR object, a barcode object, or a color on a fill or stroke.
| Field type | Detected from | What the CSV cell should hold |
|---|---|---|
| Text | A text object | Plain text |
| Image | An image object | A full image URL, or an Excel cell picture |
| QR code | A QR object | The URL or text to encode |
| Barcode | A barcode object | The value to encode |
| Color | A fill or stroke | A hex color value |
A grid layout's individual cells can each carry their own field too, handy for a repeated photo slot. The bulk builder needs at least one marked field before it will open, so this step always comes first. See Bulk builder for the full field type reference.
Step 3: Open the bulk builder
Click the gear icon in the top toolbar and choose Bulk Builder.
Step 4: Load your data
On the first step of the 3-step wizard, upload a CSV or an Excel (.xlsx / .xls) file. Excel files read the first worksheet, and pictures placed directly in cells are pulled out and used automatically for image fields. Columns are matched to your fields automatically when a header's text matches a field name, ignoring case and spacing.
Step 5: Fix the mapping
On the second step, review the matched columns and fix any by hand that did not line up automatically. An image field can also take a single uploaded file applied to every row instead of a per-row URL, useful for a shared logo or watermark rather than a per-person photo.
Step 6: Name the batch and generate
On the third step, type a Group name for the output, and choose which column labels each generated page, or let them auto-number as "Page 1," "Page 2," and so on. Click Bulk Create. One new page is created per row, inserted right after the template and dropped into its own new page group, processed in small batches with a progress bar so a large spreadsheet does not lock up the tab. A blank cell in a row leaves that spot's template content untouched instead of clearing it.
Step 7: Spot-check and adjust
Open a few of the generated pages from the tab strip. Every generated page is a normal, fully editable page, so fix anything a particular row needed by hand without affecting the template or the rest of the batch. If the template itself needs a fix, correct it there and run the bulk builder again, remembering that a second run always creates a brand-new group, so delete the previous one first if you do not want duplicates sitting next to it.
Step 8: Export the batch
Select every page in the generated group (Ctrl/Cmd-click each tab, or select the whole group from the page-tab strip), open the export dialog's advanced area, and choose group export:
| Output | Contents |
|---|---|
| ZIP | One image file per page (PNG, JPG, WebP, or SVG) in a single archive |
| Combined PDF | Every selected page in one PDF, in order |
| Individual files | Each page downloads separately |
| Excel (XLSX) | A spreadsheet report with a thumbnail of each page, useful for review and sign-off |
Pick 150, 300, or 600 DPI for the image-based outputs. See Bulk and group export for the full option set, including the separate, narrower "bulk export" feature that swaps text on a business card's front and back without creating new pages.
Common tasks
| Goal | Do this |
|---|---|
| Reuse the same logo on every generated page | Upload one image for that field instead of a per-row URL column |
| Skip a field for just a few rows | Leave that row's cell blank, the template's existing content stays in place |
| Review before a big export | Open a handful of generated pages first, then batch-export once they look right |
| Regenerate after fixing a typo on the template | Delete the old group, then run the bulk builder again with the same data |
Tips
Fix the template, not the pages
Because every field lives on the template, correcting a typo or a layout issue there and regenerating applies the fix to the whole batch at once. Editing generated pages one by one only makes sense for a genuinely one-off exception.
Image fields need a real URL
An image field resolves a full image URL, or a picture embedded directly in an Excel cell. A bare filename typed into a CSV cell will not resolve to anything.
A QR or barcode field keeps its style
Set a QR or barcode object's type, size, and appearance once on the template before marking it as a field, only the encoded value changes per row after that.