Provträning ska kännas omedelbar. I stället jagar du fejkmejladresser, skickar “välkommen”-meddelanden manuellt och stressar för att bekräfta vem som faktiskt ska släppas in.
Det här drabbar gymägare först, om vi ska vara ärliga. Men en studiochef som sköter receptionen och en marknadsansvarig som försöker mäta konverteringar känner samma smärta. Automatisering med Gmail Sheets PDFs löser röran genom att skicka ett verifierat, varumärkesanpassat provpass på sekunder och logga varje registrering automatiskt.
Nedan ser du exakt vad workflowet gör, vilka resultat det ger och vad du behöver för att köra det stabilt.
Så fungerar den här automatiseringen
Hela n8n-workflowet, från trigger till slutresultat:
n8n Workflow Template: Gmail + Google Sheets för provpass-pdf:er direkt
flowchart LR
subgraph sg0["Flow 1"]
direction LR
n0["<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/>Webhook"]
n1@{ icon: "mdi:swap-horizontal", form: "rounded", label: "IF Email Valid", 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/>Send Error Response"]
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/code.svg' width='40' height='40' /></div><br/>Generate Pass Details"]
n4["<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/httprequest.dark.svg' width='40' height='40' /></div><br/>Generate QR Code"]
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Build HTML Pass", pos: "b", h: 48 }
n6@{ icon: "mdi:message-outline", form: "rounded", label: "Send Email with Pass", pos: "b", h: 48 }
n7@{ icon: "mdi:database", form: "rounded", label: "Log to Google Sheets", pos: "b", h: 48 }
n8["<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/>Send Success Response"]
n9@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Verifi Email", pos: "b", h: 48 }
n10@{ icon: "mdi:cog", form: "rounded", label: "HTML/CSS to Image", pos: "b", h: 48 }
n11@{ icon: "mdi:location-exit", form: "rounded", label: "HTML to PDF", pos: "b", h: 48 }
n12["<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/httprequest.dark.svg' width='40' height='40' /></div><br/>Digital Pass"]
n0 --> n9
n11 --> n12
n12 --> n6
n9 --> n1
n1 --> n3
n1 --> n2
n5 --> n10
n4 --> n5
n10 --> n11
n7 --> n8
n6 --> n7
n3 --> n4
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 n1,n9 decision
class n7 database
class n0,n2,n4,n8,n12 api
class n3 code
classDef customIcon fill:none,stroke:none
class n0,n2,n3,n4,n8,n12 customIcon
Problemet: provregistreringar skapar administrativt kaos
Någon fyller i ditt provformulär och förväntar sig ett pass direkt. Det som oftast händer är långsammare och stökigare: mejladressen är engångs, fotolänken är trasig, personalen hittar inte registreringen och personen dyker upp ändå och vill bli insläppt. Sedan slösar du tid på att leta i inkorgar, svara manuellt och försöka pussla ihop vad som hände utifrån halvfärdiga anteckningar. Det handlar inte bara om tid. Det handlar om trovärdighet i receptionen och tappat momentum när en lead med hög intent inte får den där “du är godkänd”-känslan direkt.
Friktionen byggs på. Här är var det fallerar.
- Du mejlar ut pass ett och ett, vilket gör en snabb registrering till ett dagligt måste.
- Engångs- eller fejkmejladresser blåser upp dina “leads” och försvinner sedan när du följer upp.
- Receptionen kan inte verifiera åtkomst snabbt, så incheckningen blir ett stelt fram-och-tillbaka.
- Spårning av registreringar finns utspritt, så uppföljningar missas och konverteringar blir otydliga.
Lösningen: verifierade provpass som PDF skickas direkt
Det här workflowet startar i samma ögonblick som någon skickar in ett formulär till en webhook. Det kontrollerar mejladressen mot VerifiEmail för att fånga engångsadresser och stoppar antingen med ett tydligt felmeddelande eller fortsätter med en verifierad registrering. För giltiga registreringar skapar det ett unikt pass-ID (formaterat som GYM-{timestamp}), genererar en skanningsbar QR-kod för incheckning och bygger en varumärkesanpassad passlayout som innehåller personens namn, foto och giltighetsdatum. Designen renderas till en strukturerad bild och konverteras till en mobilvänlig PDF. Slutligen skickar Gmail PDF:en som bilaga och Google Sheets loggar registreringen för spårning och uppföljning.
Workflowet börjar med en enkel payload (namn, mejl, foto-URL, startdatum, giltig till). Därefter verifierar det, genererar passtillgångarna, mejlar PDF:en och registrerar transaktionen så att du får en pålitlig källa till sanningen.
Det du får: automatisering vs. resultat
| Vad workflowet automatiserar | Resultaten du får |
|---|---|
|
|
Exempel: så här ser det ut i praktiken
Säg att du får 20 provregistreringar på en dag. Manuellt är det lätt att lägga cirka 10 minuter per person på att kontrollera mejlet, skapa något som ser ut som ett pass, bifoga det och kopiera in detaljer i ett kalkylark, alltså ungefär 3 timmar. Med det här workflowet blir personaltiden nära noll efter setup: webhooken triggar direkt, körningen tar cirka 10 sekunder och personen får PDF:en automatiskt. Det är flera timmar tillbaka under stressiga dagar, plus färre “Kan du skicka mitt pass igen?”-meddelanden.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Gmail för att skicka mejlet med PDF-passet.
- Google Sheets för att logga registreringar och verifieringsstatus.
- VerifiEmail API-nyckel (hämta den i verifi.email-dashboarden).
- HTMLCSSToImage-uppgifter (hämta dem från htmlcsstoimg.com).
- HTMLCSSToPDF-uppgifter (hämta dem från pdfmunk.com).
Kunskapsnivå: Medel. Du kopplar några inloggningar, mappar fält till dina Google Sheet-kolumner och testar en webhook-payload.
Vill du inte sätta upp det här själv? Prata med en automatiseringsexpert (gratis 15-minuters konsultation).
Så fungerar det
En registrering triggar workflowet. Ditt formulär (eller valfritt verktyg som kan POST:a data) skickar namn, mejl, foto-URL och giltighetsdatum till n8n-webhooken.
Mejlverifiering körs direkt. VerifiEmail kontrollerar äkthet och engångsdomäner. Om den misslyckas returnerar workflowet ett 400-liknande svar så att ditt formulär kan visa ett tydligt “använd en riktig mejladress”-meddelande.
Passet genereras från start till mål. Ett kodsteg skapar ett unikt pass-ID, en HTTP-request genererar QR-koden och ett “set fields”-steg sätter ihop en varumärkesanpassad HTML-layout för passet inklusive användarens foto och datum. Därefter renderar HTMLCSSToImage designen och HTMLCSSToPDF konverterar den till en korrekt formaterad PDF.
Leverans och loggning sker automatiskt. Gmail skickar PDF-bilagan och en välkomstnotis, och sedan lägger Google Sheets till en rad med pass-ID, datum, verifieringsstatus och en enkel “utfärdad”-status.
Du kan enkelt ändra passdesignen och mejltexten så att det matchar ditt varumärke. Se hela implementeringsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: Konfigurera webhook-triggern
Ställ in den inkommande förfrågan som startar arbetsflödet och routar svaret via webhook reply-noder.
- Lägg till och öppna Incoming Webhook Trigger.
- Ställ in Path till
gym-trial. - Ställ in HTTP Method till
POST. - Ställ in Response Mode till
responseNodeså att svaren kommer från Return Success Reply eller Return Error Reply. - Notera den genererade webhook-URL:en och använd den i er frontend eller vid formulärinlämning.
Steg 2: Anslut Google Sheets
Konfigurera arket där verifierade provpass registreras.
- Öppna Append Sheet Record.
- Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter.
- Ställ in Operation till
appendOrUpdate. - Ställ in Document ID till
YOUR_GOOGLE_SHEET_IDoch Sheet Name tillYOUR_GOOGLE_SHEET_NAME. - Bekräfta att kolumnmappningarna använder de angivna uttrycken, till exempel Name →
{{ $('Incoming Webhook Trigger').item.json.body.name }}och Pass ID →{{ $('Create Pass Info').item.json.pass_id }}. - Låt Matching Columns vara satt till
Pass IDså att uppdateringar baseras på det unika passet.
Steg 3: Ställ in e-postverifiering och dataförberedelse
Det här avsnittet validerar e-postadressen, kontrollerar resultatet och bygger all passmetadata som används längre fram i flödet.
- Öppna Validate Email Address och sätt Email till
{{ $json.body.email }}. - Inloggningsuppgifter krävs: Anslut era verifiEmailApi-inloggningsuppgifter.
- Öppna Email Validity Check och bekräfta att boolean-villkoret använder
{{ $json.valid }}med operatorn satt tilltrue. - Öppna Create Pass Info och behåll JS Code som angivet, vilket hämtar webhook-data från Incoming Webhook Trigger och genererar
pass_idsamt formaterade datum. - Verifiera att körordningen följer Incoming Webhook Trigger → Validate Email Address → Email Validity Check → Create Pass Info.
name, email, photo_url, start_date och valid_till. Saknade fält leder till tomma passuppgifter.Steg 4: Bygg passresurser (QR, HTML, bild, PDF)
Dessa noder genererar QR-koden, sätter ihop passets HTML, renderar en bild, konverterar den till PDF och hämtar den slutliga PDF-resursen.
- Öppna QR Code Request och sätt URL till
https://api.qrserver.com/v1/create-qr-code/?data={{ $json.pass_id }}&size=200x200. - Öppna Assemble Pass HTML och sätt html_content till den fullständiga HTML-mallen som börjar med
och innehåller uttryck som{{ $('Incoming Webhook Trigger').item.json.body.photo_url }},{{ $json.pass_id }}och{{ $json.issued_at }}. - Öppna Render HTML Image och sätt html_content till
{{ $json.html_content }}. - Inloggningsuppgifter krävs: Anslut era htmlcsstoimgApi-inloggningsuppgifter.
- Öppna Convert HTML to PDF och sätt html_content till
{{ $('Assemble Pass HTML').item.json.html_content }}. - Inloggningsuppgifter krävs: Anslut era htmlcsstopdfApi-inloggningsuppgifter.
- Öppna Fetch PDF Asset och sätt URL till
{{ $json.pdf_url }}.
Steg 5: Konfigurera e-postutskick och webhook-svar
Skicka det verifierade passet till användaren och returnera en payload för lyckat resultat till webhook-anroparen.
- Öppna Dispatch Pass Email och sätt Send To till
{{ $('Incoming Webhook Trigger').item.json.body.email }}. - Inloggningsuppgifter krävs: Anslut era gmailOAuth2-inloggningsuppgifter.
- Ställ in Subject till
Your Verified Gym Trial Pass - Welcome! 🏋️♀️. - Ställ in Message till den angivna HTML-texten, som innehåller uttryck som
{{ $('Create Pass Info').item.json.pass_id }}. - Öppna Return Success Reply och bekräfta att Response Body använder JSON-uttrycket med fält som
{{ $json['Pass ID'] }}och{{ $json['Issued At'] }}.
Steg 6: Lägg till felhantering
Arbetsflödet använder villkorsstyrd routning för att returnera ett felsvar när e-postadressen är ogiltig.
- I Email Validity Check, säkerställ att false-vägen kopplas till Return Error Reply.
- Öppna Return Error Reply och bekräfta att Response Code är satt till
400. - Verifiera att Response Body innehåller JSON-felpayloaden med
{{ $json.email }}inbäddat.
Steg 7: Testa och aktivera ert arbetsflöde
Kör ett fullständigt test för att verifiera webhooken, e-postvalideringen, passgenereringen, loggningen i arket och webhook-svaret.
- Klicka på Execute Workflow och skicka en POST-förfrågan till URL:en för Incoming Webhook Trigger med en body som innehåller
name,email,photo_url,start_dateochvalid_till. - Bekräfta att körvägen når Dispatch Pass Email, Append Sheet Record och Return Success Reply.
- Kontrollera att e-postmeddelandet kommer fram och att raden i Google Sheet läggs till eller uppdateras.
- Verifiera att webhook-svarets JSON visar
"status": "success"och innehåller passuppgifterna. - När allt fungerar, växla arbetsflödet till Active för användning i produktion.
Vanliga fallgropar
- Gmail OAuth-uppgifter kan löpa ut eller sakna rätt scopes. Om leveransen plötsligt stoppar, kontrollera först statusen för dina n8n-uppgifter och behörigheterna i det anslutna Google-kontot.
- Om du använder externa renderingstjänster (HTMLCSSToImage eller HTMLCSSToPDF) varierar processtiderna. Öka eventuell wait/retry-hantering om steget “fetch PDF asset” ibland hämtar en tom fil.
- VerifiEmail kan vara strikt, vilket är hela poängen. Om du ser att giltiga kunder blockeras, granska svarspayloads och justera din hantering av “ogiltig mejl” innan du mjukar upp reglerna.
Vanliga frågor
Räkna med cirka en timme om du redan har API-nycklarna redo.
Nej. Du kopplar främst konton och klistrar in API-nycklar. Den enda “tekniska” delen är att testa en webhook med en exempel-payload.
Ja. n8n har ett gratis self-hosted-alternativ 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 VerifiEmail samt API-användning för HTML-till-bild/PDF, vilket oftast är en liten kostnad per request.
Två alternativ: n8n Cloud (hanterat, enklast setup) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det är en av de bästa delarna. Uppdatera HTML:en i steget “Assemble Pass HTML” för att ändra färger, layout, logoplacering och vilka fält du visar. Om du vill ha en annan QR-stil byter du endpoint eller parametrar i QR Code Request. Du kan också skriva om meddelandet i “Dispatch Pass Email” så att det matchar din ton och dina onboardingsteg.
Oftast handlar det om att OAuth-medgivandet har löpt ut eller att Gmail API-behörigheter saknas i det anslutna Google-projektet. Anslut Gmail-uppgifterna igen i n8n, bekräfta att Gmail API är aktiverat i Google Cloud och dubbelkolla att du skickar från samma konto som du autentiserade med. Om det fungerar för några utskick och sedan slutar kan även rate limits eller kontots säkerhetsflaggor vara orsaken.
Workflowet är byggt för minst 100 pass per timme, och de flesta gym kommer inte ens i närheten av det.
Ofta, ja, eftersom det här inte är en enkel “skicka ett mejl”-zap. Du gör verifiering, genererar en QR-kod, renderar HTML, konverterar till PDF och loggar samt svarar tillbaka till formuläret. n8n hanterar den typen av förgreningar och flersteglogik på ett tydligt sätt, och med self-hosting betalar du inte per liten åtgärd hela dagen. Zapier eller Make kan fortfarande fungera, men PDF-generering och avancerad felhantering tenderar att bli dyrt eller krångligt. Om du vill, prata med en automatiseringsexpert så kvalitetssäkrar vi vilken väg som passar din volym och budget.
När det här är live slutar provpass att vara en uppgift och blir ett system. Teamet får färre avbrott och nya medlemmar får den där omedelbara “du är inne”-upplevelsen.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.