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

Google Sheets + Gmail – formulärspårning att lita på

Rickard Andersson Partner, Nodenordic.se

Att manuellt kontrollera Google Form-svar mot en deltagarlista låter enkelt, tills du gör det varje dag och ändå missar folk. Någon svär på att de skickade in, ditt kalkylark säger att de inte gjorde det, och plötsligt fastnar du i detektivarbete i stället för uppföljning.

Den här Sheets Gmail-automationen drabbar institutions-/avdelningssamordnare hårdast, men programansvariga och små team som håller workshops känner av den också. Du får en livevy över vem som har skickat in, vem som inte har gjort det, och du kan skicka rätt mejl på minuter, inte timmar.

Du sätter upp en n8n-arbetsflödessvit som stämmer av din lista mot svaren, visar en enkel dashboard och triggar bekräftelse- eller påminnelsemejl från Gmail.

så här fungerar automatiseringen

Här är det kompletta arbetsflödet du kommer att sätta upp:

n8n Workflow Template: Google Sheets + Gmail – formulärspårning att lita på

varför det här spelar roll: avvikelser mellan lista och formulär

Att följa upp inskickningar är frustrerande eftersom “sanningen” finns på två ställen: ditt kalkylark med deltagarlistan och kalkylarket med formulärsvaren. Du fastnar i filtrering, sortering, letande efter registreringsnummer och copy-paste av namn till mejlutkast. Det handlar inte bara om tid. Det är den mentala belastningen av att minnas vem du redan har puffat på, plus det obekväma i att påminna någon som faktiskt redan skickade in (eller att glömma någon som inte gjorde det). Efter några varv börjar kalkylarket kännas som en brottsplats.

Det eskalerar snabbt. Här är hur det brukar skapa fel i verkligheten.

  • Varje manuell avstämning blir till 30–60 minuter av filtrering och “mejlade jag dem redan?”-tvekan.
  • Listdata och formulärdata matchar sällan perfekt, så ett enda skrivfel i ett registreringsnummer kan dölja en inskickning.
  • Bekräftelser hoppas över när det är mycket, vilket leder till fler “jag skickade in, fick du det?”-uppföljningar senare.
  • Påminnelser skickas sent eller inte alls, och då jagar du svar i sista minuten.

det du bygger: en live-dashboard för uppföljning med mejl med ett klick

Den här workflow-sviten gör dina Google Sheets till en uppföljare för registrering i realtid som hålls aktuell utan handpåläggning. Den startar med en webhook-baserad dashboard i n8n: du öppnar en enkel URL och n8n hämtar din student-/deltagarlista från ett kalkylark och dina Google Form-svar från ett annat. Ett litet kodsteg jämför dem via en gemensam identifierare (som registreringsnummer) och genererar sedan en HTML-dashboard som listar totaler, inskickade och väntande. Från samma dashboard kan du trigga två kompletterande webhooks: en skickar ett tackmejl till personer som har fyllt i formuläret, och den andra mejlar en påminnelse till dem som fortfarande väntar. Resultatet är strukturerad spårning plus snabb uppföljning, med betydligt färre misstag.

Arbetsflödet startar när du laddar live-sidan för uppföljning eller trycker på en knapp i dashboarden. n8n matchar rader i listan mot rader i formulärsvaren, förbereder sedan rätt mejlinnehåll och skickar via Gmail. Till sist returnerar det en bekräftelsesida så att du ser att utskicket faktiskt genomfördes.

det du bygger

förväntade resultat

Säg att du följer upp 120 studenter. Manuellt kanske du lägger cirka 45 minuter på att exportera eller öppna svar, ytterligare 45 minuter på att matcha registreringsnummer, och sedan 30 minuter på att skriva och skicka mejl – alltså ungefär 2 timmar per uppföljningsrunda. Med det här arbetsflödet öppnar du dashboard-URL:en (cirka en minut), klickar på “Skicka bekräftelser” eller “Skicka påminnelser” och väntar några minuter medan Gmail skickar. Du behåller kontrollen, men slitjobbet försvinner.

