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: CRM-uppföljningar som rullar

Rickard Andersson Partner, Nodenordic.se

Ditt ”CRM” är förmodligen ett Google Sheet som gör alldeles för mycket. Någon ändrar en lead-status, någon annan glömmer att följa upp, och plötsligt gräver du i gamla trådar för att minnas vad du lovade och när.

Det är här automatisering med Sheets Gmail CRM verkligen gör nytta. Sales ops-team märker det först, men byråägare och marknadschefer som kör leadpipelines i kalkylark lever i samma kaos. Du får konsekventa uppföljningar, mer strukturerade klientregister och spårning av leveranstid utan att köpa ett tungt CRM.

Det här flödet gör enkla ändringar i arket till åtgärder. Du ser vad som triggar det, vad som uppdateras, vad som mejlas och hur det håller din pipeline ärlig.

Så fungerar automatiseringen

Se hur detta löser problemet:

n8n Workflow Template: Google Sheets + Gmail: CRM-uppföljningar som rullar

Utmaningen: kalkylarks-CRM faller isär vid uppföljning

Ett Google Sheet är bra på att lagra lead-information. Det är uselt på att säkerställa att nästa steg faktiskt händer. Så fort din pipeline bygger på att ”någon kommer ihåg” får du luckor: ingen förvarning om offert, ingen bokningslänk, ingen tydlig överlämning när en affär vinns. Sedan blir fliken ”Clients” en kyrkogård av halvifyllda rader, saknade datum och leveranstidslinjer som ingen litar på. Och ärligt talat är det mentala trycket det som känns mest. Du driver verksamheten samtidigt som du försöker vara själva workflow-motorn.

Det eskalerar snabbt. Här är var det går sönder i verkligheten.

  • Statusändringar sker i arket, men uppföljningsmejlet skickas aldrig eftersom det inte var kopplat till ändringen.
  • Vunna affärer kopieras inte till en separat ”Clients”-tracker, så leveransstatus hamnar utspritt på olika ställen.
  • Start- och sluttidsstämplar saknas eller är inkonsekventa, vilket gör ”tid till leverans” mer till en gissning.
  • Även när någon gör allt rätt krävs det ändå konstant kontroll och påminnelser för att hålla pipelinen i rörelse.

Lösningen: gör arkändringar till automatiska uppföljningar

Det här n8n-flödet bevakar ditt Google Sheet som en lätt CRM-assistent. När någon ändrar en leads status eller markerar dem som kvalificerade skickar ett litet Google Apps Script ändringen direkt till n8n via webhook. n8n avgör sedan vad som ska hända baserat på den exakta uppdateringen: skicka rätt Gmail-uppföljning, lägga till en vunnen lead i en korrekt Clients-flik eller stämpla slutdatum när ett projekt levereras. Det räknar också ut ”Time to Deliver” så att du slipper göra datum-matte i huvudet. Resultatet är en pipeline som rör sig framåt eftersom åtgärder sker så fort arket ändras, inte när du råkar komma ihåg det senare.

Flödet startar när ditt ark redigeras och Apps Script postar JSON till n8n. Därifrån förgrenar n8n baserat på vilket fält som ändrades (Qualified, Stage, Project Status). Till sist sker Gmail- och Google Sheets-uppdateringar automatiskt så att dina Leads- och Clients-flikar håller sig synkade.

Vad som förändras: före vs. efter

Effekt i verkligheten

Säg att du hanterar 20 aktiva leads i veckan och vanligtvis gör 3 manuella steg när de byter status: skicka ett mejl (cirka 5 minuter), uppdatera en annan flik (cirka 3 minuter) och lägga till tidsstämplar (cirka 2 minuter). Det är ungefär 10 minuter per lead-uppdatering, vilket blir cirka 3 timmar pilljobb i veckan. Med det här flödet är ”jobbet” att ändra en cell i Google Sheets och sedan låta mejl och uppdateringar gå klart i bakgrunden. Du bestämmer fortfarande statusen, men du slipper administrationen.

