Din leadlista fortsätter att växa, men din tid för att ”skriva personligt mejl” gör det inte. Så du skjuter upp. Du copy-pastar, skriver om samma intro 20 gånger och tvekar ändå på tonen innan du trycker på skicka.
Säljare känner det först. En marknadschef som kör outbound-kampanjer känner det också. Och driver du en liten byrå jonglerar du det här troligen för flera kunder. Den här automatiseringen för Gemini email drafts gör nya rader i Google Sheets till cold email-utkast som är redo att granskas.
Nedan ser du hur flödet fungerar, vad du får ut av det och vad du ska se upp med när du anpassar det till ditt erbjudande och din röst.
Så fungerar den här automatiseringen
Hela n8n-workflowen, från trigger till slutligt resultat:
n8n Workflow Template: Google Sheets + Google Gemini: kalla mejl utkast
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:database", form: "rounded", label: "Read Leads from Sheet", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Prepare Data for Sheet", pos: "b", h: 48 }
n2@{ icon: "mdi:database", form: "rounded", label: "Update Sheet with Email", pos: "b", h: 48 }
n3@{ icon: "mdi:robot", form: "rounded", label: "Basic LLM Chain", pos: "b", h: 48 }
n4@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model", pos: "b", h: 48 }
n5@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n6@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n7@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If", pos: "b", h: 48 }
n7 --> n3
n3 --> n1
n6 --> n0
n0 --> n7
n1 --> n2
n4 -.-> n3
n5 -.-> n3
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 n6 trigger
class n3,n5 ai
class n4 aiModel
class n7 decision
class n0,n2 database
Problemet: cold emails skalar inte när personalisering görs manuellt
Personlig outbound låter enkelt tills du sitter med 80 leads och en tom sida. Du försöker ”bara skriva snabbare”, men den stora bromsklossen är kontextbytena. Kolla upp företaget, skumma LinkedIn-anteckningar, hitta en vinkel, skriva en ämnesrad och sedan göra om allt för nästa rad. Och eftersom det är repetitivt smyger misstagen in: fel företagsnamn, generiskt fluff eller en ton som inte matchar varumärket. Det värsta är alternativkostnaden. Tid du lägger på att skriva utkast är tid du inte följer upp, bygger listor eller förbättrar erbjudandet.
Det blir mycket snabbt. Här är var det oftast fallerar.
- Att skriva ens ”lätt personaliserade” mejl för 50 leads kan äta upp en hel förmiddag.
- Teamet slutar med mallar som ser ut som mallar, vilket ger färre svar.
- Kvalitetskontrollen blir ojämn eftersom alla har sin egen stil och sina egna genvägar.
- Leads blir liggande orörda i Google Sheets eftersom ingen vill börja från noll.
Lösningen: Google Sheets till Google Gemini-utkast, skrivs tillbaka till samma rad
Det här flödet körs enligt ett schema du väljer, öppnar ditt Google Sheet och hämtar prospekten du lagt in (namn, företag, roll, bransch, anteckningar, smärtpunkter). Sedan gör det en enkel kontroll: har ett mejl redan genererats för den här raden? Om ja, hoppar det över. Om nej, skickar det leadets kontext till en Google Gemini-prompt som är utformad för din produkt och ton. Gemini returnerar ett strukturerat svar (ämnesrad + brödtext), så resultatet blir förutsägbart i stället för rörigt. Till sist skriver n8n tillbaka ämnesrad och mejltext i rätt rad i kalkylarket, så du får utkast som är redo att granskas och skickas.
Flödet startar med en schemalagd trigger, läser arket och filtrerar fram bara ”nya” leads. Gemini skriver utkastet utifrån din prompt och n8n mappar svaret till de kolumner du valt innan arket uppdateras. Ingen jakt på text i loggar. Allt hamnar där teamet redan jobbar.
Vad du får: automatisering vs. resultat
| Vad den här workflowen automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut i praktiken
Säg att du lägger till 40 nya leads i Google Sheets varje vecka. Om en säljare lägger cirka 8 minuter per lead på att göra lätt research och skriva ett första utkast, är det ungefär 5 timmar innan du ens börjar skicka. Med den här automatiseringen kanske du lägger 10 minuter på att vässa din Gemini-prompt, och sedan genererar den schemalagda körningen utkasten i bakgrunden och fyller dina kolumner ”GeneratedSubject” och ”GeneratedEmail”. Din ”skrivtid” blir granskningstid, så du kan skanna, justera och skicka i ett svep.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- Google Sheets för din leadlista och utdata-kolumner.
- Google Gemini för att generera ämnesrad och mejltext.
- Gemini API-nyckel (hämta den i Google AI Studio).
Nivå: Nybörjare. Du kopplar konton, matchar kolumnnamn och justerar en huvudprompt.
Vill du inte sätta upp detta själv? Prata med en automationsspecialist (gratis 15-minuters konsultation).
Så fungerar det
Ett schema drar igång allt. Flödet körs dagligen (eller så som du ställer in det) så att dina utkast dyker upp konsekvent, utan att någon behöver komma ihåg att ”gå och generera mejl”.
Ditt Google Sheet läses in och normaliseras. n8n hämtar raderna från kalkylarket och mappar fälten till en korrekt formaterad struktur så att AI-prompten alltid får samma indata, även om arket har extra kolumner.
Bara nya leads går vidare. En ”If”-regel kontrollerar din utdata-kolumn (till exempel ”GeneratedEmail”). Om den är tom går leadet vidare. Om den redan är ifylld hoppar flödet över. Ärligt talat: den här enda kontrollen förhindrar de flesta oavsiktliga omkörningar.
Gemini skriver och arket uppdateras. Gemini-chatmodellen genererar en ämnesrad och en brödtext, den strukturerade parsern håller svaret prydligt (subject/body i JSON) och n8n skriver tillbaka värdena i rätt rad så att teamet kan granska direkt i arket.
Du kan enkelt ändra prompten och utdata-kolumnerna så att de matchar ditt erbjudande och ditt arbetssätt. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera den tidsstyrda schematriggern
Ställ in schemat som startar workflowet för att hämta nya leads och generera outreach-mejl.
- Lägg till och öppna Timed Schedule Trigger.
- Ställ in intervallregeln så att den körs var 30:e minut genom att konfigurera Interval med Field satt till
minutesoch Minutes Interval satt till30.
Steg 2: Anslut Google Sheets
Hämta leaddata från ert kalkylark och förbered er på att skriva tillbaka genererade mejl till samma ark.
- Öppna Fetch Sheet Leads och välj ert Google-kalkylark i Document med
[YOUR_ID]och ert arbetsblad i Sheet Name medYour_Sheet_GID. - Inloggningsuppgifter krävs: Anslut era
googleSheetsOAuth2Api-inloggningsuppgifter i Fetch Sheet Leads. - Öppna Write Email to Sheet och bekräfta att den pekar på samma Document
[YOUR_ID]och Sheet NameYour_Sheet_GID. - Ställ in Operation till
updatei Write Email to Sheet. - Inloggningsuppgifter krävs: Anslut era
googleSheetsOAuth2Api-inloggningsuppgifter i Write Email to Sheet.
Steg 3: Sätt upp kedjan för att ta fram mejlutkast
Konfigurera AI-prompten, språkmodellen och output-parsern för att generera strukturerade ämnesrader och mejltexter.
- Öppna Email Drafting Chain och ställ in Prompt Type till
define. - Klistra in hela prompten i Text (inkludera de dynamiska lead-fälten som
{{ $('Fetch Sheet Leads').item.json.Name }},{{ $('Fetch Sheet Leads').item.json.Company }}och{{ $('Fetch Sheet Leads').item.json.Title }}). - Säkerställ att Has Output Parser är aktiverat på Email Drafting Chain så att den strukturerade parsern används.
- Öppna Gemini Chat Engine och ställ in Model Name till
models/gemini-2.5-flash. - Inloggningsuppgifter krävs: Anslut era
googlePalmApi-inloggningsuppgifter i Gemini Chat Engine. - Öppna Structured Response Parser och bekräfta att JSON Schema Example matchar de två nycklarna
subjectochemail_body. - Notera: Structured Response Parser är en AI-undernod—inloggningsuppgifter läggs till på den överordnade Email Drafting Chain via Gemini Chat Engine, inte på själva parsern.
Steg 4: Konfigurera routing och fältmappning
Routa bara rader som inte redan har ett mejl, mappa sedan AI-utdata till fält och skriv tillbaka till arket.
- Öppna Conditional Gate och ställ in två villkor för att kontrollera tomhet: Left Value
{{ $json.email_body }}med Operationempty, och Left Value{{ $json.subject }}med Operationempty. - Bekräfta körflödet: Timed Schedule Trigger → Fetch Sheet Leads → Conditional Gate → Email Drafting Chain → Map Sheet Fields → Write Email to Sheet.
- I Map Sheet Fields, ställ in updated_email till
{{ $input.item.json.text }}. - I Write Email to Sheet, mappa kolumnerna enligt följande: Email till
{{ $('Fetch Sheet Leads').item.json.Email }}, subject till{{ $json.output.subject }}och email_body till{{ $json.output.email_body }}.
subject eller email_body kommer Conditional Gate att blockera mejlgenereringen eftersom den bara släpper igenom tomma fält.Steg 5: Testa och aktivera ert workflow
Kör ett manuellt test för att verifiera lead-urval, AI-utdata och uppdateringar i arket, och aktivera sedan schemat.
- Klicka på Execute Workflow för att köra ett manuellt test från Timed Schedule Trigger.
- Bekräfta att Fetch Sheet Leads returnerar rader med tomma
subjectochemail_body. - Verifiera att Email Drafting Chain returnerar ett JSON-objekt med
subjectochemail_bodyoch att Write Email to Sheet uppdaterar rätt rad baserat påEmail. - När testet ser korrekt ut, slå på workflowet Active för att aktivera 30-minutersschemat.
Vanliga fallgropar
- Behörigheter i Google Sheets kan vara knepiga om arket ägs av ett annat konto. Om uppdateringar misslyckas: kontrollera autentiseringsuppgiften i n8n och bekräfta att kalkylarket är delat med den Google-användare som är ansluten.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
- Google Geminis output beror starkt på din prompt och dina variabler. Om utkasten känns generiska, vässa prompten och säkerställ att dina kolumnnamn matchar exakt (FirstName vs First Name kan ge tyst ”saknad kontext”).
Vanliga frågor
Cirka 30 minuter om ditt ark är klart och du har en Gemini API-nyckel.
Nej. Du kopplar främst Google-autentisering och redigerar prompttexten. Den enda ”tekniska” delen är att matcha kolumnnamnen i Google Sheets med variablerna som används i flödet.
Ja. n8n har ett gratis alternativ för egen drift och en gratis provperiod på n8n Cloud. Molnplaner börjar på 20 USD/månad för högre volym. Du behöver också räkna in användningen av Google Gemini API, vilket beror på hur långa dina prompts och utkast är.
Två alternativ: n8n Cloud (hanterat, enklast att sätta upp) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärt och hanterar n8n bra. Egen drift ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det bör du. Uppdatera prompten i Email Drafting Chain så att den inkluderar ditt erbjudande, dina regler (längd, stil, CTA) och några exempel på ”bra” mejl i din röst. Vanliga anpassningar är att lägga till en kolumn ”PainPoint”, stoppa in en specifik call to action och generera två förslag på ämnesrader i stället för en.
Oftast är det fel Google-konto eller saknad åtkomst till kalkylarket. Återanslut Google Sheets-autentiseringen i n8n och bekräfta sedan att arket är delat med samma konto. Kontrollera också att flödet pekar på rätt kalkylark och flik, eftersom kopiering av ett ark ofta ändrar ID:n i bakgrunden.
På n8n Cloud Starter kan du vanligtvis köra tusentals körningar per månad, och vid egen drift finns ingen gräns för antal körningar (det beror främst på din server). I praktiken är flaskhalsen Gemini-anropens hastighet och API-begränsningar, så stora listor behandlas bäst enligt schema eller i batcher. Om du genererar utkast för några hundra leads i veckan är det normalt sett inga problem. Om du gör tiotusentals vill du ha throttling och noggrann prompt-dimensionering.
Ofta, ja, eftersom n8n hanterar mer komplex logik utan att varje förgrening blir en extra kostnadspost. Du får också ett alternativ för egen drift, vilket är användbart när du bearbetar många rader enligt schema. Zapier eller Make kan fortfarande passa bra för väldigt enkla upplägg som ”ny rad → generera text → uppdatera rad”, särskilt om teamet redan använder dem. Men när du lägger till strukturerade outputs, filtrering, retries och prompting för varumärkesröst, brukar n8n förbli mer överskådligt. Om du är osäker: prata med en automationsspecialist och få en snabb rekommendation.
När detta är live slutar ditt Google Sheet att vara en kyrkogård av ”leads att mejla någon gång”. Det blir en jämn ström av utkast som du kan granska och skicka.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.