innan du börjar

  • n8n-instans (prova n8n Cloud gratis)
  • alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
  • Google Sheets för att lagra deltagarlista och svar.
  • Gmail för att skicka bekräftelser och påminnelser.
  • Google OAuth-uppgifter (sätts upp i Google Cloud Console för åtkomst till Sheets/Gmail).

svårighetsnivå: Nybörjare. Du kopplar Google-konton, bekräftar kolumner i kalkylarken och klistrar in webhook-URL:er.

Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).

steg för steg

En dashboard-sida öppnas. Arbetsflödet “Live tracking” startar från en n8n-webhook-endpoint (som /live-tracking), vilket innebär att du kan bokmärka den och använda den som ett internt verktyg.

Dina två Sheets hämtas in. n8n läser deltagarlistan (registreringsnummer, namn, mejl) och läser formulärsvaren (tidsstämpel, reg nr, mejladress). Dessa kommer in som två dataströmmar.

Listan stäms av mot svaren. Ett merge-steg linjerar ihop de två uppsättningarna, och ett litet kodsteg jämför nycklar (oftast registreringsnummer) för att avgöra vilka som är “inskickade” och vilka som är “väntande”. Därefter bygger det en HTML-dashboard som visar sammanfattande statistik och två åtgärdsknappar.

Mejl skickas på beställning. När du klickar på “Skicka bekräftelser” eller “Skicka påminnelser” körs en kompletterande webhook, som mergar lista + svar igen (så att den alltid är aktuell), genererar personliga mejltexter, skickar via Gmail och returnerar sedan en bekräftelsesida.

Du kan enkelt ändra matchningsfältet (registreringsnummer, mejl eller ett eget ID) så att det passar din process. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: Konfigurera webhook-triggern

Konfigurera de tre inkommande webhooks som driver dashboard-vyn och e-poståtgärderna.

  1. Öppna Incoming Dashboard Hook och ställ in Path till 2235781f-4371-4f6e-8767-41c352ed171f, med Response Mode inställt på responseNode.
  2. Öppna Incoming Acknowledgement Hook och ställ in Path till send-acknowledgements, med Response Mode inställt på responseNode.
  3. Öppna Incoming Reminder Hook och ställ in Path till send-reminder, med Response Mode inställt på responseNode.
  4. Bekräfta parallell exekvering: Incoming Dashboard Hook skickar utdata till både Fetch Spreadsheet Data och Retrieve Form Responses parallellt.
  5. Bekräfta parallell exekvering: Incoming Acknowledgement Hook skickar utdata till både Fetch Student Roster och Fetch Response Records parallellt.
  6. Bekräfta parallell exekvering: Incoming Reminder Hook skickar utdata till både Retrieve Roster Records och Fetch Reminder Responses parallellt.
Använd unika paths i produktion och håll dashboard-pathen privat eftersom den kan trigga massutskick.

Steg 2: Anslut Google Sheets

Koppla Google Sheets-datakällor för studentlistor och formulärsvar i de tre flödena.

  1. Öppna Fetch Spreadsheet Data och välj dokumentet 1-i55cyu2DKZ_alSlR3Bd7abHn_EfvTpg73hv2y3zb4o och arket gid=0. Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter.
  2. Öppna Retrieve Form Responses och välj dokumentet 10eIZzrzgRy8PKfyhhVc8eG8lFoAxEqE0h-IOnqHwdVE och arket 1113734691. Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter.
  3. Öppna Fetch Student Roster och välj dokumentet 1-i55cyu2DKZ_alSlR3Bd7abHn_EfvTpg73hv2y3zb4o och arket gid=0. Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter.
  4. Öppna Fetch Response Records och välj dokumentet 10eIZzrzgRy8PKfyhhVc8eG8lFoAxEqE0h-IOnqHwdVE och arket 1113734691. Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter.
  5. Öppna Retrieve Roster Records och välj dokumentet 1-i55cyu2DKZ_alSlR3Bd7abHn_EfvTpg73hv2y3zb4o och arket gid=0. Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter.
  6. Öppna Fetch Reminder Responses och välj dokumentet 10eIZzrzgRy8PKfyhhVc8eG8lFoAxEqE0h-IOnqHwdVE och arket 1113734691. Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter.
