Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 21, 2026

Sittplaner i Google Sheets med e-postaviseringar

Rickard Andersson Partner, Nodenordic.se

Bordsplaceringar faller ihop mitt i röran. En OSA ändras, någon redigerar en gammal flik och plötsligt har du två ”slutgiltiga” versioner som cirkulerar.

Automatisering av bordsplacering hjälper när du är eventplaneraren som försöker hålla borden balanserade, men det sparar också tid för driftansvarig som måste briefa personal och marknadsföraren som skickar VIP-kommunikation. I stället för att jaga uppdateringar får du en masterplan och en avisering när den ändras.

Det här n8n-flödet omvandlar bordsplaceringsönskemål till en uppdaterad plan i Google Sheets, individuella placeringar och en pålitlig e-postavisering. Du får se vad det gör, vad du behöver och hur du anpassar det efter lokalens regler.

Så fungerar automatiseringen

Hela n8n-flödet, från trigger till slutresultat:

n8n Workflow Template: Sittplaner i Google Sheets med e-postaviseringar

Problemet: bordsplaceringar går sönder så fort OSA ändras

De flesta bordsplaceringar är inte ”svåra” på grund av matematiken. De är svåra för att datan ändras hela tiden, och varje ändring skapar en ny omgång manuellt arbete. Någon uppdaterar deltagarlistan, någon annan justerar en mall för lokalens layout, och sedan försöker du få ihop tillgänglighetsbehov, grupper som måste sitta tillsammans och VIP-placering. Samtidigt frågar personalen: ”Är det här senaste versionen?” och du kan ärligt talat inte vara 100 % säker. Den osäkerheten leder till fel placeringskort, krångliga incheckningar och ommöbleringar i sista minuten som tar en hel eftermiddag.

Det eskalerar snabbt. Här är var det brukar fallera i verkligheten:

  • Manuell kopiera/klistra mellan OSA-exporter och ett bordsplaceringsark leder till inaktuell data och missade uppdateringar.
  • Regler för gruppplacering (familjer, team, sponsorer) tillämpas inkonsekvent när fler än en person redigerar planen.
  • Tillgänglighetskrav och placering nära gångar är lätt att missa när du har bråttom.
  • Även om planen är korrekt blir det en mejltråd med bilagor att få den till rätt personer (och bara rätt personer).

Lösningen: webhook-till-Sheets-automatisering av bordsplacering med aviseringar

Det här flödet startar med en bordsplaceringsförfrågan som skickas via webhook från ditt eventsystem (eller till och med ett enkelt formulär). n8n kontrollerar payloaden och hämtar sedan uppdaterade deltagarposter från Google Sheets tillsammans med rätt mall för lokalens planritning. När de två källorna kombineras beräknar det totaler och begränsningar (kapacitet, grupper, VIP, tillgänglighetsbehov), och genererar sedan en optimerad bordsplacering samt en tydlig uppsättning rekommendationer du kan agera på. Till sist skriver det tillbaka mastersammanfattningen i Google Sheets, expanderar planen till individuella platsrader och mejlar arrangörerna så att alla jobbar utifrån samma ”single source of truth”. Slut på jakten efter den senaste bilagan.

Flödet börjar med en inkommande webhook, vilket betyder att OSA kan trigga uppdateringar automatiskt. Därifrån tillhandahåller Google Sheets live-data, och flödets kodnoder räknar ut layouten och formaterar den till något personalen faktiskt kan använda. Resultatet hamnar i Sheets och i en e-postavisering, så planen är både lagrad och kommunicerad.

Vad du får: automatisering vs. resultat

Exempel: så här ser det ut

Säg att du kör en middag för 120 personer med 12 bord och får ungefär 10 OSA-ändringar sista veckan. Manuelt innebär varje ändring oftast att du dubbelkollar kapacitet, flyttar runt grupper, uppdaterar masterfliken och mejlar en ny PDF, vilket lätt tar cirka 15 minuter per ändring (ungefär 2,5 timmar totalt). Med det här flödet blir uppdateringen en webhook-träff, sedan beräknas en ny plan och skrivs tillbaka till Google Sheets på ett par minuter, plus en e-postavisering. Du granskar fortfarande resultatet, men grovjobbet är borta.

Det här behöver du

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
  • Google Sheets för deltagardata och lokalens mallar
  • E-posttjänst (SMTP eller leverantör) för att skicka aviseringar till arrangörer
  • Google OAuth2-uppgifter (skapa i Google Cloud Console)

Kunskapsnivå: Medel. Du kopplar Google-uppgifter, mappar en webhook-payload och justerar några regler i flödets kodsteg.

Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).

