A narrow, safety-first YAMM alternative
FormMerge is an independent Google Sheets add-on for teams moving a simple YAMM-style operational email: one recipient column, one template, copied-sheet testing, exact output preview, one-time approval, and duplicate-send guards for the rows where a second send would be embarrassing or expensive.
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. |
| Marketing campaigns, sequences, open/click tracking | Do not migrate: outside this slice. |
| Newsletter or cold outreach automation | Not a FormMerge use case. |
YAMM-style workflow vs marketing mail merge tools vs FormMerge
The products solve overlapping but different jobs. FormMerge deliberately avoids campaign tooling and focuses on the high-cost operational mistake: the duplicate or ambiguous send.
| Decision point | YAMM-style workflow | Marketing mail merge tools | FormMerge |
|---|---|---|---|
| Primary job | Fast Gmail mail merge, often with a free tier and per-day sending caps. | Campaigns, tracking, follow-up sequences, and outreach. | Reviewed operational email where duplicate or ambiguous delivery is costly. |
| Before send | Compose in Gmail, merge from a Sheet, send the campaign. | Often optimized for campaign composition and audience delivery. | Exact recipient/subject/body/CC/BCC preview for every row, tied to a one-time approval. Changed previews invalidate the approval. |
| Duplicate protection | Depends on the plan and workflow; retries after a limit-hit need care. | Varies by provider and campaign model. | 30-day protected-message fingerprint survives row moves, copied rows, and cleared status cells. |
| Ambiguous send | Check Gmail Sent and the recipient inbox before retrying. | Provider dashboards may expose delivery state, but behavior varies. | SEND_UNCERTAIN blocks retry until the owner marks verified sent, resets after an inbox check, or keeps it blocked. |
| Automation health | Monitor the campaign and daily quota manually. | Campaign dashboards and scheduling are typically broad. | 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 for YAMM-style migrations
The most common 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.