Work / Case study
Form Platform Migration — 24 Forms to Google Forms
Migrated 24 business forms from a paid form builder to Google Forms in one day, with a rules engine that rebuilds routing, notifications, lookups and webhooks the native product lacks.
Source code is private. Walkthroughs are available on request.
Business impact
Moved the agency's day-to-day forms onto the Google Workspace it already pays for, with routing, notifications and lead-platform integration preserved, a fix for a long-silent alert failure, and a documented path to retire most of a paid subscription.
Problem
Every agency form (lead capture, referrals, IT and purchase requests, time clock) lived in a paid form builder with conditional logic, per-form email rules, hidden lookup fields and webhooks into the agency's lead platform. Leadership wanted Google Forms instead, but Google Forms has no conditional show/hide, no hidden fields, no per-answer email routing, no webhooks, and its APIs cannot create file-upload questions or set a theme.
Solution
Exported every form, question, condition, email rule and webhook from the source API into a versioned JSON build spec, then generated each Google Form from that spec with an Apps Script engine. A hand-built branded template supplies the theme, header and file-upload question (copies keep them; the APIs cannot create them). One submit trigger per response workbook runs the engine, which adds the derived columns, routes approvals, sends branded notifications and posts a payload shaped exactly like the old webhook, so the lead platform needed no change.
Results & highlights
- Inventory from the live API before building: 39 forms, 545 questions, 89 conditions, 73 email rules, 5 webhook integrations and 659 historical submissions, every count reconciled against the source product
- Conditional show/hide rebuilt as section routing from the controlling question; 55 hidden per-employee lookup fields replaced by engine-written requester, team and supervisor columns from one table; a separate parity audit decoded all 89 conditions
- Found and fixed a misspelled notification address that had silently kept every referral-form alert from reaching sales leadership
- Worked around three platform limits with tested probes: template copies for branding and uploads, a one-time folder restore Google requires on copied upload forms, and one trigger per workbook to stay under Apps Script's 20-trigger cap
- Parity test before cutover: 24 of 24 synthetic submissions and 34 of 34 trigger runs completed with 0 failures, webhooks held back under a test mode
- Cut over without downtime: the team portal's embeds were switched the same morning, the old forms stay live through a 14-day parallel run, and five public lead forms that need anonymous uploads stay on the old builder by decision (2026-10-26)
- Shipped with an operations SOP covering the template-copy procedure, the folder-restore step and the cutover checklist
Competencies demonstrated
- Platform migration: API-first inventory, spec-driven rebuild of 24 forms, parallel run and staged cutover.
- Integration design: Replayed the old webhook payload shape so the downstream lead platform needed no change.
- Working within platform limits: Template-copy technique for branding and uploads the Forms APIs cannot create; trigger consolidation under the 20-trigger cap.
- Data parity and QA: Reconciled counts against the source, decoded every condition, and ran a 24-form synthetic submission test before go-live.
Architecture
- Source API exportforms, rules, webhooks
- JSON build specversioned, regenerable
- Template copytheme, header, upload
- Form generatorsections, routing
- Submit enginelookups, emails, approvals
- Same-shape webhooklead platform unchanged
Notes
- Form contents, respondent data and account identifiers are not shown; figures are from the deploy record of 2026-10-23.