Så fungerar det

En bordsplaceringsförfrågan träffar din webhook. Din eventplattform (eller ett formulärverktyg) skickar deltagar- och lokalens krav till n8n, som startar flödet direkt.

Payloaden verifieras. Ett snabbt valideringssteg kontrollerar att obligatoriska fält finns med, så att du inte genererar en plan från ofullständig OSA-data.

Google Sheets behandlas som databasen. n8n hämtar deltagarposter (grupper, VIP-status, tillgänglighetsbehov, preferenser) och laddar även rätt lokal-mall, så att layoutreglerna hålls konsekventa.

Bordsplaceringen beräknas och paketeras. Kodsteg bygger ihop datamängden, räknar totaler och begränsningar, genererar bordsplaceringen och formaterar den till en mastersammanfattning plus en lista med individuella tilldelningar.

Alla får samma output. Flödet returnerar ett webhook-svar (användbart för ditt system), lägger till mastersammanfattningen i Google Sheets, skriver individuella platsdetaljer och skickar en e-postavisering till arrangörerna.

Du kan enkelt ändra placeringsreglerna för att prioritera VIP-närhet, avstånd för tillgänglighet eller gruppering utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementation

Steg 1: konfigurera webhook-triggern

Konfigurera den inkommande webhooken som tar emot sittningsförfrågningar och startar arbetsflödet.

  1. Lägg till noden Inbound Webhook Start som din trigger.
  2. Ställ in Pathseating-planner.
  3. Ställ in HTTP MethodPOST.
  4. Spara arbetsflödet för att generera webhook-URL:en.
Använd en testklient (Postman/cURL) för att skicka en exempel-JSON-payload med attendeeCount och venueCapacity så att Verify Input Payload kan validera kapaciteten korrekt.

Steg 2: koppla Google Sheets

Konfigurera alla Google Sheets-noder för deltagardata, lokal-mallar och utdataskrivningar.

  1. Öppna Retrieve Attendee Records och ställ in Document[YOUR_ID] och Sheetgid=0 (Deltagare). Credential Required: Anslut era googleApi-credentials.
  2. Öppna Load Venue Blueprints och ställ in Document[YOUR_ID] och Sheetgid=1 (Lokallayouter). Credential Required: Anslut era googleApi-credentials.
  3. Öppna Append Master Summary och ställ in Operationappend, Document[YOUR_ID] och Sheetgid=2 (Sittningsplaner). Credential Required: Anslut era googleApi-credentials.
  4. Öppna Write Seat Details och ställ in OperationappendOrUpdate, Document[YOUR_ID] och Sheetgid=3 (Platsfördelning). Credential Required: Anslut era googleApi-credentials.
⚠️ Vanlig fallgrop: Om ni lämnar [YOUR_ID] som det är kommer Google Sheets-läsning/skrivning att misslyckas. Ersätt det med det faktiska kalkylblads-ID:t i alla fyra noder.

Steg 3: sätt upp bearbetningslogik

Koppla ihop den centrala logiken för datavalidering och generering av sittningsplan i kodnoderna.

  1. I Verify Input Payload, behåll JavaScript-koden som validerar kapacitet och normaliserar indata (eventtyp, lokalstorlek, tillgänglighetsbehov och förfrågnings-ID).
  2. Säkerställ att Verify Input Payload skickar output till Retrieve Attendee Records, Load Venue Blueprints och Assemble Dataset parallellt.
  3. I Assemble Dataset, behåll merge-logiken som kombinerar förfrågningsdata, deltagare och lokal-mallar till en enda JSON-payload.
  4. I Compute Seating Plan, behåll logiken för val av layout, beräkningar och platsfördelning som skapar seatingPlan, statistics och visualMap.
  5. I Compose Recommendations, behåll rekommendationsgenereringen som lägger till en sammanfattning och flaggan exportReady.
  6. I Expand Seat Records, behåll mappningen som expanderar varje platsfördelning till individuella rader för utdataarket.
Verify Input Payload returnerar ett fel-svarsobjekt när attendeeCount överstiger venueCapacity. Använd detta för att upprätthålla affärsregler vid webhook-gränsen.

Steg 4: konfigurera utdata och parallella svar

Returnera planen till webhook-anroparen och spara sammanfattning samt platsnivåposter i Google Sheets.

  1. Ställ in Return Webhook Reply så att den svarar med Respond With json och Response Body till ={{ JSON.stringify($json, null, 2) }}.
  2. Bekräfta att Compose Recommendations skickar output till Return Webhook Reply, Append Master Summary och Expand Seat Records parallellt.
  3. Verifiera att Expand Seat Records skickar output till Write Seat Details för att persistenta platsnivåfördelningar.
