Write one message with placeholders like {first_name}, paste a spreadsheet as CSV, and get a personalized copy for every row. Preview each message, then copy them all or download a TXT, a ZIP of separate files, or a CSV with a new message column.
Last updated:
Use {column} or {column|fallback}
Drop a CSV file
3. Preview
0 / 0
ZIP = one .txt file per row. CSV = your data plus a "message" column, ready for an email or SMS tool.
Show all messages
Advertisement
Advertisement
How to use the Mail Merge Text Generator
Write your template and put column names in curly braces, for example Hi {first_name}. Add a fallback after a pipe: {first_name|there}.
Paste your data as CSV with a header row, or open or drop a .csv file exported from Excel or Google Sheets.
Check the preview and step through rows with the arrows. Fix any warning about missing columns or empty values.
Choose the output: copy all messages, download one TXT, a ZIP with a file per row, or a CSV with a message column.
Send them with your email, SMS or chat tool, or paste the CSV into a bulk-sending service.
Placeholder syntax
You write
Row data
Result
Hi {first_name},
first_name = Ana
Hi Ana,
Hi {{First Name}},
first_name = Ana
Hi Ana,
Hi {first_name|there},
first_name is empty
Hi there,
Ticket {row} of the batch
third data row
Ticket 3 of the batch
Sent on {today}
any row
Sent on today's date in your local format
Total: ${amount}
amount = 59.90
Total: $59.90
Preparing your CSV
Keep the first row for column names. Short names without punctuation, such as first_name, email or due_date, are easiest to type in a template.
Format numbers and dates in the spreadsheet first. The merge copies values exactly as they appear in the CSV, so 59.9 stays 59.9. Format the column as currency or text before exporting if you need 59.90.
Remove rows you do not want to send. Empty rows are skipped automatically; other rows each produce one message.
Name your ZIP files with placeholders. A pattern like {row}-{last_name} gives files such as 01-lopez.txt. Duplicate names get a number added.
Good uses for a text mail merge
Personalized follow-up emails after an event, payment or appointment reminders, thank-you notes to customers, certificates and award texts, class or team announcements with each person's own details, and SMS messages for a bulk texting service. Because the output is plain text, it can be pasted anywhere, and the CSV export keeps each message next to the recipient's email or phone number so other tools can send it.
Frequently asked questions
What is a mail merge?
A mail merge combines one template with a list of recipients to produce a personalized copy for each person. Fields such as the name, order number or amount are stored in a spreadsheet, and each placeholder in the template is replaced with the value from the matching column of each row.
How do I write placeholders?
Put the column name in curly braces: {first_name}. Double braces {{first_name}} work too. Matching ignores upper and lower case and treats spaces, dashes and underscores the same, so {First Name} finds a column called first_name.
What happens if a cell is empty?
If you add a fallback after a pipe, such as {first_name|there}, the fallback is used. Otherwise you choose what happens: leave a blank, keep the original {placeholder}, or show [MISSING: name] so the gap is easy to spot. The tool also warns you how many messages contain empty values.
How do I get my data from Excel or Google Sheets?
In Excel use File, Save As, CSV UTF-8. In Google Sheets use File, Download, Comma-separated values. You can also select the cells, copy them and paste them into the data box: tab-separated data from a spreadsheet is detected automatically.
Can I use commas or line breaks inside a value?
Yes. Put the value in double quotes, as spreadsheet programs do when they export CSV, for example "Desk lamp, brass". A double quote inside a quoted value is written as two double quotes.
Does it send the emails?
No. The tool creates the text only, so it never needs access to your email account. Copy each message into your mail program, or download the CSV with the new message column and import it into an email or SMS service that supports bulk sending.
Is my contact list private?
Yes. The CSV is parsed and merged in your browser and is never uploaded. The template and data are remembered in your browser's local storage so you can come back to them; use Clear to remove the data.
Are all the tools on FreeToolCabin tested for quality and accuracy?
Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.