Krav

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
  • Google Sheets för att lagra flikarna Leads och Clients
  • Gmail för att skicka uppföljningsmejl automatiskt
  • Åtkomst till Google Apps Script (Tillägg → Apps Script i Sheets)

Kunskapsnivå: Medel. Du klistrar in ett Apps Script, kopplar Google-uppgifter i n8n och ersätter några placeholders.

Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).

Flödets gång

En ändring i arket triggar automatiseringen. Ett litet Google Apps Script lyssnar på ändringar i dina Leads- eller Clients-flikar och postar den ändrade raddatan till rätt n8n-webhook.

n8n kontrollerar vad som ändrades och routar det. Om uppdateringen är ”Qualified? = true” går den via kvalificeringsgrenen. Om det är en statusändring kontrollerar n8n ”Awaiting Proposal” eller ”Won”. Om det är en kundstatusändring kontrollerar den ”Delivered”.

Mejl och tidsstämplar sker automatiskt. Gmail skickar ditt bokningsmejl (med din Cal.com-länk) eller ett förvarningsmeddelande om offert. När en lead blir ”Won” formaterar n8n starttiden och lägger till en ny rad i Clients-fliken så att leveransen startar med ett korrekt register.

Leveranstid beräknas och skrivs tillbaka. När projektstatus blir Delivered söker flödet upp kundraden via e-post, stämplar en sluttid, beräknar time-to-deliver och uppdaterar arket.

Du kan enkelt anpassa Gmail-texten till din tonalitet, eller byta notifieringssteget till Slack baserat på behov. Se hela implementeringsguiden nedan för anpassningsalternativ.

Steg-för-steg-implementeringsguide

Steg 1: konfigurera webhook-triggern

Det här arbetsflödet använder tre webhook-ingångar för olika CRM-händelser. Ställ in varje webhook-sökväg och metod exakt som visas så att era externa system kan anropa dem.

  1. Lägg till noden Incoming Lead Stage Hook och ställ in HTTP MethodPOST med Path satt till lead-stage-changed.
  2. Lägg till noden Lead Qualified Webhook och ställ in HTTP MethodPOST med Path satt till lead-qualified.
  3. Lägg till noden Meeting Booked Webhook och ställ in HTTP MethodPOST med Path satt till cal-booked.
  4. Lägg till noden Client Status Webhook och ställ in HTTP MethodPOST med Path satt till client-status-changed.

Kopiera varje webhooks produktions-URL från n8n och använd den i ert CRM eller bokningsverktyg så att händelser når rätt trigger.

Steg 2: anslut Google Sheets

Flera noder läser och skriver till ert CRM-kalkylark för leads och klienter. Anslut Google Sheets en gång och konfigurera varje nod till rätt dokument och flik.

  1. Öppna Append Won Client Row och välj kalkylarket i Document med {{GOOGLE_SHEETS_DOC_ID}}, ställ sedan in Sheet till {{CLIENTS_GID}} och behåll Operation som append.
  2. Ställ in kolumnmappningarna i Append Won Client Row: Name{{ $json.body.name }}, Client Email{{ $json.body.email }}, Start Date & Time{{ $json.data }}.
  3. Öppna Lookup Client by Email och ställ in filtret Client Email till {{ $json.body.email }}, med Document {{GOOGLE_SHEETS_DOC_ID}} och Sheet {{CLIENTS_GID}}.
  4. Öppna Update Lead to Meeting Booked, ställ in Operation till update, Document till {{GOOGLE_SHEETS_DOC_ID}}, Sheet till gid={{LEADS_GID}}, och matcha på Client Email.
  5. Mappa värden i Update Lead to Meeting Booked: StageMeeting Booked, Client Email{{ $json.body.payload.attendees[0].email }}.
  6. Öppna Update Client End Duration och ställ in Operation till update, med Document {{GOOGLE_SHEETS_DOC_ID}} och Sheet {{CLIENTS_GID}}, och matcha på Client Email.
  7. Mappa värden i Update Client End Duration: Client Email{{ $json["Client Email"] }}, End Date & Time{{ $json.endStr }}, Time to Deliver{{ $json.duration }}.
  8. Credential Required: Anslut era googleSheetsOAuth2Api-uppgifter till Append Won Client Row, Lookup Client by Email, Update Lead to Meeting Booked och Update Client End Duration.

