Bulk image generation from your CSV.
Turn a campaign spreadsheet into consistent image variants. The useful part is a reliable path from columns to template variables, then from each queued job to its finished file.
Separate the layout from changing content.
Save your banner, cover or promotional design as a template. In Automate, expose the text, image or fill fields your campaign will change. Select that template in Bulk Renders and wait for its variables to load.
For this example, use three text fields: headline, a price label and an offer label. These are illustrative campaign prices, not Pikstrapi subscription prices. Each CSV row describes one finished variant.
headline,price_label,offer_label
New collection,€19 per product,Launch
"Design for teams, without repetition",€29 per product,Example offer
"Your next idea ""in images""",€39 per product,Example editionValidate the file before producing the batch.
Use a comma-separated CSV with a header row and at least one data row. Every header must be nonempty and unique, and every row must contain the same number of cells. Export UTF-8 when your content includes accented characters.
- Wrap a field in quotation marks when it contains a comma or a line break. Escape quotation marks inside the field by doubling them.
- Check the imported preview. A spreadsheet displayed correctly is not proof that its CSV separator and quotation marks are correct.
- Keep slide selection out of the CSV. Choose a fixed slide in the wizard; technical slide-routing columns are excluded from imported data.
If the importer reports duplicate headers, inconsistent columns or an unclosed quoted field, correct the source spreadsheet and export again. Start with a few rows before sending the campaign.
Map a column to the field it should replace.
The mapping screen uses the saved template variables. Column headers that match a variable ID can map automatically; otherwise select the column manually. A friendly CSV header does not have to match the object’s internal ID.
- Map headline to the title’s text property. Map price_label and offer_label to their corresponding text fields.
- For an image field, provide a URL the renderer can access and map it to the image’s source property. A local computer filename is not an image URL.
- Review configured defaults. Empty cells can fall back to those values. If a field should remain fixed, remove its mapping or keep it outside the exposed variables.
- Choose output format and the same template slide for every row. Preview long headlines and missing image data before submitting.
Submission and completion are different steps.
The browser submits each row as a deferred render. Keep the wizard open until submission finishes. Once accepted, a job continues on the server; the batch screen follows its status.
Check both submission failures and render failures. Completed, failed and canceled rows can all contribute to finished progress, so a full progress indicator does not mean every image succeeded.
Read a failed row’s error before retrying. Retrying submits a new render with the saved row request and normal credit accounting. Canceling queued work does not stop a job that is already running.
Keep the source data with the final results.
Download completed results from the batch detail and review a sample at its intended size. Preserve your source CSV and record which rows need corrections. Batch bookkeeping is local to the browser/account; do not treat it as shared history synchronized across devices.
For recurring events rather than uploaded spreadsheets, use the image API or n8n guide. For a course roster, the certificate guide adds name and date checks; for document output, read the PDF limitations before choosing the format.
- Personalized certificates from a recipient CSV
- Image generation API guide
- PDF rendering and merging guide
- All guides and example files