Documentation

Everything you need to generate personalized documents from Google Sheets. Step-by-step guides for templates, email delivery, scheduling, and more.

Getting Started

Batch Merge is a Google Sheets add-on that turns your spreadsheet data into personalized documents using Google Docs templates. Get up and running in under a minute.

Install the add-on

Install Batch Merge for free from the Google Workspace Marketplace. The add-on requires standard permissions to access your Sheets, Docs, and Drive.

Open Batch Merge

In any Google Sheet, go to:

Extensions  >  Batch Merge  >  Open Batch Merge

This opens the Batch Merge sidebar on the right side of your spreadsheet.

Select your source sheet

Use the sheet selector at the top of the sidebar to choose which sheet tab contains your data. Each row in the sheet becomes one merged document. The first row should contain column headers that match your template tags.

Your spreadsheet must have headers in the first row. Batch Merge uses these headers to identify which columns map to which template tags.

Creating Templates

Templates are standard Google Docs with placeholder tags that get replaced with your spreadsheet data during a merge.

Setting up a template

Create or open any Google Doc. Wherever you want dynamic content, insert a tag using double curly braces with the exact column header name:

Dear {{First Name}},

Your invoice #{{Invoice Number}} for {{Amount}} is attached.

Thank you,
{{Company Name}}

Where tags work

Batch Merge scans and replaces tags in all parts of your document:

  • Document body text
  • Headers and footers
  • Table cells

Tag matching rules

  • Tags are case-sensitive{{Name}} and {{name}} are different tags
  • Tag names must match column headers exactly, including spaces
  • Tags that do not match any column header will remain in the output unchanged

Built-in smart tags

Batch Merge provides three built-in tags that do not require a matching column header:

Tag Description
{{_ROW_NUM}} The row number in the spreadsheet (e.g., 2, 3, 4...)
{{_TIMESTAMP}} The date and time when the row was processed
{{_SHEET_NAME}} The name of the source sheet tab

After selecting a template in the sidebar, Batch Merge shows your tags as colored pills: green tags match a column header; amber tags do not yet have a match.

Running a Merge

Once your spreadsheet and template are ready, configure and execute the merge from the sidebar.

Select template and output folder

Click the template picker to choose your Google Doc template. Then select a Google Drive folder where merged documents will be saved.

Choose output format

Batch Merge supports three output formats:

  • PDF — Portable, locked format ideal for invoices, certificates, and formal documents
  • DOCX — Editable Microsoft Word format for documents that recipients may need to modify
  • Google Doc — Native Google Docs format that stays editable in Drive

Set file name pattern

Customize how output files are named. The file name pattern supports the same {{tag}} placeholders as your template:

Invoice - {{Company Name}} - {{Invoice Number}}

This produces files like Invoice - Acme Corp - 1042.pdf.

Preview with Dry Run

Click Dry Run to simulate the merge without creating any files. Dry Run shows you exactly which rows will be processed, what tags will be replaced, and whether any tags are unmatched. Use it to verify your setup before committing.

Execute the merge

Click Run Merge to generate documents. Batch Merge processes rows in batches of 30 with progress updates in the sidebar. Each batch creates documents, optionally sends emails, and updates the status column.

Status Tracking

Status tracking prevents duplicate processing and enables safe re-runs of merges on the same data.

How it works

  1. In the sidebar, select a column to use as the status column (or let Batch Merge create one for you)
  2. When a merge runs, any row that already has a value in the status column is skipped
  3. After a row is successfully processed, Batch Merge writes Done to the status column for that row

Resumable merges

If a merge is interrupted (due to a timeout or error), simply run it again. Already-processed rows are skipped automatically, and the merge picks up where it left off.

To re-process a row that was already merged, clear its status cell and run the merge again.

Email Delivery

Batch Merge can email each merged document directly to the recipient specified in your spreadsheet data.

Enable email delivery

In the sidebar, toggle "Email merged docs to recipients" to enable per-row email delivery.

Select the email column

Choose the spreadsheet column that contains recipient email addresses. Each row's document will be sent to the email address in that row.

Choose delivery mode

  • Attach File — The merged document is sent as an email attachment
  • Drive Link — The email contains a link to the document in Google Drive
  • Both — Includes both the attachment and the Drive link

Customize email content

Set a custom email subject and body. Both fields support {{tag}} placeholders, so each email can be personalized:

Subject: Your Invoice {{Invoice Number}} from {{Company Name}}

Body: Hi {{First Name}},

Please find your invoice attached.
Amount due: {{Amount}}

Thank you for your business.

Email delivery is subject to Google's daily email sending quotas. Free Google accounts can send approximately 100 emails per day; Google Workspace accounts have higher limits.

Batch Notifications

Receive a summary email after each merge completes, with stats, file links, and error reports.

Enable batch summaries

