Personalised letters from Google Sheets, with the right dates
A school writes to every parent. A charity thanks every donor. A landlord writes to every tenant. Each letter is the same, apart from a few details.
This guide shows how to write the letter once and fill it from a sheet. It also covers the details people get wrong: dates, money and greetings.
What you need
- A Google Sheet with one row for each letter.
- A Google Doc with the letter, on your letterhead.
- A Drive folder for the finished letters.
Here is the sample sheet this guide uses:
| First Name | Gift Date | Amount | Greeting |
|---|---|---|---|
| Amara | 2026-10-16 | $50.00 | Dear Amara |
Step 1: Write the letter with tags
Write the letter in Google Docs, as you normally would. Where a detail changes, type a tag. A tag is a column name in double angle brackets.
<<Greeting>>,Thank you for your gift of
<<Amount>>on<<Gift Date>>.
Put your logo and address in the header. Tags work in the header and footer too. The template guide lists every rule for tags.
Step 2: Get the dates right
Fillmore fills each tag with the value as the sheet shows it. So a date in the letter looks exactly like the date in the cell.
To change how dates look, change the cells:
- Select the date column.
- Open Format, then Number, then Custom date and time.
- Pick a format, such as "16 October 2026".
Source: Format numbers in a spreadsheet, read 20 Oct 2026.
You can also build the text with a formula, in a new column:
=TEXT(B2, "d mmmm yyyy")Then use the new column's name in the tag.
Do not use TODAY() for the letter date. That value changes every day, so each run sees the rows as new. Type the date instead.
Step 3: Get the money right
Money works the same way. Format the column as currency, and the letter shows it the same way. Open Format, then Number, then Currency.
A percentage stays a percentage. A cell showing "95%" fills as "95%", never as 0.95.
Step 4: Write a greeting for a blank name
An empty cell makes an empty tag. So "Dear <<First Name>>," becomes "Dear ," when a name is missing.
Make a Greeting column instead, with a formula. It uses a kind fallback when the name is blank:
=IF(A2="", "Dear friend", "Dear " & A2)Fill the formula down the whole column. Then use <<Greeting>> in the letter.
Step 5: Set up the job and choose the output
Open Extensions, then Fillmore, then Open Fillmore. Press Set up a job for this tab. Press Choose template and pick the letter. Then press Choose folder.
Open Change file name. A clear name is "Letter - {{First Name}}". In the file name, write the column name exactly as in row 1. Here, case and spaces count. A name that matches no column is left blank. Under Each row makes, choose:
- A filled copy of the template, to read and change a letter by hand.
- A PDF, to print or send as it is.
- A PDF and a filled copy, to keep both.
Press Save job.
Step 6: Check one letter, then make them all
Press Try one row first. Open the letter Fillmore made. Read it as the person will. Check the date, the amount and the greeting.
Then press Make files. Each row gets its own letter in your folder. The "Fillmore status" column links to each one.
Step 7: Print or email the letters
To print, open the folder in Drive. Each PDF is one letter, ready to print.
To email each letter, open More options. Turn on Also send each file by email. The letter goes as a PDF attachment. The email guide shows each step.
Common questions
Can I edit one letter after the merge?
Yes, if you chose a filled copy. It is a normal Google Doc. Change it like any other document.
What if I find a mistake after the run?
Press See results, then Undo this run. Confirm with Move files to trash. Fix the template, then press Make files again. With email on, each person gets the letter by email again.
Can I make certificates the same way?
Yes. The certificates guide shows a design made in Slides.