Gmail mail merge from a CSV file

A mail merge takes a table of people and one email template, and produces a separate, personalized email for every row. A CSV file is the simplest way to provide that table, and you can create one from Excel, Google Sheets, Numbers or a CRM export in seconds.

1. Prepare your CSV

Your first row must contain column names. Everything below it is one recipient per row. A minimal file looks like this:

name,email,company,pin
Alice,alice@example.com,Acme,4821
Bob,bob@example.com,Globex,9034
  • An email column is required. The name is matched without regard to capitals or spaces around it.
  • Add the columns you want to merge. Each column header becomes a merge field you can use in your message.
  • One person per row. Duplicate addresses are detected case-insensitively and only the first is kept.
  • Save as UTF-8. This keeps accented letters and non-Latin names intact. Most tools offer "CSV UTF-8" when exporting.
  • Quote values that contain commas. For example "Acme, Inc.". Spreadsheet apps do this automatically.

Export from Google Sheets or Excel

In Google Sheets choose File, Download, Comma-separated values. In Excel choose Save As, then CSV UTF-8. Semicolon and tab separated files are detected automatically as well.

2. Upload it

Open the console, sign in with Google and drop your file onto the upload area. You will see how many valid recipients were found, how many duplicates were removed and how many addresses were invalid, along with a preview of the first rows.

3. Write your email with merge fields

Write the message once and insert fields wherever you want a value from the row:

Subject: {{name}}, your access PIN

Hi {{name}}, welcome to {{company}}.
Your PIN is {{pin}}.

Clicking a field chip in the app inserts it at your cursor, so you never have to type the braces. More detail in the merge fields guide.

4. Test, review and send

  1. Click Send a test to me to receive one real email at your own address.
  2. Open the review step. It shows how many emails will go out, how many you will have left and a rendered preview for the first recipient. Warnings appear if a field does not match any column.
  3. Press Send all emails and watch the progress. You can stop at any time.

5. Check the results

Every recipient shows as sent or failed with a reason. Download the results as a CSV, or retry only the failed and unsent rows with one click.

Start your first mail merge

Frequently asked questions

What columns does my CSV need?

Only an email column is required. Add a name column and any others you want to use as merge fields.

How many rows can I upload?

You can send up to 500 recipients at a time. Larger lists should be split into batches, and your allowance is 500 emails per rolling 24 hours.

Does the CSV get stored anywhere?

No. It is read in your browser and sent to the server only when you press Send. Nothing is saved to a database.

My accented names look wrong. What should I do?

Re-export the file as CSV UTF-8 so that the encoding is preserved.