A narrower Mailmeteor alternative for operational email
Mailmeteor-style tools are built for campaign mail merge from Gmail: compose, send, track. FormMerge is built for a different job — reviewed operational email from Google Sheets rows, where each row is one message, and a duplicate or ambiguous send has a real cost.
Quick fit check
| Need | Migration fit |
|---|---|
| One operational email per Sheet row (invoices, decisions, notifications) | Good copied-sheet test candidate. | Review the exact pending batch before anything sends | Good fit: preview is tied to a one-time approval. | Guarantee a row is never emailed twice, even after edits or retries | Good fit: 30-day protected-message fingerprint blocks replays. | Campaign sends with open tracking and follow-up sequences | Do not migrate: outside this slice. | Newsletter or cold outreach automation | Not a FormMerge use case. |
Campaign mail merge vs FormMerge
Campaign tools and FormMerge start from different assumptions. Campaigns assume many recipients and measure engagement. FormMerge assumes each row is one accountable message and measures correctness.
| Decision point | Mailmeteor-style campaign mail merge | FormMerge |
|---|---|---|
| Starting point | Gmail: compose a campaign, merge fields, send to a list. | Google Sheets: one row is one message, with its own recipient, subject, and body. |
| Before send | Preview the template and a sample recipient, then launch the campaign. | Exact recipient/subject/body/CC/BCC preview for every row, tied to a one-time approval. Changed previews invalidate the approval. |
| Duplicate protection | Built for campaigns, not for replaying the same row after edits or retries. | 30-day protected-message fingerprint survives row moves, copied rows, and cleared status cells; replays are blocked before send. |
| Ambiguous send | Check the campaign dashboard and recipient inbox before retrying. | SEND_UNCERTAIN blocks retry until the owner marks verified sent, resets after an inbox check, or keeps it blocked. |
| Automation health | Campaign dashboards cover the send itself. | 30-day audit plus watchdog pause after repeated trigger failures, with guided repair/resume. |
Copied-sheet migration test
- Copy the original spreadsheet; keep the production Sheet untouched.
- Replace real recipient addresses with test inboxes you control.
- Configure one recipient column and one subject/body template.
- Run Preflight, then Preview pending.
- Review every exact recipient, subject, body, CC, and BCC.
- Resolve exact duplicate outgoing messages.
- Approve only the unchanged preview, then send the copied batch.
- Confirm each row becomes SENT before enabling any trigger on real data.
Why the guardrails matter
The classic migration accident is the retried batch: a send hits a daily cap or an ambiguous result, someone reruns it, and half the list gets the email twice. A row marked SENT, SENDING, or SEND_UNCERTAIN is not automatically retried in FormMerge. MailApp does not supply a provider-level idempotency key, so this fail-closed behavior is safer than pretending exactly-once delivery is guaranteed.