Mail merge takes a contact list and a message template, then creates a personalised email for each row. You can use Gmail’s built-in mail merge on an eligible Workspace plan, adapt Google’s Apps Script sample, or use OutreachSheet for a ready-made Google Sheets workflow with follow-ups and reply sorting.
Option 1: Gmail’s built-in mail merge
Google offers mail merge on eligible Google Workspace plans. You can connect spreadsheet data to personalise messages, and recipients get an unsubscribe option. Check Google’s mail merge instructions for supported plans and current restrictions. This is a useful starting point when your main job is sending a personalised batch from Gmail.
Option 2: Google’s Apps Script sample
Google publishes a Gmail and Sheets mail merge sample. It uses a Google Sheet and a Gmail draft as the template. This suits someone comfortable authorising a script and maintaining or adapting code. Automatic sequences, reply handling and opt-out controls depend on what you build around it.
Option 3: OutreachSheet
OutreachSheet is a paid Google Sheet with the outreach engine already included. It adds a setup panel, live preview, CSV import, up to four sequence steps, paced sending, reply sorting and a permanent Do Not Contact list. You pay once for your copy. Sending uses your Gmail or Google Workspace account.
| Approach | Best starting point for | What to consider |
|---|---|---|
| Gmail mail merge | A personalised batch inside Gmail | Eligible Workspace plan and Google’s feature restrictions |
| Google’s script sample | A custom workflow you maintain | Setup, code ownership and ongoing changes |
| OutreachSheet | Sending, follow-ups and reply organisation in a sheet | Single Google account; no shared CRM or open tracking |
Prepare the sheet before you send
- Give each column a clear heading and put one contact on each row.
- Keep the fields that make the message relevant: name, company and a specific reason to contact them.
- Remove duplicates and respect existing opt-outs.
- Preview several rows, especially contacts with missing values.
- Send yourself a test and check the complete message before starting the list.
Personalise beyond the first name
In OutreachSheet, any column can become a placeholder. For example, {{Company}} inserts the company name. {{Town|your area}} uses “your area” if the town is missing. A fallback keeps the sentence readable; it does not replace a specific reason for writing.
A message with an unresolved placeholder or leftover example text is held. Use test mode to check the workflow before sending real emails.
Think about the second email too
Personalising the first message is only one part of outreach. Decide how you will follow up, notice replies and stop contacting people who opt out. That is the workflow OutreachSheet packages into the sheet.
Read the follow-up guide or see everything included in OutreachSheet.
