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 till Gmail och WhatsApp: inga dubbletter

Rickard Andersson Partner, Nodenordic.se

Massutskick faller isär så fort du börjar ”bara skicka några meddelanden” från ett kalkylark. Ett dåligt filter, en oavsiktlig omkörning, och du har dubbelkontaktat leads, förvirrat prospekt och tappat koll på vad som faktiskt skickades.

Det här är den typen av problem som marknadschefer stöter på först. Men byråägare och grundare med operationsfokus känner av det också. En stabil sheets outreach automation ger dig ett strukturerat system: skicka i bulk, hoppa över dubbletter och logga varje resultat utan att behöva sitta och vakta processen.

Det här arbetsflödet använder Google Sheets som kontrollcenter, skickar Gmail och WhatsApp oberoende av varandra och skriver sedan tillbaka statusarna ”skickat” och ”misslyckat” så att du kan försöka igen på ett säkert sätt och behålla ordningen.

Så fungerar den här automatiseringen

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

n8n Workflow Template: Google Sheets till Gmail och WhatsApp: inga dubbletter

Problemet: massutskick skapar dubbletter och gissningsarbete

De flesta kalkylarksbaserade utskick börjar med goda intentioner: ”Vi håller koll på allt på ett ställe.” Sedan kommer verkligheten. Någon sorterar en kolumn, en annan kopierar rader till en ny flik och dina statusceller slutar matcha det som faktiskt skickades. Gmail skickar, men du vet inte vem som fick det. WhatsApp misslyckas, men teamet kan inte avgöra om det misslyckades eller om det helt enkelt aldrig kördes. En vecka senare ”försöker ni igen”, och personer som redan fått ditt meddelande får det en gång till. Ärligt talat är det så varumärken blir tystade.

Friktionen växer. Här är var det brukar haverera.

  • Att köra om en massutskickning utan kanalspecifika kontroller leder till oavsiktliga dubbletter, vilket är snabbaste sättet att bränna en lista.
  • Statusspårningen glider när leveransresultat ligger i inkorgar istället för tillbaka i arket där teamet faktiskt jobbar.
  • Genomströmningen blir rörig eftersom för snabb sändning kan trigga rate limits, medan för långsam sändning gör ”dagens kampanj” till nästa veckas problem.
  • När e-post och WhatsApp är ihopkopplade kan ett enda saknat fält (som ett telefonnummer) spåra ur hela körningen istället för att bara hoppa över den kanalen.

Lösningen: skicka Gmail + WhatsApp från Sheets, säkert

Det här arbetsflödet gör ditt Google Sheet till en kontrollerad sändningskö. Du startar det manuellt, n8n hämtar dina kontakter och bearbetar dem i små batchar så att du inte överbelastar Gmail eller WhatsApp. För varje kontakt kontrollerar det grunderna (e-post finns, telefon finns) och sedan något ännu viktigare: kanalstatus. Om e-poststatus fortfarande är ”pending” bygger det mejlet från en mall, sätter ihop slutlig HTML, hämtar vid behov en bild från Google Drive och skickar via Gmail. Separat, om WhatsApp är ”pending”, skickar det ett godkänt mallmeddelande. Varje lyckat eller misslyckat försök skrivs tillbaka till Google Sheets, så att arket förblir korrekt och omkörningar inte skapar dubbletter.

Arbetsflödet börjar med en manuell trigger, hämtar rader från Google Sheets och delar upp dem i hanterbara batchar. Sedan kör det två oberoende leveransspår (Gmail och WhatsApp) baserat på varje rads fält och ”pending”-flaggor. Till sist uppdaterar det ditt ark med skickat/misslyckat så att du tryggt kan köra arbetsflödet igen när du behöver.

Det du får: automatisering vs. resultat

Exempel: så här ser det ut

Säg att du har 200 kontakter i ett Google Sheet och vill nå var och en i två kanaler. Manuellt är till och med en ”snabb” process kanske 1 minut för att skicka ett mejl, sedan ytterligare en minut för att skicka ett WhatsApp-meddelande, plus tid för att markera statusar, så du landar på ungefär 6–7 timmar fokuserat arbete. Med den här automatiseringen startar du körningen en gång (cirka 5 minuter), n8n batchar utskicken i bakgrunden och ditt ark uppdaterar sig självt med skickat/misslyckat. Du följer fortfarande upp som en människa, men du slutar göra det administrativa arbetet.

Det här behöver du

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
  • Google Sheets för att lagra kontakter och statusar.
  • Gmail för att skicka massmejl från ditt konto.
  • WhatsApp (leverantör för mallmeddelanden) för att skicka godkända mallmeddelanden.
  • InboxPlus för att ladda och rendera din e-postmall.
  • Google Drive för att hämta bilder som används i mejl.

Kunskapsnivå: Medel. Du kopplar konton, mappar kolumner i arket till fält och bekräftar din statuslogik för ”pending/sent/failed”.

Vill du inte sätta upp det här själv? Prata med en automatiseringsexpert (gratis 15-minuters konsultation).

Så fungerar det