⚠️ Vanlig fallgrop: Om arbetsflödet returnerar ett svar innan skrivningarna till Google Sheets är klara, kontrollera att den parallella grenen från Compose Recommendations är kopplad exakt som visat.

Steg 5: testa och aktivera ert arbetsflöde

Validera flödet end-to-end med ett riktigt webhook-anrop och aktivera sedan för produktion.

  1. Klicka på Execute Workflow och skicka en POST-begäran till Inbound Webhook Start-URL:en med en JSON-body som innehåller attendeeCount, venueCapacity och layoutPreference.
  2. Bekräfta att svaret från Return Webhook Reply innehåller seatingPlan, statistics, recommendations och summary.
  3. Kontrollera Append Master Summary och Write Seat Details i Google Sheets för att verifiera att rader lades till/uppdaterades korrekt.
  4. När testet är lyckat, slå om arbetsflödet till Active för hantering av live-webhooks.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Google Sheets-uppgifter kan gå ut eller kräva specifika behörigheter. Om något slutar fungera: kontrollera Google-kopplingen i n8n under fliken Credentials och bekräfta att kalkylarket är delat med rätt Google-konto.
  • Om webhook-avsändaren ändrar fältnamn (även lite) kommer kodsteget Verify Input Payload att avvisa förfrågan. Kontrollera först historiken för webhook-testdata, och uppdatera sedan förväntade nycklar.
  • Placeringsreglerna ligger i kodstegen för beräkning/formatering, så små ”engångsändringar” i arket kommer inte att bestå. Uppdatera reglerna i flödet, annars skriver nästa körning över manuella justeringar.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automatiseringen av bordsplacering?

Cirka en timme om dina Google Sheets redan är strukturerade.

Behöver jag kunna koda för att automatisera bordsplacering?

Nej, inte för grunderna. Du kan vilja göra lättare ändringar i kodstegen om du har väldigt specifika placeringsregler.

Är n8n gratis att använda för det här flödet för automatisering av bordsplacering?

Ja. n8n har ett gratisalternativ för egen drift och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna med kostnader för att skicka e-post (ofta gratis eller låg kostnad hos de flesta leverantörer).

Var kan jag hosta n8n för att köra den här automatiseringen av bordsplacering?

Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärt och klarar n8n bra. Egen drift ger obegränsade körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här flödet för automatisering av bordsplacering till en annan lokal-layout (runda bord vs. rader)?

Ja. Byt lokal-malllogiken genom att uppdatera data för lokalens planritningar i Google Sheets och justera hur flödet läser den i ”Load Venue Blueprints”. Vanliga anpassningar är regler för bordsstorlek, att hålla vissa grupper tillsammans och att reservera specifika zoner för VIP-platser.

Varför misslyckas min Google Sheets-anslutning i det här flödet?

Oftast beror det på utgångna OAuth-behörigheter eller att fel Google-konto är anslutet i n8n. Återanslut Google Sheets-uppgiften och bekräfta sedan att kalkylarket är åtkomligt för det kontot. Om det fortfarande misslyckas: kontrollera om arket har bytt namn eller flyttats, eftersom noden kan peka på en gammal filreferens.

Hur många deltagarposter kan den här automatiseringen av bordsplacering hantera?

Hundratals till några tusen deltagare är realistiskt för de flesta event, förutsatt att din placeringslogik är effektiv och att ditt Google Sheet är välstrukturerat. På n8n Cloud handlar din gräns främst om körningar per månad, inte antal deltagare per körning. Om du kör egen drift finns inget tak för körningar, och skalning beror på serverstorlek och hur komplex beräkningen av bordsplaceringen är.

Är den här automatiseringen av bordsplacering bättre än att använda Zapier eller Make?

Ofta, ja. Zapier och Make är bra för enkel ”kopiera data från A till B”, men placeringslogik är sällan så rak, och förgreningar kan bli dyra eller klumpiga. n8n passar bättre när du behöver egen validering, flera läsningar/skrivningar mot Google Sheets och en del beslutslogik i mitten. Egen drift kan också vara avgörande om du gör många små uppdateringar nära inpå eventet. Om du bara behöver ett enkelt mejl när en rad ändras kan Zapier räcka. Prata med en automationsexpert om du vill göra en snabb rimlighetskontroll.

När detta väl rullar slutar uppdateringar av bordsplaceringen att kännas sköra. Flödet håller planen konsekvent, och teamet får en avisering med något de faktiskt kan lita på.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Launch login modal Launch register modal