Din intervjuspårning ser “bra” ut tills den plötsligt inte gör det. En bokning hamnar i Cal.com, någon kopierar tiden till Google Sheets, tidszonen skiftar och nu säger din dashboard att kandidaten intervjuas i morgon när det egentligen är i dag.
Den här Cal.com Sheets-synken drabbar rekryterare först, men HR-koordinatorer och driftteam på byråsidan känner av det också. När spårningen ljuger missar folk intervjuer, rekryterande chefer tappar förtroendet och du lägger eftermiddagen på att städa kalkylark i stället för att driva kandidater vidare.
Det här arbetsflödet hämtar bokningar från Cal.com, uppdaterar rätt rad i Google Sheets via e-postmatchning, fixar tidszonsformateringen (Asia/Riyadh) och tar bort skräprader så att din pipeline förblir användbar.
Så fungerar den här automatiseringen
Se hur detta löser problemet:
n8n Workflow Template: Cal.com till Google Sheets – strukturerad intervjuspårning
flowchart LR
subgraph sg0["Manual Start Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Manual Start Trigger", pos: "b", h: 48 }
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Retrieve Booking Details"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Booking API Request"]
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/>Format Schedule Time"]
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Map Candidate Fields", pos: "b", h: 48 }
n5@{ icon: "mdi:database", form: "rounded", label: "Update Interview Timestamp", pos: "b", h: 48 }
n6@{ icon: "mdi:database", form: "rounded", label: "Google Sheet Lookup", pos: "b", h: 48 }
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Email List", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "Iterate Email Batches", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Validate Missing Emails", pos: "b", h: 48 }
n10@{ icon: "mdi:database", form: "rounded", label: "Remove Unmatched Rows", pos: "b", h: 48 }
n10 --> n8
n7 --> n8
n4 --> n5
n2 --> n3
n6 --> n7
n3 --> n4
n8 --> n9
n9 --> n10
n9 --> n8
n1 --> n2
n5 --> n6
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 n0 trigger
class n9 decision
class n5,n6,n10 database
class n1,n2 api
class n3 code
classDef customIcon fill:none,stroke:none
class n1,n2,n3 customIcon
Utmaningen: intervjuspårning glider ur synk
Intervjuspårning går sönder i slow motion. Cal.com har bokningen som sanningskälla, men rekryteringsteamet jobbar i Google Sheets eftersom det är snabbt, delat och funkar med allt. Sen händer verkligheten. Kandidater ombokar. En kollega klistrar in fel tidsformat. Någon sorterar arket och kolumnen “Intervjudatum” matchar inte längre rätt person. Värst av allt: du upptäcker det ofta först efter ett missat samtal eller ett “vänta, jag trodde detta var nästa vecka”-meddelande.
Det eskalerar snabbt. Här är var det brukar fallera i den dagliga rekryteringen.
- Manuell kopiering och klistra in skapar små fel som blir schemakaos under intensiva veckor.
- Tidszonsformateringen blir inkonsekvent, så dashboards och filter slutar vara pålitliga.
- Dubbletter eller irrelevanta rader smyger sig in, vilket gör arket “stökigt” och svårare att lita på.
- Mismatch i e-post gör att uppdateringar hamnar på fel kandidat, eller inte sker alls.
Lösningen: synk av Cal.com-bokningar + städning av arket
Det här n8n-arbetsflödet gör Cal.com-bokningsdata till strukturerade, konsekventa rader i din intervjuspårning i Google Sheets. Det börjar med att hämta de senaste bokningsdetaljerna via en HTTP-förfrågan till Cal.com, och extraherar sedan kandidatinfo du faktiskt bryr dig om (namn, e-post, intervjutid). Därefter konverterar det tidsstämpeln till ett läsbart format och normaliserar den till tidszonen Asia/Riyadh, så att arket slutar hoppa mellan format. Efter det uppdaterar det rätt kandidatrad genom att matcha på e-post. Till sist granskar det arket efter saknade eller omatchade poster och tar bort rader som inte ska vara där, så att spårningen förblir slimmad och redo för beslut.
Arbetsflödet startar när du kör det i n8n (manuell trigger), hämtar bokningsdata från Cal.com, formaterar och mappar den till dina kalkylarksfält, och slår sedan upp e-post i Google Sheets för att bara uppdatera giltiga kandidater. Om det upptäcker tomma eller omatchade poster under iterationen tar det bort dem så att spårningen håller sig felfri.
Vad som förändras: före vs. efter
| Det här tar bort | Effekten du ser |
|---|---|
|
|
Effekt i verkligheten
Säg att du kör 20 intervjuer i veckan. Manuellt innebär varje bokning oftast att du öppnar Cal.com, kopierar namn/e-post, konverterar tiden, hittar kandidatraden och sedan dubbelkollar senare, vilket lätt blir 10 minuter per intervju. Det är ungefär 3 timmar i veckan bara för att hålla spårningen korrekt. Med det här arbetsflödet triggar du en körning, låter det uppdatera tidsstämplar och ta bort omatchade rader automatiskt, och du gör mest bara stickprov. Under en intensiv rekryteringsmånad blir det mycket tid tillbaka.
Krav
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- Cal.com för bokningsdata som hämtas via API.
- Google Sheets för att lagra och uppdatera din intervjuspårning.
- Cal.com API-nyckel (hämta den i dina Cal.com-inställningar/API-sida).
Kunskapsnivå: Medel. Du kopplar konton, lägger till autentiseringsuppgifter och säkerställer att dina kolumnnamn i Sheet matchar arbetsflödet.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Flödet i arbetsflödet
En körning startar på beställning. Det här arbetsflödet använder en manuell trigger, vilket är perfekt om du vill testa säkert eller köra det som en del av en daglig rutin medan du rullar ut det.
Cal.com-bokningar hämtas via API. n8n gör HTTP-förfrågningar för att hämta bokningsdetaljer och väljer sedan intervjufälten du bryr dig om i stället för att dumpa rå payload i arket.
Intervjutiden standardiseras. Ett litet kodsteg formaterar schematiden till en läsbar sträng (som “30 juni, 09:00”) och konverterar den till Asia/Riyadh så att varje rad följer samma regel.
Google Sheets uppdateras och städas. Arbetsflödet mappar kandidatfält, uppdaterar intervjutidsstämpeln, slår upp befintliga rader via e-post och itererar sedan igenom e-postbatchar för att upptäcka saknade poster. När det hittar tomma eller omatchade poster tar det bort dessa rader för att hålla spårningen tajt.
Du kan enkelt ändra tidszonen och matchningslogiken så att den passar din rekryteringsprocess. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera den manuella triggern
Starta arbetsflödet manuellt medan ni validerar Cal.com-API:t och uppdateringarna i Google Sheets.
- Lägg till noden Manual Start Trigger som arbetsflödets trigger.
- Behåll Flowpast Branding som en referensnotering (ingen konfiguration krävs).
Steg 2: Anslut Google Sheets
Dessa noder uppdaterar och rensar fliken ”Accepted” i kalkylarket ”Resumes”.
- Öppna Update Interview Timestamp och ställ in Operation på
appendOrUpdate. - Ställ in Spreadsheet på
[YOUR_ID]och Sheet Name påAcceptedi Update Interview Timestamp. - Öppna Google Sheet Lookup och ställ in samma värden för Spreadsheet och Sheet Name.
- I Google Sheet Lookup, bekräfta att Filters inkluderar lookupColumn inställt på
SUMMARY. - Öppna Remove Unmatched Rows och ställ in Operation på
delete. - Ställ in Start Index på
{{ $json.row_number }}i Remove Unmatched Rows. - Inloggningsuppgifter krävs: Anslut era Google Sheets-inloggningsuppgifter till Update Interview Timestamp, Google Sheet Lookup och Remove Unmatched Rows.
Steg 3: Konfigurera hämtning av bokningsdata
Dessa noder hämtar deltagare och bokningsdetaljer från Cal.com för att bygga intervjuschemat.
- I Retrieve Booking Details ställer ni in URL på
https://api.cal.com/v1/attendeesoch aktiverar Send Query. - Lägg till en query-parameter i Retrieve Booking Details med name
apiKeyoch value[CONFIGURE_YOUR_API_KEY]. - I Booking API Request ställer ni in URL på
https://api.cal.com/v1/bookingsoch aktiverar Send Query. - Lägg till en query-parameter i Booking API Request med name
apiKeyoch value[CONFIGURE_YOUR_API_KEY]. - Lägg till parametern för boknings-ID i Booking API Request med name
idoch value{{ $json.attendees[0].bookingId }}.
⚠️ Vanlig fallgrop: Ersätt [CONFIGURE_YOUR_API_KEY] med er faktiska Cal.com API-nyckel i båda HTTP request-noderna, annars kommer arbetsflödet att returnera tomma resultat.
Steg 4: Konfigurera databehandling
Detta steg formaterar schematiden och mappar fält till kolumnnamnen i Google Sheet.
- Öppna Format Schedule Time och behåll den angivna JavaScript Code för att formatera
startTimetill en läsbar sträng. - I Map Candidate Fields ställer ni in Include på
selectedoch aktiverar Include Other Fields. - Ställ in fältet Email i Map Candidate Fields på
{{ $json.email.toLowerCase() }}. - Ställ in fältet Interview Schedule i Map Candidate Fields på
{{ $json.startFormatted }}.
Steg 5: Konfigurera logik för utdata och rensning
Uppdatera arket och iterera sedan igenom e-postrader och ta bort poster utan en sammanfattning.
- Bekräfta körflödet: Map Candidate Fields → Update Interview Timestamp → Google Sheet Lookup → Split Email List → Iterate Email Batches → Validate Missing Emails → Remove Unmatched Rows.
- I Split Email List ställer ni in Field to Split Out på
Emailoch Include påallOtherFields. - Behåll Iterate Email Batches som loop-kontroller för e-postlistan.
- I Validate Missing Emails säkerställer ni att villkoret kontrollerar att leftValue
{{ $json['SUMMARY '] }}är lika med rightValue=.
⚠️ Vanlig fallgrop: Villkoret i Validate Missing Emails förväntar sig kolumnen SUMMARY (observera avslutande mellanslag). Om ert kolumnnamn i arket skiljer sig kan delete-loopen aldrig köras.
Steg 6: Testa och aktivera ert arbetsflöde
Validera end-to-end-körning och aktivera sedan arbetsflödet för löpande användning.
- Klicka på Execute Workflow för att köra från Manual Start Trigger.
- Verifiera att Retrieve Booking Details och Booking API Request returnerar bokningsdata.
- Kontrollera att Update Interview Timestamp lägger till eller uppdaterar rader i arket
Accepted. - Bekräfta att Remove Unmatched Rows tar bort rader där
SUMMARYär=. - När resultaten är korrekta växlar ni arbetsflödet till Active för användning i produktion.
Saker att se upp med
- Cal.com-autentiseringsuppgifter kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först status och scopes för din Cal.com API-nyckel i Cal.com-inställningarna.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre ned i flödet fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera utdata i all evighet.
Vanliga frågor
Cirka 30 minuter om din Cal.com API-nyckel och ditt Sheet är redo.
Ja, men du behöver någon som är bekväm med att koppla konton och matcha kalkylarkskolumner. Ingen kodning krävs om du inte vill ändra logiken för datumformatering.
Ja. n8n har ett gratis alternativ för egen drift och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volymer. Du behöver också räkna in Cal.com API-åtkomst (vanligtvis inkluderat i din Cal.com-plan).
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 hanterar n8n bra. Egen drift ger dig obegränsade körningar men kräver grundläggande serverhantering.
Du kan ändra tidszon och utdataformat i steget “Format Schedule Time” och sedan justera mappade kolumner i “Map Candidate Fields.” Om ditt ark använder en annan unik identifierare än e-post byter du uppslagningen till att matcha på kandidat-ID i stället. Vanliga justeringar är att lägga till en uppdatering av “Stage” efter bokning, skriva en tidsstämpel för “Last Updated” eller skicka en Gmail-bekräftelse till interna intervjuare.
Oftast är det en utgången eller felaktig Cal.com API-nyckel. Skapa en ny nyckel, uppdatera den i de två HTTP Request-noderna och bekräfta att endpointen du anropar fortfarande är giltig för ditt Cal.com-konto. Kontrollera även rate limits om du hämtar många bokningar på en gång. Om bara vissa bokningar fallerar kan det saknas fält i payloaden, så att mappningssteget blir tomt.
Mer än tillräckligt för de flesta små team. På n8n Cloud Starter kan du köra tusentals körningar per månad, och om du kör egen drift finns ingen körningsgräns utöver vad din server klarar. I praktiken bearbetar det här arbetsflödet bokningar i batchar, så du kan hantera flera veckors intervjuer i en enda körning.
Ofta, ja, eftersom du gör mer än “skicka bokning till ark”. Det här arbetsflödet innehåller uppslagslogik, loopar igenom e-postbatchar och städåtgärder (raderar omatchade rader), och det blir snabbt krångligt eller dyrt i verktyg som prissätts per task. n8n låter dig också köra egen drift, vilket är hjälpsamt om rekryteringsvolymen spikar. Zapier eller Make kan fortfarande vara bra för en enkel envägs-append till Sheets, särskilt om du aldrig behöver avduplicering eller validering. Om du är osäker, prata med en automationsexpert så tar vi fram det enklaste alternativet för din process.
När din spårning uppdaterar sig själv och städar efter sig känns rekryteringen lugnare. Den här pålitligheten är ärligt talat det som gör att du kan jobba snabbare utan att lägga till fler verktyg.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.