⚠️ Vanlig fallgrop: Uppdateringsnoderna bygger på matchning av Client Email. Säkerställ att kolumnen finns och att e-postadressen i inkommande payloads matchar värdena i arket exakt.

Steg 3: sätt upp bearbetning av lead-steg

Den här grenen hanterar aviseringar om stegändringar, skickar offertmejl och lägger till “Won”-klienter i kalkylarket.

  1. I Assemble Email Fields, lägg till fält med dessa uttryck: firstName{{ $json.body.name ? $json.body.name.trim().split(' ')[0] : 'there' }}, sourcePlatform {{ $json.body.source_text || 'Unknown' }}, stage{{ $json.body.stage }}, previousStage{{ $json.body.previous_stage || '' }}.
  2. I Check Awaiting Proposal, ställ in villkoret att jämföra Left Value {{ $json.stage }} är lika med Awaiting Proposal.
  3. Konfigurera Gmail Send Stage Update med Send To {{ $('Assemble Email Fields').item.json.body.email }}, Subject Next Steps, och den angivna HTML-koden i Message.
  4. I Check Stage Won, ställ in villkoret Left Value {{ $json.stage }} är lika med Won.
  5. Konfigurera Format Start Time med Value {{ $now }} och To Format DD/MM/YYYY 'at' HH:mm.
  6. Credential Required: Anslut era gmailOAuth2-uppgifter till Gmail Send Stage Update.

Körflödet är linjärt: Incoming Lead Stage HookAssemble Email FieldsCheck Awaiting ProposalGmail Send Stage UpdateCheck Stage WonFormat Start TimeAppend Won Client Row.

Steg 4: konfigurera e-postutskick för kvalificering av leads

Kvalificerade leads får ett inbjudningsmejl för att boka ett discovery-samtal.

  1. I Verify Qualification, ställ in villkoret att kontrollera att Left Value {{ $json.body.qualified }} är true.
  2. Konfigurera Send Cal Invite Email med Send To {{ $json.body.email }}, Subject Book Your Discovery Call, och den angivna HTML-koden i Message.
  3. Credential Required: Anslut era gmailOAuth2-uppgifter till Send Cal Invite Email.

Steg 5: spåra leveransstatus och leveranstid för klienter

Den här grenen uppdaterar klientens slutdatum och leveranstid när projektet markeras som levererat.

  1. I Check Delivered Status, ställ in villkoret Left Value {{ $json.body.project_status }} är lika med Delivered.
  2. Konfigurera Format End Time med Value {{ $now }} och To Format DD/MM/YYYY 'at' HH:mm.
  3. Behåll Compute Delivery Duration som den är och säkerställ att den körs efter Lookup Client by Email och Format End Time för att beräkna endStr och duration.
  4. Bekräfta att Compute Delivery Duration skickar output till Update Client End Duration för att skriva tillbaka de beräknade värdena till kalkylarket.

⚠️ Vanlig fallgrop: Koden förväntar sig ett kolumnformat för “Start Date & Time” som DD/MM/YYYY at HH:mm. Om ert ark använder ett annat format, justera parsern i Compute Delivery Duration.

Steg 6: testa och aktivera ert arbetsflöde

