Google Sheets seating plans with email alerts
Seating plans fall apart in the messy middle. One RSVP changes, someone edits an old tab, and suddenly you have two “final” versions floating around.
Seating plan automation helps when you’re the event planner trying to keep tables balanced, but it also saves the ops lead who has to brief staff and the marketer who’s sending VIP comms. Instead of chasing updates, you get one master plan and an alert when it changes.
This n8n workflow turns seating requests into an updated Google Sheets plan, individual assignments, and a reliable email alert. You’ll see what it does, what you need, and how to adapt it to your venue rules.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Google Sheets seating plans with email alerts
flowchart LR
subgraph sg0["Flow 1"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>Inbound Webhook Start"]
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Verify Input Payload"]
n2@{ icon: "mdi:database", form: "rounded", label: "Retrieve Attendee Records", pos: "b", h: 48 }
n3@{ icon: "mdi:database", form: "rounded", label: "Load Venue Blueprints", pos: "b", h: 48 }
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Assemble Dataset"]
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Compute Seating Plan"]
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Compose Recommendations"]
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>Return Webhook Reply"]
n8@{ icon: "mdi:database", form: "rounded", label: "Append Master Summary", pos: "b", h: 48 }
n9["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Expand Seat Records"]
n10@{ icon: "mdi:database", form: "rounded", label: "Write Seat Details", pos: "b", h: 48 }
n0 --> n1
n4 --> n5
n2 --> n4
n3 --> n4
n1 --> n2
n1 --> n3
n1 --> n4
n6 --> n7
n6 --> n8
n6 --> n9
n9 --> n10
n5 --> n6
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n2,n3,n8,n10 database
class n0,n7 api
class n1,n4,n5,n6,n9 code
classDef customIcon fill:none,stroke:none
class n0,n1,n4,n5,n6,n7,n9 customIcon
The Problem: Seating Plans Break the Moment RSVPs Change
Most seating plans aren’t “hard” because of math. They’re hard because the data changes constantly, and every change creates a new round of manual work. Someone updates the attendee list, someone else tweaks a venue layout template, then you try to reconcile accessibility needs, groups who must sit together, and VIP placement. Meanwhile, staff are asking, “Is this the latest version?” and you honestly can’t be 100% sure. That uncertainty is what causes wrong place cards, awkward check-ins, and last-minute reshuffles that burn a whole afternoon.
It adds up fast. Here’s where it breaks down in real life:
- Manual copy-paste between RSVP exports and a seating spreadsheet leads to stale data and missed updates.
- Group seating rules (families, teams, sponsors) get applied inconsistently when more than one person edits the plan.
- Accessibility requirements and aisle placement are easy to overlook when you are rushing.
- Even if the plan is right, getting it to the right people (and only the right people) turns into a thread of emails and attachments.
The Solution: Webhook-to-Sheets Seating Plan Automation with Alerts
This workflow starts with a seating request sent via webhook from your event system (or even a simple form). n8n checks the payload, then pulls fresh attendee records from Google Sheets along with the correct venue blueprint template. With those two sources combined, it calculates totals and constraints (capacity, groups, VIPs, accessibility needs), then generates an optimized seating plan and a clear set of recommendations you can act on. Finally, it writes the master summary back into Google Sheets, expands the plan into individual seat records, and emails the organizers so everyone is working from the same “source of truth.” No more hunting for the newest attachment.
The flow begins at an inbound webhook, which means RSVPs can trigger updates automatically. From there, Google Sheets provides the live data, and the workflow’s code nodes compute the layout and format it into something staff can actually use. The output lands in Sheets and in an email alert, so the plan is both stored and communicated.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you’re running a 120-person dinner with 12 tables, and you get about 10 RSVP changes in the last week. Manually, each change usually means re-checking capacity, moving groups around, updating the master tab, and emailing a new PDF, which can easily take about 15 minutes per change (roughly 2.5 hours total). With this workflow, the update is a webhook hit, then a fresh plan gets computed and written back to Google Sheets in a couple of minutes, plus one email alert. You still review the output, but the busywork is gone.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets for attendee data and venue templates
- Email service (SMTP or provider) to send organizer alerts
- Google OAuth2 credentials (create in Google Cloud Console)
Skill level: Intermediate. You’ll connect Google credentials, map a webhook payload, and adjust a few rules in the workflow’s code steps.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A seating request hits your webhook. Your event platform (or a form tool) sends attendee and venue requirements to n8n, which starts the workflow instantly.
The payload gets verified. A quick validation step checks that required fields are present, so you don’t generate a plan from incomplete RSVP data.
Google Sheets is treated like the database. n8n pulls attendee records (groups, VIP status, accessibility needs, preferences) and also loads the right venue template, so layout rules stay consistent.
The seating plan is computed and packaged. Code steps assemble the dataset, calculate totals and constraints, generate the seating plan, and format it into a master summary plus a list of individual assignments.
Everyone gets the same output. The workflow returns a webhook response (useful for your system), appends the master summary in Google Sheets, writes individual seat details, and sends an email alert to organizers.
You can easily modify the seating rules to prioritize VIP proximity, accessibility spacing, or group clustering based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Webhook Trigger
Set up the inbound webhook that receives seating requests and starts the workflow.
- Add the Inbound Webhook Start node as your trigger.
- Set Path to
seating-planner. - Set HTTP Method to
POST. - Save the workflow to generate the webhook URL.
attendeeCount and venueCapacity so Verify Input Payload can validate capacity properly.Step 2: Connect Google Sheets
Configure all Google Sheets nodes for attendee data, venue templates, and output summaries.
- Open Retrieve Attendee Records and set Document to
[YOUR_ID]and Sheet togid=0(Attendees). Credential Required: Connect your googleApi credentials. - Open Load Venue Blueprints and set Document to
[YOUR_ID]and Sheet togid=1(Venue Layouts). Credential Required: Connect your googleApi credentials. - Open Append Master Summary and set Operation to
append, Document to[YOUR_ID], and Sheet togid=2(Seating Plans). Credential Required: Connect your googleApi credentials. - Open Write Seat Details and set Operation to
appendOrUpdate, Document to[YOUR_ID], and Sheet togid=3(Seat Assignments). Credential Required: Connect your googleApi credentials.
[YOUR_ID] in place will cause Google Sheets read/write failures. Replace it with the actual spreadsheet ID in all four nodes.Step 3: Set Up Processing Logic
Wire the core data validation and seating plan generation logic across the code nodes.
- In Verify Input Payload, keep the JavaScript that validates capacity and normalizes inputs (event type, venue size, accessibility needs, and request ID).
- Ensure Verify Input Payload outputs to Retrieve Attendee Records, Load Venue Blueprints, and Assemble Dataset in parallel.
- In Assemble Dataset, keep the merge logic that combines request data, attendees, and venue templates into a single JSON payload.
- In Compute Seating Plan, retain the layout selection, calculations, and seating assignment logic that produces
seatingPlan,statistics, andvisualMap. - In Compose Recommendations, keep the recommendation generation that adds a summary and
exportReadyflag. - In Expand Seat Records, keep the mapping that expands each seat assignment into individual records for the output sheet.
attendeeCount exceeds venueCapacity. Use this to enforce business rules at the webhook boundary.Step 4: Configure Output and Parallel Responses
Return the plan to the webhook caller and save summary and seat-level records to Google Sheets.
- Set Return Webhook Reply to respond with Respond With
jsonand Response Body to={{ JSON.stringify($json, null, 2) }}. - Confirm Compose Recommendations outputs to Return Webhook Reply, Append Master Summary, and Expand Seat Records in parallel.
- Verify Expand Seat Records outputs to Write Seat Details to persist seat-level assignments.
Step 5: Test and Activate Your Workflow
Validate the flow end-to-end with a real webhook call, then activate for production use.
- Click Execute Workflow and send a POST request to the Inbound Webhook Start URL with a JSON body that includes
attendeeCount,venueCapacity, andlayoutPreference. - Confirm the response from Return Webhook Reply includes
seatingPlan,statistics,recommendations, andsummary. - Check Append Master Summary and Write Seat Details in Google Sheets to verify rows were appended/updated correctly.
- When the test is successful, toggle the workflow to Active for live webhook handling.
Common Gotchas
- Google Sheets credentials can expire or need specific permissions. If things break, check the Google connection inside n8n’s Credentials tab and confirm the spreadsheet is shared with the right Google account.
- If your webhook sender changes field names (even slightly), the Verify Input Payload code step will reject the request. Check the webhook test data history first, then update the expected keys.
- Seating rules live in the compute/format code steps, so tiny “one-off” edits in the sheet won’t stick. Update the rules in the workflow, or the next run will overwrite manual tweaks.
Frequently Asked Questions
About an hour if your Google Sheets are already structured.
No, not for the basics. You may want light editing in the code steps if you have very specific seating rules.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in email sending costs (often free or low-cost on most providers).
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes. Swap the venue template logic by updating the Google Sheets venue blueprint data and adjusting how the workflow reads it in “Load Venue Blueprints.” Common customizations include table size rules, keeping certain groups together, and reserving specific zones for VIP seating.
Usually it’s expired OAuth permissions or the wrong Google account connected in n8n. Reconnect the Google Sheets credential, then confirm the spreadsheet is accessible to that account. If it still fails, check if the sheet was renamed or moved, because the node may be pointing at an old file reference.
Hundreds to a few thousand attendees is realistic for most events, assuming your seating logic is efficient and your Google Sheet is well-structured. On n8n Cloud, your limit is mostly about monthly executions, not attendee count per run. If you self-host, there’s no execution cap, and scaling depends on your server size and how complex the seating computation is.
Often, yes. Zapier and Make are great for simple “copy data from A to B,” but seating logic is rarely that clean, and branching rules can get expensive or awkward. n8n is more comfortable when you need custom validation, multiple Google Sheets reads/writes, and a chunk of decision logic in the middle. Also, self-hosting can be a big deal if you run lots of small updates close to the event. If you only need a basic email when a row changes, Zapier might be enough. Talk to an automation expert if you want a quick sanity check.
Once this is running, seating updates stop feeling fragile. The workflow keeps the plan consistent, and your team gets alerted with something they can actually trust.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.