Du startar körningen med avsikt. Arbetsflödet använder en manuell trigger, vilket passar bra för outreach eftersom du vanligtvis vill ha ett medvetet ”kör”-ögonblick (inte en alltid-på-robot).

Kontakter hämtas från Google Sheets och skickas i lagom takt. n8n läser dina rader och delar sedan upp dem i batchar så att sändningen sker i små, förutsägbara portioner istället för en enda topp som kan orsaka rate limiting.

E-post och WhatsApp hanteras som separata spår. Om en kontakt har en e-postadress och e-poststatus fortfarande är pending, laddar arbetsflödet din InboxPlus-mall, sätter ihop slutlig HTML, laddar vid behov ner en bild från Google Drive och skickar via Gmail. Om en kontakt har ett telefonnummer och WhatsApp är pending skickar det det förgodkända WhatsApp-mallmeddelandet.

Allt skrivs tillbaka till arket. Lyckade utskick uppdaterar dina ”status”-kolumner, och misslyckanden loggas också, så att du bara kan försöka igen med det som misslyckades och undvika att skicka om det som redan fungerade.

Du kan enkelt ändra statusnamn och routningsregler så att de matchar teamets arbetssätt. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementering

Steg 1: Konfigurera den manuella triggern

Det här arbetsflödet startas manuellt så att ni kan testa utskicksbatcher vid behov.

  1. Lägg till noden Manual Start som trigger.
  2. Klicka på Execute Workflow senare för att köra utskicksflödet.

Steg 2: Anslut Google Sheets

Hämta kontaktdata och uppdatera utskicksstatus i Google Sheets.

  1. Öppna Retrieve Contacts och välj er Google Sheets-fil och flik. Ställ in documentId till [YOUR_ID] och sheetName till [YOUR_ID].
  2. Autentisering krävs: Anslut era googleSheetsOAuth2Api-uppgifter i Retrieve Contacts.
  3. I Update Status Sheet, ställ in operation till update och mappa Phone Number till {{ $('Retrieve Contacts').item.json['Phone Number'] }}.
  4. Autentisering krävs: Anslut era googleSheetsOAuth2Api-uppgifter i Update Status Sheet.
  5. För felloggning, konfigurera Log WhatsApp Failure och Log Email Failure med operation satt till update och mappa Phone Number till {{$json['Phone Number']}}.
  6. Autentisering krävs: Anslut era googleSheetsOAuth2Api-uppgifter i Log WhatsApp Failure och Log Email Failure.

Använd konsekventa kolumnnamn mellan flikar så att matchingColumns kan matcha Phone Number korrekt.

Steg 3: Konfigurera batchning och parallell validering

Dela upp kontakter i batcher och validera telefon/e-post parallellt innan ni skickar.

  1. I Batch Divider, ställ in batchSize till 3.
  2. Konfigurera Validate Phone Present med ett notEmpty-villkor på {{ $json['Phone Number'] }}.
  3. Konfigurera Validate Email Present med ett notEmpty-villkor på {{ $('Batch Divider').item.json.Email }}.
  4. Batch Divider skickar utdata till både Validate Phone Present och Validate Email Present parallellt.

⚠️ Vanlig fallgrop: Om Validate Email Present läser från fel nod kommer e-postkontroller att misslyckas utan tydlig indikation. Behåll uttrycket som {{ $('Batch Divider').item.json.Email }}.

Steg 4: Sätt upp WhatsApp-utskick och statusuppdateringar

Skicka WhatsApp-mallar endast när meddelandet är väntande och ett telefonnummer finns.

  1. I Check WhatsApp Pending, ställ in villkoret till att {{ $json['Message Sent'] }} är lika med Pending.
  2. Konfigurera Dispatch WhatsApp Template med template satt till hello_world|en_US, phoneNumberId till [YOUR_ID] och recipientPhoneNumber till {{ String($json['Phone Number']) }}.
  3. Autentisering krävs: Anslut era whatsAppApi-uppgifter i Dispatch WhatsApp Template.
  4. I Confirm WhatsApp Sent, kontrollera om {{ $json.messages[0].message_status }} är lika med accepted. True-vägen uppdaterar Update Status Sheet, och false-vägen loggar till Log WhatsApp Failure.

Steg 5: Sätt upp skapande av e-post, tillgångar och leverans

Skapa ett personligt HTML-mejl, bifoga tillgångar och verifiera att leveransen lyckas.

  1. I Check Email Pending, ställ in villkoret till att {{ $json['Mail Sent'] }} är lika med Pending.
  2. Konfigurera Compose InboxPlus Email med templateId satt till [YOUR_ID] och recipientEmail till {{ $json.Email }}.
  3. Autentisering krävs: Anslut era inboxPlusApi-uppgifter i Compose InboxPlus Email.
  4. I Assemble HTML Body, ställ in gmailBodyHtml till den angivna HTML-koden och behåll personaliseringstoken {{ $('Retrieve Contacts').item.json.Name }}.
  5. Konfigurera Download Email Image med operation satt till download och fileId satt till [YOUR_ID].
  6. Autentisering krävs: Anslut era googleDriveOAuth2Api-uppgifter i Download Email Image.
  7. I Send Gmail Notice, ställ in sendTo till {{ $('Retrieve Contacts').item.json.Email }}, subject till {{ $('Compose InboxPlus Email').item.json.subject }} och message till {{ $json.gmailBodyHtml }}.
  8. Autentisering krävs: Anslut era gmailOAuth2-uppgifter i Send Gmail Notice.
  9. I Verify Email Delivered, kontrollera om {{ $json.labelIds }} innehåller SENT. True-vägen uppdaterar Update Status Sheet, och false-vägen loggar till Log Email Failure.

