Bulk builder
The bulk builder turns a spreadsheet into many finished pages at once. It's built for personalized designs at scale, like a set of name badges, certificates, or business cards, all generated from one template, so you design and lay out the piece exactly once and let the data do the rest.
Quick overview
- Design one page as your template.
- Select an object, open the properties panel's Design fields section, and give it a field name. Repeat for every placeholder: text, image, QR code, barcode, or color.
- Open the bulk builder and load a CSV or Excel file; columns are matched to your fields automatically when the headers line up.
- Fix any mismatched columns by hand, and choose which column labels each generated page.
- Name the output group, then generate: one new page per row, filled in and dropped into its own page group.
- Export the group as a batch. See Bulk and group export.
Detailed reference
Marking fields on the template
| Field type | Detected from | What the CSV cell should hold |
|---|---|---|
| Text | A text object | Plain text. A leading currency symbol already on the object is kept, and only the number is swapped |
| Image | An image object | A full image URL, or an embedded picture pulled from an Excel cell |
| QR code | A QR object | The URL or text to encode |
| Barcode | A barcode object | The value to encode, using the barcode's own type and settings |
| Color | An object's fill or stroke | A hex color value |
A grid layout's individual cells can each carry their own field too, which is handy for a photo grid repeated across many badges or certificates. Each field can also carry an optional note, a short reminder to yourself about what belongs in it, which is useful once a template has more than a couple of fields.
A QR or barcode field keeps whatever type, size, and style you already gave the object on the template. Only the encoded value changes per row, so set the barcode's symbology and appearance once, before you mark it as a field.
The bulk builder needs at least one tagged field to open, so marking fields on the template always comes first.
Not the same as bulk export
A separate feature, bulk export, also reads a CSV, but only to swap text on a business card's front and back for a batch of exported files: it never creates new pages. The bulk builder described here is the one to reach for when you want the results to stay in the project as editable pages.
Loading your data
| Format | Notes |
|---|---|
| CSV | Parsed directly from a file you pick |
| Excel (.xlsx / .xls) | Reads the first worksheet; pictures placed directly in cells are pulled out and used as images automatically |
Columns are matched to fields automatically when a header matches a field name, ignoring case and surrounding whitespace. The rest of the name still has to line up, so a Full Name field pairs with a full name column but not with a fullname one; any mismatch can be fixed by hand in the field-matching step. An image cell inside a grid layout can also take a single uploaded file instead of a per-row URL, applied to every generated row, which is handy for a shared logo or watermark across the whole batch.
Generating pages
One new page is created per row, inserted right after the template. Choose which column labels each generated page, or let them auto-number as "Page 1," "Page 2," and so on, and name the output group: a new page group is created automatically to hold every generated page together. Rows are processed in batches of twenty with a progress bar, so a large spreadsheet doesn't lock up the tab. A blank cell leaves that spot's existing template content untouched instead of clearing it.
After generating
Every generated page is a normal page: open its tab and edit it by hand if one row needs a tweak the template couldn't anticipate, without affecting the others or the template itself. The whole batch is also a normal group, so it works with everything in page tabs and groups, including tagging, reordering, and sleep.
Limits and validation
There's no hard row limit beyond what the browser can hold in memory. The template must be a regular design page with saved content, so the builder will not run on a board or slide deck, and generating requires at least one mapped field and one data row. Blank or malformed CSV files and empty spreadsheets are caught with a clear message instead of failing silently. The Review button in the field-matching step stays disabled until at least one field is mapped, and generation is refused with a message if the sheet somehow reaches it without both data and a mapped field.
Both Bulk Create and the close button stay disabled while a batch is running, so you can't accidentally start a second run or close the dialog partway through.
Regenerating
There's no in-place update: running the bulk builder again always creates a fresh set of pages in a fresh group, so delete the previous batch first if you don't want duplicates sitting alongside it. Because every field lives on the template page itself, fixing something there and running the batch again applies that fix to every output.
Step by step
Tag a template's fields, then generate 50 badges from a CSV
- Design one badge page: a text object for the name, an image object as the photo placeholder, and a QR object for the link.
- Select the name text, open the properties panel Design fields section, and give it a field name like
name. Repeat for the photo (photo) and the QR (link). - Open the gear menu and choose Bulk Builder. The upload step lists your active fields so you can confirm all three are recognized.
- Upload a CSV whose columns are
name,photo, andlink, with thephotocolumn holding real image URLs and thelinkcolumn holding the value each QR should encode. - On the Match Fields step, confirm the auto-matched columns. On the Create step, pick the
namecolumn as the page label, name the group "Badges", and choose Bulk Create. - Fifty finished pages appear in a new "Badges" group immediately after the template. See Page tabs and groups.
Fix a CSV column that didn't auto-match a field name
- If a column header does not match a field name (for example a
linkfield but aQR URLcolumn), that field shows as Not mapped on the Match Fields step. - Open the dropdown next to the unmapped field and pick the correct column by hand.
- The Review button enables once at least one field is mapped. Map every field you want filled before continuing, since an unmapped field just keeps its template value on every page.
Regenerate a batch after fixing a typo on the template
- Fix the typo on the template page directly. Because every field lives on the template, the correction is picked up on the next run.
- Delete the previous output group first, since each run creates a brand-new group rather than updating the old one.
- Open Bulk Builder again, reload the same file, and choose Bulk Create. The fix propagates to every generated page.
Common tasks
- Reuse one image across every badge: inside a grid layout, upload a single image to a grid cell instead of mapping a column, and it fills that cell on every row.
- Load a semicolon or tab file: the CSV parser guesses the delimiter among comma, semicolon, and tab, so an export that uses semicolons loads without converting it first.
- Keep a currency symbol on a price: tag a text object that already shows a symbol; a plain number in the cell replaces only the number and leaves the symbol in place.
- Auto-number the pages: leave the page label column on Auto page labels to get "Page 1," "Page 2," and so on.
- Keep the template value for some rows: leave that cell empty. A blank cell is skipped, so the template's own content stays.
Troubleshooting
- "CSV looks empty" or "xlsx looks empty". The file had no usable header row or no data rows, and fully blank rows are dropped automatically. Check that the first row holds column names and that at least one data row has content.
- A blank cell does not clear a field. An empty cell is skipped and the template's existing content stays. There is no way to blank a field from the sheet; only a non-empty value replaces what the template shows.
- A tagged object was deleted from the template. Fields are re-read from the template each time you open the builder, so a deleted object simply drops out of the field list and any data meant for it goes nowhere. Re-tag a new object with that field name to bring it back.
- Excel embedded images do not fill grid cells. Grid cell image columns need real image URLs starting with
https, not pictures pasted into the cells. When every grid cell comes up empty, the builder warns about this right after generating. - An image comes out blank. An image or grid-cell value must be a reachable
http/httpsURL or an embedded picture pulled from an Excel cell. A bare filename typed into a CSV cell will not resolve. - A very large sheet gets sluggish. There is no row cap, but every generated page is a full copy of the template held in memory and then saved with the project, so a sheet with thousands of rows can bloat both memory and the saved file. Split a huge run into smaller groups if the tab slows down.
- The builder will not open. It needs at least one tagged field and a regular design page with saved content. It reports a clear message and does nothing on a board or slide deck, or when no object has a design field yet.
Tips
One template, many outputs
Keep the template tidy and get the fields right once. Every row reuses it, so a fix to the template applies everywhere the next time you regenerate.
Use real image URLs
An image field needs a reachable URL, or a picture embedded directly in an Excel cell. A bare filename typed into a CSV cell won't resolve to anything.
Clean up before you regenerate
Since every run creates a brand-new group, delete or rename the previous batch first if you're iterating on the same template, so you don't end up with several near-identical groups in the tab strip.
Related
- Page tabs and groups for the group the results land in
- Bulk and group export for exporting the generated pages
- QR codes and barcodes for setting up those field types
- Properties panel for the Design fields section