Mail merge: fill a Word template from a list

Open a Word document with placeholders such as {{Name}}, paste or open the list, check the preview of any row, and download one Word file per row or one document with every row, each on a new page. Letters, certificates, invitations and notices, made in your browser without uploading the names.

Mail Merge

or drop a file here. It stays on this device.

How it works

  1. Open your Word template (.docx) with placeholders such as {{Name}}, or press Try the example.
  2. Paste the list into the editor (cells copied from Excel or Google Sheets work) or open a .csv file. The first row names the columns.
  3. Check that every field has a column, choose the rows, one file per row or one document, and how the files are named.
  4. Look through the preview (Longest values finds the row most likely to overflow) and the checks, then press Merge documents and download the ZIP or the document.

Questions

How do I mark the fields in my Word document?

Type the column name in double braces where the value belongs, for example Dear {{First name}},. Case, spaces and underscores do not matter, so {{first_name}} also matches a First Name column. The formatting of the placeholder is kept: make {{Name}} bold and the name comes out bold. Placeholders work in the text, tables, headers, footers, text boxes and footnotes. Word's own merge fields (Mailings, Insert Merge Field) work too, including their Upper, date and number formats. Only double braces make a field: «Name» typed by hand, {Name}, <<Name>> and the full-width braces of a Chinese keyboard, {Name}, are text, and the tool names each one it finds with the {{Name}} to write instead.

Can parts of the letter depend on the data?

Yes. {{#if Title}}Dear {{Title}} {{Last name}}{{else}}Dear customer{{/if}} keeps the first text when Title is filled and the second when it is empty; {{#if Country = "UK"}} compares with a value (not case-sensitive). Put the markers inside one paragraph, or each on its own line around whole paragraphs and tables to keep or drop them. The tool points to the paragraph when a marker is missing or misplaced.

How are dates and amounts written?

As they are in the list, unless you add a format: {{Date | date}} turns 2026-09-18 into 18 September 2026, {{Date | date: "MMMM d, yyyy"}} into September 18, 2026, {{Amount | number: 2}} writes 1234.5 as 1,234.50 and {{Amount | number: "$#,##0.00"}} as $1,234.50. Dates are read in the year-month-day form so 03/04 can never be misread; other values are left as written and listed in the checks. Values are never treated as numbers on their own, so leading zeros such as 007 stay.

What is the difference between the two outputs?

One file per row gives a ZIP with a Word file for each row, named by the pattern you choose (for example 001 Ada Lovelace.docx), plus merge-list.csv listing every file and its empty fields, saved with a byte order mark so Excel opens names in any language as they are. One document puts every row in a single Word file for printing: each row starts on a new page as its own section, with its own header and footer values and page numbers from 1; numbered lists start again at 1 and each letter keeps its own footnotes.

What does the tool check before merging?

Placeholders that are not closed, run across a line break, have an unknown format or conditions that do not match up are listed with the part and paragraph, and merging waits until they are fixed. A template with no field at all (and no row number {{#}}) would make every row the same document, so it is refused too, with the paragraphs that hold text looking like a field («Name», {Name}, <<Name>>) named; beside real fields such text is only noted. While the template has a problem, the checks of the rows wait for it to be fixed. Every field must have a column or a text to use. The checks list rows with empty fields, dates or numbers a format could not read, values far longer than the rest (which may overflow a line or page), letters that could not be read because the list was not saved as UTF-8, and file names that would repeat; each links to the preview of that row. The preview shows the merged text with the values highlighted, not the page layout: open a file in Word to see the layout.

Which files work, and what is not supported?

Templates in .docx or .dotx, as saved by Word or LibreOffice. Documents with macros (.docm) are refused and never run; older .doc files must be saved as .docx first. The list is read as UTF-8 text; save Excel files as CSV UTF-8, or copy the cells and paste them into the editor. Repeating a table row for each item of a group, pictures that change per row, and PDF output are not offered; to get PDFs, open the merged document in Word or LibreOffice and save it as PDF. Nothing is ever sent by email.

Is my text uploaded?

No. The page loads a small script into your browser and every operation runs on your device. You can check this yourself in the browser's network panel: after the page has loaded there are no upload requests. Closing the tab discards the text.

Do I need an account or to pay?

No. These basic tools are free and add nothing to your data. The only limits are the tool's own: templates up to 50 MB, lists up to 16 MB, about 400 MB of files per ZIP and 3,000 rows per combined document. Within them, the practical limit is your device's memory.

What does this page keep in my browser?

Nothing you open or type. While the tab is open, the tool pages keep a short list of the steps taken in it, in the tab's session storage: the step (page opened, started, succeeded, first success, used again or failed), the tool's name, the time, how many files were used and, for a failure, an error code; never a file name, the contents of a file or your text. It holds at most the latest 200 steps, and the browser deletes it when the tab closes. The page never sends it. Where a Report a problem button is shown, you can attach the last 20 steps to your report; nothing is attached unless you tick that box. In local storage the page keeps only choices you made: a Light or Dark theme until you choose System again, the language you picked with the EN / 中文 switch if it differs from your browser's language, and this tool in your recently used list if you switched that list on at the tools page.

Questions or problems

Found a problem or missing feature? Tell us. Please describe the steps; do not send confidential data.