Om ert Gmail-meddelande innehåller bilagor, säkerställ att den binära bilageutdatan från Download Email Image är korrekt mappad i Send Gmail Notice.

Steg 6: Testa och aktivera ert arbetsflöde

Verifiera flödet från start till mål innan ni aktiverar körning i produktion.

  1. Klicka på Execute WorkflowManual Start för att köra en testbatch.
  2. Bekräfta att Update Status Sheet uppdaterar kontaktens fält Mail Sent och Message Sent till Sent.
  3. Verifiera e-postleverans genom att kontrollera villkoret i Verify Email Delivered och WhatsApp-leverans via Confirm WhatsApp Sent.
  4. Om fel uppstår, kontrollera att Log WhatsApp Failure och Log Email Failure uppdaterar arket.
  5. Slå om arbetsflödet till Active när testerna passerar.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Behörigheter i Google Sheets kan blockera uppdateringar även när läsning fungerar. Om statusar inte skrivs tillbaka, kontrollera först åtkomst för det anslutna Google-kontot och delningsinställningarna för det specifika arket.
  • Om du använder Wait-noder eller extern rendering varierar bearbetningstiderna. Öka väntetiden om efterföljande noder fallerar på grund av tomma svar.
  • Gmail kan strypa massutskick tyst. Om leveranskontroller börjar slå om till misslyckanden, gå igenom dina Gmail-sändningsgränser och minska batchstorleken innan du antar att arbetsflödet är trasigt.

Vanliga frågor

Hur lång tid tar det att sätta upp den här sheets outreach automation-automatiseringen?

Cirka 45 minuter om ditt Sheet och dina mallar är klara.

Behöver jag kunna koda för att automatisera sheets outreach automation?

Nej. Du mappar främst fält och justerar några villkor. Den enda ”tekniska” delen är att vara noggrann med värdena i dina statuskolumner.

Är n8n gratis att använda för det här sheets outreach automation-arbetsflödet?

Ja. n8n har ett gratis alternativ för egen hosting 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 leverantören av WhatsApp-mallmeddelanden (ofta debiterat per konversation) och eventuell betald e-postmallstjänst du väljer.

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

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

Kan jag anpassa det här sheets outreach automation-arbetsflödet för andra statusar och mallar?

Ja, och det bör du. De flesta team anpassar värdena ”pending/sent/failed” i Google Sheets-kontrollerna, byter sedan e-postmallen i InboxPlus-mallnoden och WhatsApp-mallen i WhatsApp-sändnoden. Du kan också lägga till en enkel regel som ”skicka bara om last_contacted är äldre än 14 dagar” för extra säkerhet. Håll kanalerna oberoende så att ett saknat telefonnummer inte blockerar e-post.

Varför misslyckas min Gmail-anslutning i det här arbetsflödet?

Oftast är det utgången Google-autentisering eller att fel Gmail-konto är anslutet i n8n. Anslut Gmail-uppgifterna igen och dubbelkolla sedan ”från”-inkorgen och eventuella nödvändiga scopes. Om du skickar mycket på en gång kan Gmail-gränser också orsaka tillfälliga fel, så minska batchstorleken och försök igen bara med raderna som är markerade som misslyckade.

Hur många kontakter kan den här sheets outreach automation hantera?

Några tusen kontakter per körning är realistiskt för de flesta små team, så länge du håller batchstorlekarna konservativa och respekterar rate limits för Gmail/WhatsApp.

Är den här sheets outreach automation-automatiseringen bättre än att använda Zapier eller Make?

Ofta ja, eftersom delen med ”inga dubbletter” beror på villkorslogik, förgreningar och att statusar skrivs tillbaka pålitligt. n8n gör den typen av kontroll enkel, och egen hosting undviker prissättning per uppgift när du skalar. Zapier eller Make kan funka för enkla tvåstegsskick, men de blir klumpiga när du behöver batchning plus säkra omförsök. En sak till: sändning av WhatsApp-mallar är känslig för hur leverantörer implementerar det, så du vill ha ett arbetsflöde du kan justera utan att bygga om allt. Prata med en automatiseringsexpert om du vill ha hjälp att välja enklaste vägen för din volym.

När ditt Sheet blir systemet som gäller slutar outreach kännas skört. Sätt upp det, kör när du är redo och låt arbetsflödet ta hand om det repetitiva spårningsarbetet.

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

Launch login modal Launch register modal