Du skickar ett välskrivet mejl. Sen … ingenting. Inget svar, ingen aning om det ignorerades, försvann i inboxen eller öppnades tre gånger och skickades vidare.
Det här är den typen av röra som säljare känner av varje dag. marknadsförare som jobbar med outreach och byråägare som rapporterar kampanjengagemang känner det också. Med spårning av mejlöppningar slutar du gissa och börjar prioritera uppföljningar baserat på faktiska öppningar.
Den här guiden visar ett enkelt n8n-flöde som serverar en 1×1-spårningspixel, fångar ett valfritt mottagar-ID och förbereder dig för att logga öppningar i Google Sheets för strukturerad rapportering.
Så fungerar den här automatiseringen
Här är hela flödet du kommer att sätta upp:
n8n Workflow Template: Gmail till Google Sheets, spåra e-postöppningar
flowchart LR
subgraph sg0["Flow 1"]
direction LR
n0@{ icon: "mdi:swap-vertical", form: "rounded", label: "Generate Pixel Data", pos: "b", h: 48 }
n1@{ icon: "mdi:cog", form: "rounded", label: "Convert Image Binary", pos: "b", h: 48 }
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>Return Webhook Reply"]
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>Incoming Image Hook"]
n4@{ icon: "mdi:cog", form: "rounded", label: "Log Placeholder Step", pos: "b", h: 48 }
n3 --> n0
n1 --> n2
n1 --> n4
n0 --> n1
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 n2,n3 api
classDef customIcon fill:none,stroke:none
class n2,n3 customIcon
Varför det här spelar roll: följ upp utan att gissa
De flesta uppföljningsbeslut tas på svaga signaler. ”Inget svar” kan betyda en kall lead, en upptagen lead eller en intresserad lead som helt enkelt glömde. Och när du kör ens en liten kampanj sprider sig den osäkerheten snabbt: du slösar tid på att puffa personer som aldrig såg mejlet, samtidigt som varma leads svalnar för att du inte svarade snabbt. Ärligt talat handlar det inte bara om nyfikenhet. Det handlar om tajming, prioritering och att ha ett tydligt engagemangsspår du kan lita på när någon frågar: ”Öppnade någon ens det här?”
Friktionen byggs på. Här är var det oftast fallerar.
- Du gör manuell triage för uppföljning utifrån minnet, vilket gör att bra leads faller mellan stolarna.
- Rapportering blir luddig eftersom du inte kan koppla ”öppningar” till specifika mottagare eller sändlistor.
- Inbox-verktyg hjälper inte mycket när du behöver en enkel logg som hela teamet kan se på ett ställe.
- Även när du spårar öppningar hamnar datan ofta någonstans som är frikopplat från ditt outreach-flöde.
Det du bygger: en spårningspixel som loggar öppningar
Det här flödet ger dig ett lättviktigt och praktiskt sätt att spåra mejlöppningar genom att servera en transparent 1×1 PNG från din n8n-instans. Du bäddar in bilden i ett HTML-mejl, och när mottagarens e-postklient laddar bilder begär den pixel-URL:en. Den begäran triggar n8n-webhooken. Därifrån kan flödet fånga en query-parameter som ?id=1234 för att identifiera vem som öppnade mejlet, generera pixelbilden i realtid och svara direkt med bilden så att mejlet ser normalt ut. Till sist använder du loggningssteget för att spara ”öppna”-händelser någonstans nyttigt, som Google Sheets.
Det börjar med en Incoming Image Hook (en webhook-URL du placerar i mejlet). Sedan genererar n8n en minimal PNG från Base64, konverterar den till en korrekt binär bild och svarar e-postklienten. I samma körning skickar den också vidare mottagar-ID:t (och annan metadata från begäran om du vill) till ett loggningssteg för ditt kalkylark.
Det du bygger
| Det som automatiseras | Det du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du skickar 50 utgående mejl per dag och gör två uppföljningsrundor. Utan öppningsdata lägger du troligen runt 2 timmar på att gå igenom trådar, gissa vem du ska puffa och ”kolla en gång till” innan du skickar. Med det här flödet loggas öppningar automatiskt i samma ögonblick som pixeln laddas, och din uppföljningslista blir ett snabbt filter i Google Sheets. Även om bara en del av listan laddar bilder får du ändå ett pålitligt segment med ”de här personerna öppnade definitivt”, vilket ofta räcker för att ändra hur du prioriterar dagen.
Innan du börjar
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- Gmail för att skicka HTML-mejl med en inbäddad bild.
- Google Sheets för att lagra och granska öppningshändelser.
- En publik n8n-webhook-URL (från inställningarna i din n8n-instans)
Svårighetsgrad: nybörjare. Du klistrar in en bildtagg i en mejlmall och kopplar en loggningsdestination.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
När ett mejl öppnas triggas en pixelbegäran. Du bäddar in en minimal bild i mejlet som pekar på din n8n-webhook-URL. När mottagaren öppnar meddelandet och klienten laddar bilder, triggas webhooken.
n8n genererar pixelbilden på beställning. Flödet skapar Base64-data för en transparent 1×1 PNG och konverterar den sedan till en korrekt binär fil med rätt image/png-MIME-typ.
Flödet fångar ID:t du skickar in. Om din bild-URL innehåller något som ?id=1234 tar webhooken emot det, vilket gör att du kan koppla öppningen till en lead, kontakt eller en rad i Google Sheets.
E-postklienten får ett normalt bildsvar. n8n svarar på webhooken med den binära PNG:en så att mejlet renderas som vilket annat meddelande som helst. Tyst och snabbt.
Du kan enkelt justera vad du fångar (ID, tidsstämpel, kampanjtagg) och var du lagrar det (Google Sheets, en databas eller till och med Slack). Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera webhook-triggern
Konfigurera den inkommande webhooken som tar emot anrop och skickar data in i arbetsflödet.
- Lägg till noden Incoming Image Hook som din trigger.
- Ställ in Path på
[YOUR_ID]. - Ställ in Response Mode på
responseNodeså att svaret hanteras av Return Webhook Reply.
[YOUR_ID] måste ersättas med en unik path innan ni testar, annars fungerar webhook-URL:en inte som förväntat.Steg 2: koppla in generering av pixeldata
Skapa base64-pixellasten som ska konverteras till en bildfil.
- Lägg till noden Generate Pixel Data efter Incoming Image Hook.
- I Assignments lägger ni till ett fält med namnet data och typen
string. - Ställ in värdet för data till base64-strängen som visas i nodens konfiguration.
Steg 3: konfigurera bildkonvertering
Konvertera base64-pixellasten till en binär bildfil.
- Lägg till noden Convert Image Binary och koppla den från Generate Pixel Data.
- Ställ in Operation på
toBinary. - Ställ in Source Property på
data. - Ställ in Binary Property Name på
pixel. - I Options ställer ni in Mime Type på
image/png.
Steg 4: konfigurera utdata-/aktionsnoder
Returnera den genererade bilden i webhook-svaret och logga en platshållargren.
- Lägg till noden Return Webhook Reply och koppla den från Convert Image Binary.
- Ställ in Respond With på
binaryså att bilden returneras till anroparen. - Lägg till noden Log Placeholder Step och koppla även den från Convert Image Binary.
Convert Image Binary skickar utdata till både Return Webhook Reply och Log Placeholder Step parallellt.
Steg 5: testa och aktivera ert arbetsflöde
Verifiera att webhooken returnerar bilden korrekt och aktivera den sedan för användning i produktion.
- Klicka på Execute Workflow och kopiera test-webhook-URL:en från Incoming Image Hook.
- Skicka en förfrågan till test-URL:en och bekräfta att svaret returnerar en binär
image/png-fil. - Verifiera att både Return Webhook Reply och Log Placeholder Step visar lyckad körning i körhistoriken.
- Växla arbetsflödet till Active för att aktivera webhook-URL:en för produktion.
Felsökningstips
- Google Sheets-inloggningar kan löpa ut eller kräva specifika behörigheter. Om det skapar fel: kontrollera först det anslutna Google-kontot och delningsinställningarna för arket.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder misslyckas på grund av tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in din varumärkesröst tidigt, annars kommer du att redigera output i all evighet.
Snabba svar
Cirka 30 minuter när din n8n-URL är nåbar från internet.
Nej. Du klistrar in en pixel-URL i ett HTML-mejl och konfigurerar var öppningshändelsen ska loggas.
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 volymer. Du behöver också räkna in användning av Google Sheets (oftast gratis) och det e-postverktyg du använder för att skicka HTML.
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 obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det bör du sannolikt göra. Du kan skicka olika query-parametrar (som leadId, campaign eller messageId) i webhook-URL:en och sedan läsa dem i webhook-datan (till exempel från $json.query) innan du loggar. Steget ”Log Placeholder Step” är där du byter till Google Sheets, en databas eller en CRM-skrivning. Vanliga justeringar är att lägga till en tidsstämpelkolumn, fånga user agent-strängen och avduplicera upprepade öppningar för samma meddelande.
Oftast beror det på att webhook-URL:en inte är publikt nåbar eller att den har ändrats. Om du kör egen drift: verifiera att din domän, SSL och brandvägg tillåter inkommande förfrågningar till n8n och öppna sedan pixel-URL:en i en inkognitoflik för att testa. Kontrollera också att du bäddade in exakt webhook-sökväg från noden ”Incoming Image Hook”, inte en test-URL. Om e-postklienten blockerar bilder ser du ”inga öppningar” även om allt fungerar.
Mycket, eftersom det bara handlar om att servera en minimal bild och skriva en rad. På n8n Cloud Starter begränsas du av månatliga körningar, medan egen drift främst begränsas av din server. I praktiken kan de flesta små team köra detta hela dagen utan att tänka på det.
Oftast, ja. Zapier och Make är bra för app-till-app-triggers, men det här användningsfallet börjar med en webhook som måste returnera en faktisk bild, inte bara fånga data. n8n hanterar det snyggt eftersom du kan generera pixeln (Base64 till binärt) och svara i samma flödeskörning. Du får också mer kontroll över vad du sparar, hur du avduplicerar upprepningar och vart datan går utan att lägga till extra betalda steg. Om du bara behöver en enkel ”webhook till kalkylarksrad” och inte bryr dig om bildsvaret kan Zapier fungera, men då behöver du fortfarande någonstans att hosta pixeln. Prata med en automationsexpert om du vill ha hjälp att välja.
När det här väl rullar slutar ”öppnade de det?” att vara en diskussion. Du får en enkel signal, loggad på ett strukturerat sätt, och din uppföljning blir betydligt vassare.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.