Certifikatsförfrågningar ser alltid enkla ut tills de landar i inkorgen. Fel mejladresser. Saknade namn. Sista minuten-meddelanden om “kan du skicka igen?”. Och plötsligt sitter du och kopierar in detaljer i ett kalkylark klockan 21.
Den här Gmail Sheets-automationen träffar kurskreatörer först, men utbildningsansvariga och slimmade ops-team känner också av den. Du skickar felfria, varumärkesanpassade certifikat automatiskt och behåller en sökbar logg över varje utfärdande utan extra adminarbete.
Nedan ser du hur arbetsflödet validerar mejladresser, genererar en certifikatbild, mejlar den via Gmail och sedan loggar hela händelsen i Google Sheets (med Slack-varningar om något går snett).
Så här fungerar automatiseringen
Hela n8n-arbetsflödet, från trigger till slutresultat:
n8n Workflow Template: Gmail + Google Sheets: skicka och logga intyg
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/>Certificate Request Webhook"]
n1["<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 HTML Certificate"]
n2@{ icon: "mdi:message-outline", form: "rounded", label: "Send Certificate Email", pos: "b", h: 48 }
n3@{ icon: "mdi:database", form: "rounded", label: "Log to Google Sheets", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "HTML/CSS to Image", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Verifi Email", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If", pos: "b", h: 48 }
n10@{ icon: "mdi:location-exit", form: "rounded", label: "Stop and Error", pos: "b", h: 48 }
n11["<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/>Code in JavaScript"]
n9 --> n11
n9 --> n10
n8 --> n9
n7 --> n2
n11 --> n1
n2 --> n3
n1 --> n7
n0 --> n8
end
subgraph sg1["On Workflow Error Flow"]
direction LR
n4@{ icon: "mdi:play-circle", form: "rounded", label: "On Workflow Error", pos: "b", h: 48 }
n5["<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/>Format Error Details"]
n6["<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/slack.svg' width='40' height='40' /></div><br/>Send Slack Alert"]
n4 --> n5
n5 --> n6
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 n4 trigger
class n8,n9 decision
class n3 database
class n0 api
class n1,n11,n5 code
class n6 disabled
classDef customIcon fill:none,stroke:none
class n0,n1,n11,n5,n6 customIcon
Problemet: certifikatutskick blir till konstant omarbete
Manuell certifikatutskick är den typen av uppgift som ser “snabb” ut tills du gör den i skala. Du hämtar ett namn från ett system, kursnamnet från ett annat och försöker få mejlet att se professionellt ut varje gång. Ett stavfel och du får utfärda certifikatet på nytt. En ogiltig mejladress och du slösar tid på att skicka något som aldrig kommer fram. Sedan frågar någon: “Kan du bekräfta mitt certifikat-ID?” och du inser att du saknar en konsekvent revisionsspårning – bara en rörig tråd i inkorgen.
Det blir snabbt mycket. Här brukar friktionen dyka upp:
- Du behöver skicka om certifikat eftersom mejladresser har skrivits fel eller engångsadresser slunkit igenom.
- Varumärkeskonsekvensen spricker när du redigerar mallar under tidspress.
- Det finns ingen samlad plats för att verifiera vad som skickats, till vem och när.
- Fel upptäcks sent, vilket leder till onödigt fram-och-tillbaka med studenter eller anställda.
Lösningen: validera, generera, mejla och logga certifikat automatiskt
Det här arbetsflödet gör certifikathantering till en enkel pipeline: förfrågan → verifierad leverans. Det startar när din LMS, CRM eller ett enkelt formulär skickar en webhook-förfrågan med mottagarens namn, kurs, datum för slutförande och mejladress. Innan något genereras kontrolleras mejladressen med VerifiEmail, som fångar upp tydliga problem (felaktig formatering), djupare leveransproblem (saknade MX-poster) och sådant som skapar problem senare (engångs- eller misstänkta adresser). Om valideringen godkänns bygger arbetsflödet ett varumärkesanpassat HTML-certifikat, renderar det till en högkvalitativ PNG-bild och mejlar det via Gmail med en konsekvent mall. Till sist skrivs varje utfärdande in i Google Sheets så att du får ett levande revisionsspår – inte en hög av gissningar.
Arbetsflödet börjar med en webhook för certifikatsförfrågan. Sedan validerar det och sammanfogar förfrågningsdata till en färdig certifikatdesign, konverterar designen till en delbar bild och skickar certifikatmejlet. Efter leverans loggar det hela posten i Google Sheets och kan notifiera Slack om fel uppstår.
Det du får: automation vs. resultat
| Det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här kan det se ut
Säg att du utfärdar 50 certifikat i veckan. Manuellt tar även en “snabb” process runt 6 minuter per certifikat (kopiera detaljer, formatera ett mejl, bifoga eller länka en fil och sedan uppdatera ett kalkylark), vilket blir cirka 5 timmar i veckan. Med det här arbetsflödet triggar du det från din LMS på några sekunder, sedan sköter n8n validering, bildrendering, mejl och Google Sheets-loggning på cirka 5–10 sekunder per certifikat. Du behåller samma kvalitet på resultatet, men administrationstiden försvinner i praktiken.
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)
- Gmail för att skicka varumärkesanpassade certifikatmejl
- Google Sheets för att logga varje utfärdat certifikat
- VerifiEmail API-nyckel (hämta den i VerifiEmail-dashboarden)
- HTMLcsstoImg användar-ID + API-nyckel (hämta dem i HTMLcsstoImg-dashboarden)
- Slack för valfria felvarningar till teamet
- OpenAI (valfritt) om du vill ha AI-stödda textvariationer
Svårighetsgrad: Medel. Du kopplar OAuth-inloggningar, lägger in API-nycklar och klistrar in din webhook-URL i systemet som skickar slutförandehändelser.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En slutförandehändelse triggar arbetsflödet. Din LMS, CRM eller ditt formulär skickar en POST-förfrågan till webhooken “Incoming Certificate Hook” med fält som namn, kurs, datum och mejladress.
Mejlvalidering körs före allt annat. VerifiEmail kontrollerar formatering, domänposter samt mönster för engångs- eller misstänkta adresser. Om förfrågan inte godkänns stoppar arbetsflödet snyggt och kan rapportera problemet.
Certifikatet sätts ihop och renderas. n8n sammanfogar förfrågningsdata, genererar certifikat-HTML (inklusive ett unikt certifikat-ID) och skickar sedan HTML:en till HTMLcsstoImg för att rendera en 1200×850 PNG som du kan dela eller ladda ner.
Utskick och spårbarhet sker automatiskt. Gmail skickar certifikatmejlet med en konsekvent mall, och Google Sheets loggar certifikat-ID, mottagaruppgifter, tidsstämpel, URL och status. Om ett arbetsflödesfel inträffar kan en feltrigger posta en Slack-varning.
Du kan enkelt ändra certifikatdesignen och mejltexten så att det matchar din tonalitet. Se den fullständiga 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 certifikatförfrågningar och matar arbetsflödet.
- Lägg till noden Incoming Certificate Hook och ställ in HTTP Method på
POST. - Ställ in Path på
certificate-generator. - Ställ in Response Mode på
lastNodeså att webhooken svarar med den slutliga outputen. - Bekräfta att inkommande JSON-body innehåller fälten
name,course,dateochemail.
Steg 2: Anslut VerifiEmail och validera indata
Validera mottagarens e-postadress och säkerställ att obligatoriska fält finns innan certifikatet genereras.
- Lägg till Validate Email Address och ställ in Email till
={{ $json.body.email }}. - Autentisering krävs: Anslut era verifiEmailApi-uppgifter till Validate Email Address.
- Konfigurera Validation Branch med följande villkor (kombinator
and):={{ $('Incoming Certificate Hook').item.json.body.name }}är inte tomt,={{ $('Incoming Certificate Hook').item.json.body.course }}är inte tomt,={{ $('Incoming Certificate Hook').item.json.body.date }}är inte tomt och={{ $json.valid }}är true. - Koppla true-output från Validation Branch till Merge Request Data, och false-output till Abort with Error.
- Ställ in Abort with Error Error Message till
="Missing required fields: name, course, date, or valid email".
Steg 3: Sätt upp databehandling och rendering för certifikat
Slå ihop förfrågningsdata, bygg HTML-certifikatet och rendera det till en bild för e-postleverans.
- I Merge Request Data behåll den medföljande JavaScript-koden för att slå ihop webhook-data med resultaten från e-postvalideringen. Den här noden hämtar från Incoming Certificate Hook och använder standardvärden som
Program Directorför instruktör. - I Build Certificate HTML behåll JavaScript-mallen som genererar ett komplett HTML-certifikat och formaterar datumet.
- Lägg till Render HTML to Image och ställ in HTML Content till
={{ $json.html }}. - Autentisering krävs: Anslut era htmlcsstoimgApi-uppgifter till Render HTML to Image.
Steg 4: Konfigurera e-postleverans och loggning
Skicka certifikatmejlet och logga leveransdetaljerna i Google Sheets.
- I Dispatch Certificate Email ställ in Send To till
={{ $('Merge Request Data').item.json.email }}. - Ställ in Subject till
🎓 Congratulations! Your Certificate of Completionoch behåll HTML-e-postmallen i Message (den använder uttryck som{{ $('Build Certificate HTML').item.json.name }}och{{ $json.image_url }}). - Autentisering krävs: Anslut era gmailOAuth2-uppgifter till Dispatch Certificate Email.
- I Record to Sheets ställ in Operation till
appendOrUpdateoch mappa kolumnerna exakt som konfigurerat, inklusive Email={{ $('Build Certificate HTML').item.json.email }}, Certificate URL={{ $('Render HTML to Image').item.json.image_url }}och Generated At={{ $now.toISO() }}. - Autentisering krävs: Anslut era googleSheetsOAuth2Api-uppgifter till Record to Sheets.
Steg 5: Lägg till felhantering och aviseringar
Fånga upp arbetsflödesfel och skicka aviseringar för övervakning.
- Säkerställ att Workflow Error Trigger är kopplad till Assemble Error Report för att formatera detaljerad felinformation.
- Behåll JavaScript-koden i Assemble Error Report för att inkludera felmeddelande, nodnamn, exekverings-ID och användardetaljer.
- Konfigurera Post Slack Alert med den medföljande meddelandemallen som använder uttryck som
{{ $json.errorMessage }}och{{ $json.workflowName }}. - Autentisering krävs: Anslut era Slack-uppgifter i Post Slack Alert (den här noden har för närvarande inga autentiseringsuppgifter konfigurerade).
- Aktivera Post Slack Alert om ni vill att aviseringar ska skickas (noden är inaktiverad som standard).
Steg 6: Testa och aktivera ert arbetsflöde
Verifiera end-to-end-körning innan ni slår på arbetsflödet.
- Klicka på Execute Workflow och skicka en POST-förfrågan till test-URL:en för Incoming Certificate Hook med giltiga JSON-data.
- Bekräfta att flödet körs från Validate Email Address → Validation Branch → Merge Request Data → Build Certificate HTML → Render HTML to Image → Dispatch Certificate Email → Record to Sheets.
- Kontrollera att mottagaren får mejlet med en giltig nedladdningslänk för
image_urloch att en ny rad visas i Google Sheet. - Trigga ett fel (t.ex. utelämna
email) för att verifiera Abort with Error och fel-flödet som använder Workflow Error Trigger och Post Slack Alert. - Växla arbetsflödet till Active när testerna passerar för produktionsbruk.
Vanliga fallgropar
- Google Sheets-inloggningar kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först n8n-skärmen för Credentials och delningsinställningarna för kalkylarket.
- Om du använder Wait-noder eller extern rendering varierar behandlingstiderna. Öka väntetiden om efterföljande noder misslyckas på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in din varumärkeston tidigt, annars kommer du att redigera utdata för alltid.
Vanliga frågor
Cirka 45 minuter om du redan har kontona.
Nej. Du kopplar inloggningar, klistrar in API-nycklar och justerar några textfält. “Kod”-stegen är redan inbyggda i 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 API-användning för VerifiEmail och HTMLcsstoImg, vilket beror på hur många certifikat du skickar.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och klarar n8n bra. Egen hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, men då byter du renderingssteget. Ersätt noden “Render HTML to Image (HTMLcsstoImg)” med en nod för en PDF-generator-tjänst och uppdatera sedan Gmail-mejlets brödtext så att den innehåller en PDF-länk eller bilaga. Vanliga justeringar är att ändra certifikatlayouten, lägga in din logotyp och justera formatet för certifikat-ID i kodnoden “Build Certificate HTML”.
Oftast beror det på utgånget eller återkallat OAuth-samtycke. Återanslut Gmail OAuth2-inloggningen i n8n och kör sedan ett test för att bekräfta att den kan skicka mejl. Kontrollera också Gmails sändningsgränser om du utfärdar många certifikat under en kort period, och bekräfta att arbetsflödet använder rätt avsändarkonto.
I praktiken hundratals per dag för många team, så länge dina API-kvoter och Gmails sändningsgränser hänger med.
Det beror på hur strikt du vill att validering och loggning ska vara. Zapier och Make kan trigga på en webhook och skicka ett mejl, absolut, men det här arbetsflödet inkluderar djupare mejlverifiering, flexibel förgrening och kodbaserad certifikatgenerering utan att du betalar extra för varje väg. n8n ger dig också alternativet att köra självhostat, vilket är en stor grej om du skickar certifikat i toppar och inte vill oroa dig för task-prissättning. Ärligt talat: så fort du lägger till bildrendering, revisionsloggning och felvarningar brukar n8n kännas mindre begränsande. Om du är osäker, prata med en automationsexpert så får du en rak rekommendation.
När detta väl rullar går certifikaten ut på sekunder och din logg håller sig felfri. Du slutar jaga omskick och börjar lita på din process.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.