Yet Another Mail Merge (YAMM) is the best-known mail merge for Gmail and Google Sheets, and its workflow is a good one: write a Gmail draft with {{placeholders}}, point it at a sheet, and send. Its free plan, though, is limited to 20 recipients per day, and the paid plans are a yearly subscription (Mailmeteor’s YAMM pricing summary, checked October 2026).
If you only need the core job, a personalized email to each row, you can do it for free with one Apps Script file and the same Gmail-draft workflow: Sheets Mail Merge.
{{Column Name}} placeholders in the subject and body| YAMM free plan | Sheets Mail Merge | |
|---|---|---|
| Emails per day | 20 | Gmail’s own script limit: about 100 on a personal account, 1,500 on Google Workspace (Google’s quotas) |
| Cost | Free, with paid yearly plans above | Free (MIT license) |
| Install | Workspace add-on with access to your account | One script you paste into your own sheet; nothing third-party gets access |
| Different attachment per person | — | Yes, from an Attachments column of Drive links (guide) |
| Open and click tracking | Yes | No |
| Scheduled sending | Paid plans | Not in the free script |
Be honest with yourself about the last two rows. If you need open tracking or a polished interface, YAMM’s paid plans are a reasonable buy. If you need more than 20 sends a day and nothing else, the free script is enough.
{{Column Name}} format.Code.gs, save, and reload the sheet.The full walkthrough is in the step-by-step guide.
Gmail limits how many recipients a script can email per day. When the limit is reached, the script stops cleanly and tells you. Run it again the next day: rows already marked as sent are skipped, so it picks up where it left off.
Get the script on GitHub · Setup guide · More free Google Sheets scripts