One .docx template plus a spreadsheet, and you get a ZIP with a finished Word file for every row. Your real fonts, tables, headers and logo survive, because the template itself is what gets filled in. Free, runs in your browser, nothing is uploaded.
The template needs merge points written in curly braces, like {first_name}. Open your .docx in Word, click where a name should go, type {first_name}, save. That is the whole preparation. Tag names are case sensitive and must match how you type them.
A CSV or TSV whose first row is the column headers. One row becomes one Word file. Export straight from Excel, Google Sheets, a CRM or a form tool.
Anything left on "leave blank" is replaced with nothing at all, not with the word undefined. Check this list before you generate two hundred contracts.
Preview of row 1, converted to plain HTML
Most free document builders hand you their layout with your words dropped into it. That is fine for a certificate and useless for a contract, an offer letter, a tenancy agreement or a monthly client statement, where the letterhead, the numbered clauses, the table of fees and the signature block all have to look exactly like the version legal already approved. This page fills in the file you already have. The styles, headers, footers, page numbering, embedded logo and every table stay untouched, because nothing is rebuilt.
Document merge services start around nineteen dollars a month and run past ninety for the well known ones, and Word's own mail merge needs a desktop Office licence and still fights you when you want separate files rather than one long document. Here you get one file per row, named the way you want, zipped, for nothing.
Type the tags directly into your Word document where the value belongs: Dear {first_name}, and starting on {start_date}. Save as .docx. Tag names are case sensitive and are matched against your spreadsheet headers, so keeping them identical makes the mapping automatic. You can also wrap a whole block in {#bonus} and {/bonus} so it only appears for the rows where that column has a value, which is how you handle an optional paragraph without keeping two versions of the template.
A stray opening or closing brace anywhere in the document stops the merge, because the engine cannot tell it apart from a tag. When that happens the page tells you the tag it choked on so you can find it. Fields inserted by Word's own Mailings tab are a different mechanism entirely and are rewritten to braces first, which works for plain merge fields but not for conditional IF fields or formatting switches. Everything happens inside this tab, so very large templates multiplied by very many rows can run a browser out of memory. Three hundred rows per run is the ceiling here, and splitting a big list into batches is the fix if a run struggles.
Offer letters for a hiring round, tenancy or service agreements for a list of clients, monthly reports where only the numbers and the client name change, certificates that must sit on the official letterhead, invoices from a spreadsheet, and school or clinic paperwork that has to go out one named copy at a time.