Toggle "Email batch summaries" in the sidebar to activate post-merge notification emails.

Configure recipients

Enter one or more email addresses, separated by commas. These recipients will receive a summary after every merge run.

Choose summary format

  • Attach Files — All generated documents are attached to the summary email
  • Drive Links — The summary includes links to each generated file in Google Drive
  • Both — Includes both attachments and Drive links

What the summary includes

  • Total rows processed and documents created
  • Links to each output file in Google Drive
  • Any errors or skipped rows with details
  • Merge duration and completion timestamp

Scheduling

Automate your merges to run on a recurring schedule without any manual intervention.

Set a schedule type

Choose from four schedule intervals:

Type Options
Hourly Every 1, 2, 4, 6, 8, or 12 hours
Daily Choose a specific time of day
Weekly Choose a day of the week and time
Monthly Choose a day of the month and time

How scheduled merges work

When a scheduled merge fires, Batch Merge automatically:

  1. Opens the configured sheet and loads its settings
  2. Skips any rows already marked in the status column
  3. Processes new/unprocessed rows using the saved template and settings
  4. Sends emails and batch notifications if configured
  5. Logs results to the Merge Log sheet

Scheduled merges rely on status tracking to avoid re-processing rows. Make sure you have a status column configured before enabling a schedule.

Per-Sheet Configuration

Each sheet tab in your spreadsheet maintains its own independent configuration. This means you can run completely different merge setups from a single spreadsheet.

What is saved per sheet

  • Template selection
  • Output folder
  • Output format (PDF, DOCX, Google Doc)
  • File name pattern
  • Status column selection
  • Email delivery settings
  • Batch notification settings
  • Schedule configuration

Switching between sheets

When you select a different sheet tab in the sidebar, Batch Merge loads that sheet's saved configuration. All settings are saved automatically as you make changes — there is no manual save button.

Example use case

A single spreadsheet could have:

  • "Invoices" sheet — merges to PDF, emails customers weekly
  • "Certificates" sheet — merges to Google Doc, saves to a shared Drive folder
  • "Reports" sheet — merges to DOCX, sends batch summary to the team daily

Merge Log

Batch Merge maintains an automatic audit trail of every merge operation in your spreadsheet.

How it works

When a merge runs for the first time, Batch Merge creates a sheet tab called "Merge Log" in your spreadsheet. Every subsequent merge appends entries to this log.

What is tracked

Column Description
Timestamp Date and time when the row was processed
File Name Name of the generated document
Drive URL Direct link to the file in Google Drive
Status Success or error status of the operation
Notes Additional details, including error messages if applicable

The Merge Log sheet is created automatically. Do not rename or delete it if you want to keep a continuous record of your merge history.

Troubleshooting

Common issues and how to resolve them.

Authorization errors

If you see an authorization prompt or permission error:

  1. Go to Extensions > Batch Merge > Open Batch Merge
  2. Follow the authorization prompts to re-grant permissions
  3. If the issue persists, remove the add-on and reinstall it from the Marketplace

Missing or unmatched tags

Tags appear as amber pills in the sidebar when they do not match any column header. To fix this:

  • Verify that the tag name in your template matches the column header exactly, including capitalization and spaces
  • Check for invisible characters or extra spaces in either the template tag or the column header
  • Remember that tags use double curly braces: {{Tag Name}}

Email sending limits

Google imposes daily email quotas on Apps Script:

  • Free Google accounts: approximately 100 emails per day
  • Google Workspace accounts: approximately 1,500 emails per day

If you hit the quota, remaining emails will fail. Run the merge again the next day — status tracking ensures only unsent rows are retried.

Timeout on large datasets

Google Apps Script has a maximum execution time of approximately 6 minutes. Batch Merge handles this by processing rows in batches of 30. If a merge times out:

  1. Completed rows are already marked in the status column
  2. Simply click Run Merge again to continue from where it stopped
  3. Repeat until all rows are processed

Template not found

If the template picker does not show your Google Doc, ensure that:

  • The document is a Google Doc (not a PDF, DOCX, or other format uploaded to Drive)
  • You have at least view access to the document
  • The document has not been moved to the trash

Blank or missing output

If generated documents contain unreplaced tags or blank fields:

  • Confirm that the source sheet has data in the relevant columns
  • Check that the tag spelling matches the column header exactly
  • Ensure rows are not being skipped by the status column

Support

Need help? We are here for you.

Contact us

Email us at support@batchmerge.com with a description of your issue. Include the following to help us resolve it quickly:

  • Your Google account email address
  • The spreadsheet URL (or a copy with sample data)
  • A screenshot or description of the error
  • Steps to reproduce the issue

Response time

We respond to all support requests within 24 hours during business days.

Before reaching out, check the Troubleshooting section above — it covers the most common issues and their solutions.