Autype
Back to blog

Updated October 7, 2026

Bulk PDF from CSV or Excel: One Template, Up to 100 Personalized Documents per Job

One template plus a CSV or Excel file becomes up to 100 personalized PDFs per job. A practical guide to data preparation, mail-merge alternatives, records, and API automation for recurring document volumes.

Document AutomationTutorials#Autype#bulk document generation#PDF automation#CSV#Excel#document automation#template variables#records#n8n#Bulk-PDF#Seriendruck#PDF aus CSV#Dokumentenautomatisierung#Geschäftsdokumente

Bulk PDF from CSV or Excel: One Template, Up to 100 Personalized Documents per Job

Every month, somewhere in almost every company, the same scene repeats. A spreadsheet holds the data — 60 workshop attendees, 45 open invoices, 30 new hires — and each row needs to become its own polished PDF: a certificate, an invoice, a welcome letter. Collecting the data takes minutes. Producing the documents does not. Someone opens the template, retypes or pastes the fields, exports a PDF, renames the file, and moves on to the next row. Two hours later the pile is done — with three typos, one file called invoice_final_v3, and no reliable record of what was actually sent.

The underlying fix is older than the problem: separate layout from data, once, and let software do the merging. What has changed is how little effort that now takes. A document platform such as Autype turns one template plus a CSV or Excel file into up to 100 personalized documents in a single rendering job — no mail-merge wizard, no macro hygiene, no script to maintain.

This article walks through the whole pattern: how template and data file fit together, how to prepare data so it renders cleanly, what happens past the 100-document mark, and when mail merge, a homemade script, or a platform is the right tool.

The pattern: one template, N data records

Bulk generation needs exactly two ingredients. The first is a template with placeholders — {{client_name}}, {{amount}}, {{due_date}} — where the variable names later match the column headers of the data file. The second is that data file itself: CSV or Excel, one row per document.

A minimal invoice template in Extended Markdown looks like this:

# Invoice {{invoice_number}}

**Billed to:** {{client_name}}
**Amount due:** {{amount}}
**Due date:** {{due_date}}

The matching CSV starts like this:

client_nameinvoice_numberamountdue_date
Northwind GmbHRE-2026-10411480.002026-11-04
Aurora Design ABRE-2026-1042620.502026-11-04
Lighthouse ConsultingRE-2026-10432140.002026-11-11

Three rows, three finished PDFs. Variables can carry more than plain text: typed fields for numbers, dates and images keep formatting decisions (currency display, date styles) out of the spreadsheet, and list or table variables fill repeated blocks — invoice positions, attendee lists, order lines — without any manual layout work.

From spreadsheet to finished PDFs, step by step

StepWhat you doWhat to watch
1 — Build the templateCreate the document once, placing variables where the data goesVariable names should mirror your column headers; a typo here becomes an empty field later
2 — Prepare the data fileExport CSV or Excel from your source systemOne row per document; numbers as numbers, dates as dates
3 — Import the recordsLoad the file into the records panel and run the compatibility checkThe check reports missing or mismatched variables before anything renders
4 — Render the bulk jobRender the selected records; up to 100 documents per jobThe limit applies per job — for larger volumes, see below
5 — DistributeDownload the bundle or hand delivery to automationThe same template also renders DOCX and ODT when a recipient needs an editable file

Two details make this workflow durable rather than a one-off trick. Stored records persist between sessions: you can keep recipient datasets in the platform, re-import updated files, and trace historical renders when a customer asks what exactly they received in March. And because the compatibility check runs against the live template, a renamed variable is caught at import time — not in the finished PDF.

Mail merge, script, or platform?

CriterionWord mail mergeOwn script (Python etc.)Document platform (Autype)
Setup effortLow, but per templateHigh — layout code, dependenciesLow: template editor with live preview
Layout qualityBound to Word stylesWhatever you buildTemplate design, brand styles, reusable blocks
Output formatsPDF via exportPDF, DOCX via librariesPDF, DOCX and ODT from one source
Data sourcesTables, listsAnything you can parseCSV, Excel, JSON; API payloads
RepeatabilityFragile (fields drift)Good, but code maintenanceRecords panel keeps data and render history
AutomationNot practicalFull control via codeREST API, webhooks, n8n and Make
Skills neededOffice knowledgeDeveloperOffice knowledge for bulk; developer optional

Mail merge remains legitimate for twenty letters on a Tuesday afternoon. Scripts win where documents are a by-product of an existing software stack. Platforms win when non-developers must own the template and the volumes recur every month.

Preparing data that renders cleanly

Most bulk-rendering problems are data problems. A short discipline prevents nearly all of them:

  • Column headers equal variable names. Not "close enough" — exact. clientname will not fill {{client_name}}.
  • One row, one document. Merged cells and multi-row records belong in the source system, not in the render file.
  • Types stay types. Let the renderer format amounts and dates; do not pre-format them as text strings in Excel.
  • Images as references. Logo or signature columns hold URLs or IDs of uploaded images, not embedded files.
  • Test with three rows first. Render the first rows, inspect the PDFs, then start the full job. The compatibility check catches structural mismatches; your own eye catches content ones.

Beyond a single job: API and automation

The 100-document figure is per job, not per month. Three hundred certificates means three jobs — or one API call in a loop. Where volume is regular, automation is the better route: an HTTP request renders the document from a template ID and JSON payload, a webhook reports completion, and workflow platforms such as n8n or Make trigger the whole chain from whatever system already holds the data — a form submission, a CRM stage change, a monthly schedule. We covered the single-document side of that pattern in our guide to automating Word templates from JSON; bulk rendering is the same idea with an array instead of an object.

Costs scale linearly: a standard render costs one credit, so a full 100-document job consumes 100 credits — a volume worth checking against the pricing model before committing to a monthly cadence.

Who actually runs bulk jobs

Use caseTypical data sourceVolume patternUsual format
Course and event certificatesRegistration export50–100 per eventPDF
Invoices and payment remindersAccounting exportWeekly, 30–100PDF
Employment and onboarding lettersHR system exportMonthly, smallPDF + DOCX
Personalized proposalsCRM (deals)Continuous, smallPDF + DOCX
Policy acknowledgmentsHR/IT exportQuarterly, largePDF

The pattern is always the same: a recurring list of people or accounts, a fixed layout, and the requirement that every single document look individually made.

Conclusion

Bulk PDF generation is not exotic technology — it is the disciplined separation of layout and data, applied to the spreadsheet you already have. The practical questions are only who maintains the template, how often the data refreshes, and how finished files reach their recipients. If your current answer involves Word wizards and renamed copies, one template plus a CSV is worth trying: prepare the file, import the records, render up to 100 documents per job, and let the API or n8n take over once the pattern has proven itself.

Why platforms like Autype fit this job better than classic typesetting stacks is a separate discussion — see Typst vs. LaTeX vs. Extended Markdown and the document engine overview for the automation side of the platform.


Sources (retrieved 2026-10-07):

Autype guide overview, "Bulk document generation" (template, CSV upload, up to 100 personalized documents per job): https://docs.autype.com/getting-started/guides/overview.md

Autype documentation index: https://docs.autype.com/llms.txt

CraftMyPDF blog, market overview of PDF generation from CSV/spreadsheet data: https://www.craftmypdf.com/blog/

Ready to automate your documents?

Start creating business documents with Autype. No credit card required.