Kör manuella tester för varje webhook-sökväg för att bekräfta att mejl och kalkylarksuppdateringar sker som förväntat.

  1. Använd knappen TestIncoming Lead Stage Hook, skicka en exempel-payload och bekräfta att Gmail Send Stage Update skickar ett mejl när stage är Awaiting Proposal.
  2. Trigga Lead Qualified Webhook med qualified: true och verifiera att Send Cal Invite Email skickar bokningsinbjudan.
  3. Trigga Meeting Booked Webhook och bekräfta att Update Lead to Meeting Booked uppdaterar Stage i er Leads-flik.
  4. Trigga Client Status Webhook med project_status: Delivered och verifiera att Update Client End Duration uppdaterar End Date & Time och Time to Deliver.
  5. När alla tester går igenom, växla arbetsflödet till Active för att aktivera automatisering i produktion.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Se upp med

  • Google Sheets-uppgifter kan gå ut eller kräva specifika behörigheter. Om det slutar fungera: kontrollera status på n8n-credentials och auktorisera om Google-kontot först.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in din varumärkesröst tidigt, annars kommer du redigera utdata för alltid.

Vanliga frågor

Hur snabbt kan jag implementera den här Sheets Gmail CRM-automatiseringen?

Cirka en timme om ditt Google Sheet redan är uppsatt.

Kan icke-tekniska team implementera det här Sheets Gmail CRM?

Ja, men du behöver någon som är bekväm med att klistra in ett Google Apps Script. Ingen ”riktig kodning”, men du måste koppla Google-credentials och ersätta webhook-URL:er.

Är n8n gratis att använda för det här Sheets Gmail CRM-flö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å ta hänsyn till Google Workspace-begränsningar om ditt konto är hårt låst.

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

Två alternativ: n8n Cloud (hanterat, 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 dig obegränsade körningar men kräver grundläggande serverhantering.

Hur anpassar jag den här Sheets Gmail CRM-lösningen till mina specifika utmaningar?

Du kan byta ut Gmail mot Slack genom att ersätta noderna ”Gmail Send Stage Update” och ”Send Cal Invite Email” med Slack-meddelandenoder. Vanliga justeringar är att lägga till en gren för ”Stage = Lost” i stage-check-logiken, ändra mejltexten i steget ”Assemble Email Fields” och lägga till en dubblettkontroll före ”Append Won Client Row” så att du inte skapar två klientposter för samma e-postadress.

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

Oftast är det en utgången OAuth-auktorisering i n8n. Koppla om din Google Sheets-credential och bekräfta sedan att flödet pekar på rätt dokument-ID och flik-GID:er, eftersom fel gid kan se ut som ett ”anslutnings”-problem när det egentligen är fel mål.

Vilken kapacitet har den här Sheets Gmail CRM-lösningen?

För de flesta små team är det i praktiken ”så många arkändringar som ni gör”. Med n8n Cloud Starter kan du köra tusentals körningar per månad, och varje statusändring eller kvalificering kan vara en körning. Om du kör egen drift finns inget tak för antal körningar, men Google Sheets och Gmail har fortfarande API-kvoter, så toppar av ändringar kan strypas. Om du förväntar dig många uppdateringar samtidigt (import av hundratals rader), kör i batchar och testa under lågtrafik. För dagliga pipeline-uppdateringar fungerar det oftast utan problem.

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

Ofta, ja. Den här setupen bygger på förgreningslogik (Qualified vs Awaiting Proposal vs Won vs Delivered), och n8n hanterar det utan att varje ”if” blir ett extra betalt steg. Du får också möjligheten att köra egen drift, vilket spelar roll när din pipeline växer och du vill undvika prischocker. Zapier och Make kan fortfarande vara enklare om du bara behöver en trigger och ett mejl. Om du är osäker, prata med en automationsexpert så hjälper vi dig att välja rätt upplägg.

Ditt ark förblir enkelt, men börjar bete sig som ett riktigt system. Sätt upp detta en gång och låt sedan uppföljningar, klientloggning och leveransspårning rulla i bakgrunden.

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