Build a working no-code automation end to end: an event-registration form feeds a sheet, and every submission triggers an AI-drafted, human-reviewed confirmation email plus a team notification. Then prove it with five synthetic registrants — one of whom is designed to break it.
Farah Khan coordinates events at Lumen Learning Pvt Ltd, a fictional corporate-training company. Every workshop means a registration form, then hours of copy-paste: acknowledge each registrant, log them in a tracker, tell the delivery team. Tonight she automates it — form to sheet to drafted email to team ping — with an AI step writing the personalized confirmation and a human review gate before anything sends. The two disciplines this lab grades: draft-for-review, never auto-send (the confirmation touches a customer, so a human approves it), and the error path (real form data arrives malformed, and an automation without an error path fails silently, which is worse than failing loudly). One of your five test registrants exists specifically to prove your error path works.
Five synthetic registrants. You will submit these through your own form in step 6 — one per minute, in order.
name,email,company,workshop,dietary,notes
Ananya Verma,ananya.v@brightpath.example,Brightpath Consulting,Excel Power Skills - 12 Sep,Vegetarian,First time attendee
Rohan Malhotra,rohan.m@quorix.example,Quorix Tech,Excel Power Skills - 12 Sep,None,Manager nominated me
Divya Pillai,divya.pillai@@senthil-group.example,Senthil Group,Excel Power Skills - 12 Sep,Vegan,
Karthik Iyer,karthik.iyer@brightpath.example,Brightpath Consulting,Excel Power Skills - 12 Sep,None,Will my colleague Ananya and I be seated together? Also do you offer a group discount for 5+ registrations from one company?
Ananya Verma,ananya.v@brightpath.example,Brightpath Consulting,Excel Power Skills - 12 Sep,Vegetarian,Submitting again as I did not get a confirmation
Build the form and its sheet. Create a registration form titled "Excel Power Skills — 12 Sep" with five fields: full name, email (use the email question type so the platform validates format), company, dietary preference (choice: None/Vegetarian/Vegan/Other), and notes (paragraph, optional). Link responses to a spreadsheet. Submit one throwaway test entry to confirm rows land, then delete it. Ten minutes, and the foundation exists.
Design the flow on paper first. One trigger, then branches: trigger = new form response → validate (is the email well-formed? is it a duplicate of an existing registration?) → valid path: AI-draft a personalized confirmation → send to Farah for review → on approval, send to registrant → notify the team channel → error path: no customer email; instead, flag the row and alert Farah with the reason. Sketch this before touching the builder — every hour spent debugging a no-code flow traces back to a branch nobody drew.
Create the trigger and test the connection. In your platform, create the flow with trigger "new spreadsheet row" (or "new form response"). Connect the account, run the trigger test, and confirm the platform sees your sheet's columns as named fields. If the test pulls your deleted throwaway row, refresh — stale test data at the trigger stage confuses every later step.
Add the validation branch. Add a filter or condition step: continue the happy path only if the email field matches a basic email shape (contains exactly one @ with characters both sides — most platforms offer a "text matches pattern" or you can use two conditions: contains @, does not contain @@) and the email does not already exist in the sheet's earlier rows (platforms with a "lookup row" action can check this; on Zapier's free 2-step tier, split the build into two Zaps — trigger→AI-draft-to-Farah and a separate trigger→team-notification — and do duplicate-checking manually via a sheet formula like =COUNTIF(B:B,B2)>1 in a "flag" column that the filter reads). Malformed or duplicate rows route to the error path you build in step 7.
Add the AI drafting step — with a locked-down prompt. Add the AI action with: "Draft a warm confirmation email for [name] from [company] registered for [workshop]. Confirm their dietary preference ([dietary]) is noted. Under 120 words. If the notes field contains a question, do NOT answer it — add a line saying our team will reply separately, and append 'FLAG: question in notes' at the end of your output. Never invent details about venue, timing, or pricing." No-AI fallback: a template email with merge fields, plus a formula flagging rows whose notes contain "?". The prohibition list in the prompt is the important part — an unconstrained AI step will cheerfully invent a venue and answer a discount question with made-up pricing.
Add the human gate and the notification. The AI draft goes to Farah, not the registrant: email the draft to yourself with subject "REVIEW: confirmation for [name]", or use the platform's approval action (Power Automate's "Start and wait for an approval" is ideal). Only after approval does the send-to-registrant step run — on free tiers, "approval" can simply mean you forward the reviewed draft manually, which is fine: the automation saves the drafting time, and the human stays in the loop. Then add the team notification: one Slack/Teams/email line — "New registration: [name], [company], dietary: [dietary]".
Build the error path. For rows that fail validation: no email to the customer. Instead, write "ERROR — check email/duplicate" into a status column and send Farah an alert naming the row and the reason. Silent-failure test: ask yourself what happens today if a bad row arrives and Farah is on leave — the answer must be "the row is visibly flagged in the sheet", never "nothing".
Run the five test registrants and log the results. Submit the five test entries through the real form, in order, a minute apart. For each, record in a test log: which path it took, what the AI drafted, what notifications fired, and what the status column says. Then grade the run against the expectations in the answer key. Rerun any failure after fixing — a test that never failed usually means a test that never tested.
Add the kill switch and the owner label. Every automation needs both: rename the flow to include an owner and date ("Event confirmations — owner: Farah — Aug 2026"), write a three-line runbook in the sheet's second tab (what it does, how to switch it off, who to call), and confirm you know exactly where the off switch is. Automations outlive their creators' memory; the label and runbook are what make yours an asset instead of a haunting.
Anything customer-facing ships as draft-for-review by default — an automation earns auto-send only after weeks of clean drafts, and some messages should never earn it.
An automation is a flow diagram, a validation branch, a locked-down AI prompt, a human gate, an error path, and a kill switch — in that order of importance. The AI step saves the minutes; the error path and the review gate are what let you sleep while it runs.