YAMM-style migration test

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.

Not a drop-in replacement: YAMM is a mature Gmail mail merge with its own campaign model, tracking, and plan limits. FormMerge does not claim parity with campaign sequencing, open tracking, or marketing automation. It covers one job: reviewed operational email where duplicates are costly.

Quick fit check

NeedMigration fit
One operational email per Sheet row (invoices, decisions, notifications)Good copied-sheet test candidate.
Review the exact pending batch before anything sendsGood fit: preview is tied to a one-time approval.
Guarantee a row is never emailed twice, even after edits or retriesGood fit: 30-day protected-message fingerprint blocks replays.
Marketing campaigns, sequences, open/click trackingDo not migrate: outside this slice.
Newsletter or cold outreach automationNot 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 pointYAMM-style workflowMarketing mail merge toolsFormMerge
Primary jobFast 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 sendCompose 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 protectionDepends 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 sendCheck 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 healthMonitor 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

  1. Copy the original spreadsheet; keep the production Sheet untouched.
  2. Replace real recipient addresses with test inboxes you control.
  3. Configure one recipient column and one subject/body template.
  4. Run Preflight, then Preview pending.
  5. Review every exact recipient, subject, body, CC, and BCC.
  6. Resolve exact duplicate outgoing messages.
  7. Approve only the unchanged preview, then send the copied batch.
  8. 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.