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
- In the sidebar, select a column to use as the status column (or let Batch Merge create one for you)
- When a merge runs, any row that already has a value in the status column is skipped
- After a row is successfully processed, Batch Merge writes
Doneto 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:
- Opens the configured sheet and loads its settings
- Skips any rows already marked in the status column
- Processes new/unprocessed rows using the saved template and settings
- Sends emails and batch notifications if configured
- 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:
- Go to Extensions > Batch Merge > Open Batch Merge
- Follow the authorization prompts to re-grant permissions
- 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:
- Completed rows are already marked in the status column
- Simply click Run Merge again to continue from where it stopped
- 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.
Batch Merge