⚠️ Common Pitfall: Säkerställ att kolumnrubrikerna matchar exakt (t.ex. Register No. och Reg No) för att undvika felmatchningar i merge-logiken.

Steg 3: Konfigurera dashboard-bearbetning

Slå ihop roster- och svarsdata och generera sedan HTML-dashboarden som returneras till webbläsaren.

  1. Öppna Combine Register Streams och ställ in Mode till combine med Advanced aktiverat.
  2. I Combine Register Streams, ställ in Merge By Fields för att mappa Register No. (field1) med Reg No (field2).
  3. Öppna Build Tracking Dashboard och granska JavaScript-koden som sammanställer sammanfattningsstatistik och HTML-dashboard-utdata.
  4. Öppna Return Webhook Output och ställ in Respond With till text och Response Body till =={{ $json["html"] }}.
Ersätt platshållaren https://[YOUR_WEBHOOK_URL] i Build Tracking Dashboard med er faktiska webhook-bas-URL för dashboard-knapparna.

Steg 4: Konfigurera flödet för bekräftelsemejl

Sammanfoga roster- och svarsdata, bygg personliga tackmejl, skicka dem via Gmail och returnera en bekräftelsesida.

  1. Bekräfta att Merge Email Sources tar emot indata från både Fetch Student Roster och Fetch Response Records parallellt.
  2. Öppna Compose Thank You Emails och verifiera att ämnet är ✅ Thank You for Your Submission och att brödtextmallen använder platshållarna {{name}} och {{reg}}.
  3. Öppna Dispatch Email Notices och ställ in Send To till ={{$json["Email Address"]}}, Subject till {{ $json.subject }} och Message till ={{ $json.htmlBody }}. Inloggningsuppgifter krävs: Anslut era gmailOAuth2-inloggningsuppgifter.
  4. Öppna Return Acknowledgement Page och bekräfta att HTML-svarstexten innehåller er korrekta dashboard-länk.
⚠️ Common Pitfall: Om Compose Thank You Emails returnerar ”No completed students found,” skickas inga mejl – detta är förväntat beteende när det inte finns några matchningar.

Steg 5: Konfigurera flödet för påminnelsemejl

Identifiera elever som inte är klara, förbered påminnelsemeddelanden, skicka dem via Gmail och returnera sidan för påminnelsebekräftelse.

  1. Bekräfta att Merge Reminder Sources tar emot indata från både Retrieve Roster Records och Fetch Reminder Responses parallellt.
  2. Öppna Compose Reminder Emails och verifiera att ämnet är ⚠️ Reminder: Please Complete Your Form och att mallen använder platshållarna {{name}} och {{reg}}.
  3. Öppna Send Reminder Emails och ställ in Send To till ={{$json["Email Address"]}}, Subject till ={{ $json.subject }} och Message till ={{ $json.htmlBody }}. Inloggningsuppgifter krävs: Anslut era gmailOAuth2-inloggningsuppgifter.
  4. Öppna Return Reminder Page och bekräfta att HTML-svarstexten innehåller er korrekta dashboard-länk.
⚠️ Common Pitfall: Compose Reminder Emails returnerar ”All students have submitted. No reminders needed.” när det inte finns några utestående poster – detta stoppar e-postutskick avsiktligt.

Steg 6: Testa och aktivera ert workflow

Validera varje webhook-path, säkerställ e-postleverans och aktivera sedan workflowet för produktion.

  1. Klicka på Execute Workflow och öppna test-URL:en från Incoming Dashboard Hook för att bekräfta att HTML-dashboarden renderas.
  2. Använd dashboard-knapparna för att trigga Incoming Acknowledgement Hook och Incoming Reminder Hook och bekräfta att varje webhook returnerar rätt HTML-bekräftelsesida.
  3. Verifiera att Dispatch Email Notices och Send Reminder Emails skickar meddelanden till förväntade e-postadresser.
  4. När testkörningen är lyckad, slå på workflowet till Active för att aktivera användning i produktion.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

felsökningstips

  • Google Sheets-inloggningar kan gå ut eller kräva specifika behörigheter. Om något skapar fel, kontrollera först Google-anslutningen i n8n under Credentials.
  • Om du använder webhook-knappar från dashboarden, säkerställ att dina n8n-webhook-URL:er är korrekta för din miljö (test vs. production). En kopierad “test”-URL är en vanlig orsak till att knappen fungerar en gång och sedan misslyckas senare.
  • Gmail kan strypa eller neka utskick i klungor om du skickar för många mejl för snabbt. Om du mejlar en stor lista, lägg in en kort fördröjning mellan utskicken och bekräfta att ditt Gmail-konto får skicka från den adressen.

snabba svar

Hur lång är startsträckan för den här Sheets Gmail-automationen?

Cirka 30 minuter om dina kolumner i Sheets redan är strukturerade.

Krävs kodning för den här Sheets Gmail-automationen?

Nej. Du klistrar in ett workflow och kopplar konton, och de inkluderade kodnoderna är redan uppsatta för matchning och mejltext.

Är n8n gratis att använda för det här Sheets Gmail-automationsflödet?

Ja. n8n har ett gratis alternativ 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 in kostnader för Google Workspace om du skickar från en hanterad domän.

Var kan jag hosta n8n för att köra den här Sheets Gmail-automationen?

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

Kan jag anpassa det här Sheets Gmail-automationsflödet för andra användningsfall?

Ja, och det bör du. De flesta team byter “matchningsnyckeln” som används i merge- och kodstegen (till exempel mejl i stället för registreringsnummer) och justerar sedan texten i “Compose Thank You Emails” och “Compose Reminder Emails” så att den passar deras ton. Du kan också lägga till ett loggsteg som skriver varje utskick till ett kalkylark “Mail Logs”. Om du vill ha WhatsApp i stället för mejl, byt ut Gmail-steget mot en HTTP Request till en leverantör som Twilio.

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

Oftast beror det på att Google OAuth-medgivandet har gått ut eller ändrats. Återanslut Google Sheets-uppgiften i n8n och bekräfta sedan att det anslutna Google-kontot fortfarande har åtkomst till kalkylarket. Kontrollera också att kalkylarksnamn och kolumner inte har bytt namn, eftersom flödet kan välja fält som inte längre finns. Om du kör detta på en delad enhet kan behörigheter vara lite knepiga, helt ärligt.

Vilken volym kan det här Sheets Gmail-automationsflödet hantera?

Några hundra rader per körning är normalt, och Gmails sändningsgränser brukar vara den verkliga begränsningen.

Är den här Sheets Gmail-automationen bättre än att använda Zapier eller Make?

Ofta, ja, eftersom den här lösningen behöver matchningslogik, listor för “väntande vs klart” och ett HTML-dashboard-svar, vilket blir klumpigt i enkla tvåstegsverktyg. n8n hanterar förgreningar utan att ta extra betalt för varje väg. Det ger dig också möjligheten att köra egen drift, vilket är viktigt om du kör detta dagligen och inte vill att per-uppgift-prissättning smyger upp. Zapier eller Make kan fortfarande fungera om du bara vill ha “nytt formulärsvar → skicka mejl”, men det är inte samma sak som att stämma av mot en deltagarlista. Om du är osäker, prata med en automationsexpert så hjälper vi dig att välja det enklaste alternativet.

När detta väl rullar håller dina Sheets ordning på verkligheten, och dina uppföljningar slutar falla mellan stolarna. Sätt upp det en gång och använd tiden du får tillbaka till jobbet som faktiskt kräver dig.

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