Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
January 22, 2026

PayCaptain + Google Sheets: säkrare auditloggar

Rickard Andersson Partner, Nodenordic.se

HR-dataförfrågningar låter enkla tills du sitter och gräver i medarbetarregister, svarar på ”snabba frågor” och inser att det inte finns någon tillförlitlig logg över vem som har öppnat vad. Då blir det fram och tillbaka i meddelanden, skärmdumpar som du inte borde dela och den där obehagliga känslan av att ett enda misstag kan exponera något känsligt.

Det här drabbar HR-chefer först, om vi ska vara ärliga. Men operationsansvariga som dras in i godkännanden känner också av det, och lönekonsulter i byråupplägg hanterar det hela tiden. Med PayCaptain granskningsloggar i Google Sheets får du ett felfritt spår över uppslag och uppdateringar av medarbetare utan att göra alla till systemadministratörer.

Nedan ser du vad arbetsflödet gör, varför det är säkrare än ad hoc-åtkomst och hur du kan anpassa det till era egna medarbetarattribut och policys.

Så här fungerar automatiseringen

Hela n8n-flödet, från trigger till slutresultat:

n8n Workflow Template: PayCaptain + Google Sheets: säkrare auditloggar

Problemet: HR-förfrågningar skapar risk utan en granskningslogg

Medarbetardata är en sådan sak som alla behöver, men som bara ett fåtal personer bör hantera. Någon frågar: ”När började Sarah?” En annan behöver arbetsdagar för Jack. Sedan säger en chef: ”Uppdatera Tracys NI-nummer, tack”, och plötsligt gör du manuella uppslag, kopierar fält till meddelanden och genomför ändringar utan någon insyn utanför din inkorg. Har du otur delar du dessutom för mycket (adresser, bankuppgifter, identifierare) eftersom förfrågan aldrig specificerade vad som var ”säkert”.

Små förfrågningar är inte problemet. Det är upprepningen. Och avsaknaden av en tydlig, sökbar historik gör det värre för varje vecka.

  • Folk frågar efter samma medarbetarinfo igen eftersom det inte finns något gemensamt spår att hänvisa till senare.
  • Manuell copy-paste ökar risken att du råkar inkludera känsliga fält som aldrig behövdes.
  • Uppdateringar sker via DM:s och e-posttrådar, så du kan inte enkelt bevisa vem som begärde en ändring och när den gjordes.
  • Även ”skrivskyddad” åtkomst blir ett säkerhetsproblem när för många konton kan bläddra i hela medarbetarprofiler.

Lösningen: en MCP-gateway som maskerar data och loggar varje åtgärd

Det här n8n-arbetsflödet gör PayCaptain-uppslag och uppdateringar av medarbetare till kontrollerade ”verktyg” som du kan exponera via en MCP-server (till exempel till Claude Desktop). I stället för att ge någon bred åtkomst till PayCaptain låter du dem ställa en fråga via MCP-klienten. Arbetsflödet skickar förfrågan till rätt operation (sök medarbetare, hämta via ID eller uppdatera medarbetare), anropar PayCaptain-API:et och tar sedan bort känsliga fält innan något returneras. När förfrågan är en uppdatering skyddar det också mot att ändra fält du vill hålla skrivskyddade, vilket är avgörande för lönenära data.

Varje operation skrivs till Google Sheets som en granskningspost, så du kan svara på ”vem slog upp det här?” och ”vad ändrades?” utan att leta i chattloggar. Det tillkommer lite extra latenstid, men för känslig åtkomst är den kompromissen oftast värd det.

Arbetsflödet startar när din MCP-klient triggar servern. n8n avgör vilket verktyg som används, kör rätt PayCaptain-API-anrop, maskerar fält och returnerar ett strukturerat svar. Till sist loggar det åtgärden i Google Sheets för senare granskning.

Vad du får: automatisering vs. resultat

Exempel: så här kan det se ut

Säg att teamet hanterar 20 medarbetarfrågor i veckan och att varje fråga tar cirka 10 minuter att slå upp, rimlighetskontrollera och svara på på ett säkert sätt. Det blir ungefär 3 timmar smått-men-stressig administration. Med det här arbetsflödet frågar beställaren via MCP-klienten, n8n hämtar och maskerar data och svaret kommer tillbaka på ungefär en minut plus loggning. Du granskar fortfarande känsliga uppdateringar, men rutinuppslagen slutar äta upp eftermiddagarna.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Självhostningsalternativ om du föredrar det (Hostinger fungerar bra)
  • PayCaptain för att söka och uppdatera medarbetarregister
  • Google Sheets för att logga åtgärder för granskning
  • PayCaptain developer key (hämta den i dina PayCaptain-utvecklarinställningar)

Kunskapsnivå: Medel. Du kopplar in behörigheter, verifierar tillåtna fält och testar API-anrop på ett säkert sätt.

Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).

Så fungerar det

En MCP-klient triggar servern. Arbetsflödet startar när din MCP-klient (som Claude Desktop) anropar din n8n MCP Server Gateway med en begäran om att söka, hämta eller uppdatera en medarbetare.

Förfrågan routas till rätt verktyg. En Switch-nod skickar förfrågan längs rätt väg, vilket gör beteendet förutsägbart och gör det enklare att tillämpa olika regler för uppslag jämfört med uppdateringar.

PayCaptain-data hämtas och saneras. n8n använder HTTP-anrop för att hämta medarbetarlistor eller en specifik medarbetarpost, och sedan tar stegen för att ”maskera fält” bort attribut du inte vill returnera till beställaren.

Uppdateringar valideras innan något ändras. Arbetsflödet mappar tillåtna fält, kontrollerar payloaden och postar först därefter uppdateringen till PayCaptain. Om något inte är tillåtet förbereder det ett tydligt felmeddelande i stället för att delvis uppdatera posten.

Allt loggas i Google Sheets. Varje operation skriver en granskningspost innan ett svar returneras, så du har alltid ett spår även om någon raderar en chatttråd.

Du kan enkelt ändra vilka fält som returneras till beställare och vilka fält som är redigerbara utifrån era behov. Se hela implementationsguiden nedan för alternativ för anpassning.

Steg-för-steg-implementeringsguide

Steg 1: Konfigurera triggern för anrop av subworkflow

Konfigurera ingångspunkten för subworkflow så att externa workflows kan skicka in operation, query, employeeId och values till den här automatiseringen.

  1. Lägg till Subworkflow Invocation Trigger som triggernod.
  2. Öppna Workflow Inputs och definiera inputs: operation, query, employeeId och values (typ object).
  3. Koppla Subworkflow Invocation Trigger till Record Audit Entry för att matcha körflödet.

Tips: Säkerställ att det anropande workflowet skickar operation som någon av searchEmployees, getEmployeeById eller updateEmployee för att matcha switch-reglerna i Route by Operation.

Steg 2: Anslut Google Sheets och PayCaptain API

Konfigurera auditloggning till Google Sheets och anslut PayCaptain API-endpoints för att hämta och uppdatera anställda.

  1. Öppna Record Audit Entry och ställ in Operation till append.
  2. I Record Audit Entry, mappa kolumner till uttryck: query{{ $json.query }}, values{{ $json.values.toJsonString() }}, operation{{ $json.operation }}, timestamp{{ $now.toISO() }}, employeeId{{ $json.employeeId }}.
  3. Autentiseringsuppgifter krävs: Anslut era googleSheetsOAuth2Api-uppgifter i Record Audit Entry.
  4. Öppna Retrieve Employee List och ställ in URL till https://api.paycaptain.com/employees.
  5. I Retrieve Employee List, ställ in Send Query till true, lägg till query-parametrar: companypaycaptain, page{{ $json.page ?? 1 }}, samt pagineringsparametern page{{ $request.qs.page + 1 }}.
  6. Autentiseringsuppgifter krävs: Anslut era httpHeaderAuth-uppgifter i Retrieve Employee List.
  7. Upprepa samma PayCaptain-inställningar för Retrieve Employee List 2 och anslut httpHeaderAuth-uppgifter där också.
  8. Öppna Post Employee Update och ställ in URL till https://api.paycaptain.com/employee, Method till POST och JSON Body till {{ { hrEmployeeId: $('Subworkflow Invocation Trigger').item.json.employeeId, .. } }}.
  9. Autentiseringsuppgifter krävs: Anslut era httpHeaderAuth-uppgifter i Post Employee Update.

⚠️ Vanlig fallgrop: Om PayCaptain API kräver specifika headers eller tokens, säkerställ att era httpHeaderAuth-uppgifter inkluderar dem, annars kommer anropen att misslyckas.

Steg 3: Sätt upp routing och hantering för sök/hämta

Routa operationer till rätt flöde och filtrera/sök i anställdata innan redigerade resultat returneras.

  1. Öppna Route by Operation och bekräfta att de tre reglerna kontrollerar {{ $('Subworkflow Invocation Trigger').first().json.operation }} mot searchEmployees, getEmployeeById och updateEmployee.
  2. I Filter Search Matches, behåll det vänstra uttrycket som konkatenerar fält till en sträng i gemener och det högra uttrycket {{ $('Subworkflow Invocation Trigger').first().json.query.toLowerCase() }} för att matcha sökinput.
  3. I Redact Fields For Search, behåll tilldelningarna som endast släpper igenom säkra fält (företag, id:n, namn, kontakt- och jobbinformation).
  4. I Aggregate Search Output, ställ in Aggregate till aggregateAllItemData och Destination Field Name till response.
  5. I Filter Matching Identifier, verifiera att jämförelsen {{ $json.hrEmployeeId }} är lika med {{ $('Subworkflow Invocation Trigger').first().json.employeeId }}.
  6. I Redact Fields For ID, behåll samma tilldelningar för säkra fält som används i Redact Fields For Search.
  7. I Aggregate Get Output, ställ in Aggregate till aggregateAllItemData och Destination Field Name till response.

Steg 4: Konfigurera validering av uppdateringar och hantering av svar

Tillåt endast godkända fält att uppdateras, validera payloaden och returnera svar för lyckat eller fel.

  1. I Map Allowed Fields, ställ in values till uttrycket som filtrerar tillåtna nycklar från inkommande values: {{ ([ "firstname","middlename","lastname","mailingStreet","mailingCity","mailingStateProvince","mailingPostalCode","mailingCountry","email","phone","niNumber","location","department","team","jobGrade","jobTitle", ].reduce((acc, key) => ({ ...acc, [key]: $('Subworkflow Invocation Trigger').item.json.values[key] ?? undefined }), {})) }}.
  2. I Validate Update Payload, behåll villkoret {{ $json.values }} med operatorn notEmpty för att förhindra tomma uppdateringar.
  3. Koppla true-utgången från Validate Update Payload till Post Employee Update, och false-utgången till Prepare Error Reply.
  4. I Prepare Error Reply, ställ in response till =Request included fields which cannot be updated. Editable fields are: {{ [ "firstname","middlename","lastname","mailingStreet","mailingCity","mailingStateProvince","mailingPostalCode","mailingCountry","email","phone","niNumber","location","department","team","jobGrade","jobTitle",].join(', ')}}.
  5. I Prepare Success Reply, ställ in response till ok.

Tips: Workflowet använder flera set-noder (maskning och mappning). Håll deras tilldelningar synkade så att endast godkända fält någonsin lämnar workflowet.

Steg 5: Sätt upp MCP-verktyg och gateway

Exponera workflowet som MCP-verktyg för åtkomst av AI-agenter, inklusive sök, hämta-via-id och uppdateringsoperationer.

  1. Öppna MCP Server Gateway och verifiera att Path är satt till 5f6728df-d3e8-48bb-9a38-0f2e54c7962c.
  2. I Search Employee Tool, bekräfta att Name är searchEmployees och att input query använder {{ /*n8n-auto-generated-fromAI-override*/ $fromAI('query', ``, 'string') }}.
  3. I Fetch Employee Tool, bekräfta att Name är getEmployeeById och att employeeId använder {{ /*n8n-auto-generated-fromAI-override*/ $fromAI('employeeId', ``, 'string') }}.
  4. I Modify Employee Tool, bekräfta att Name är updateEmployee och att inputs använder {{ /*n8n-auto-generated-fromAI-override*/ $fromAI('values', ``, 'string') }} och {{ /*n8n-auto-generated-fromAI-override*/ $fromAI('employeeId', ``, 'string') }}.
  5. Säkerställ att varje verktyg är kopplat till MCP Server Gateway via anslutningen ai_tool.

⚠️ Vanlig fallgrop: Om er MCP-server kräver autentisering, lägg till autentiseringsuppgifter på MCP Server Gateway, inte på verktygsnoderna (Search Employee Tool, Fetch Employee Tool, Modify Employee Tool).

Steg 6: Testa och aktivera ert workflow

Verifiera varje operationsflöde och aktivera sedan workflowet för användning i produktion.

  1. Klicka på Execute Workflow och trigga Subworkflow Invocation Trigger manuellt med exempelinput för searchEmployees, getEmployeeById och updateEmployee.
  2. Bekräfta att auditraden läggs till i Record Audit Entry och att rätt väg triggas från Route by Operation.
  3. För sök-/hämta-operationer, verifiera att Aggregate Search Output eller Aggregate Get Output returnerar en response-array med endast maskade fält.
  4. För uppdateringar, säkerställ att Validate Update Payload passerar icke-tomma values, att Post Employee Update returnerar lyckat och att Prepare Success Reply skickar ut ok.
  5. När ni är nöjda, växla workflowet till Active för att aktivera användning av MCP-verktyg i produktion.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • PayCaptain-autentisering kan löpa ut eller sakna rätt åtkomstomfattning. Om det slutar fungera, kontrollera först behörigheterna för din developer key i PayCaptain och uppdatera sedan autentiseringen i n8n.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder misslyckas på grund av tomma svar.
  • Loggning till Google Sheets kan vara långsammare än du tror, särskilt i hårt belastade kalkylark. Om du ser intermittenta fel, verifiera att målarket/fliken fortfarande finns och överväg att logga till en dedikerad ”Audit”-fil.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automatiseringen för PayCaptain granskningsloggar?

Cirka en timme om din PayCaptain-nyckel och ditt Google Sheet är redo.

Behöver jag kunna koda för att automatisera PayCaptain granskningsloggar?

Nej. Du konfigurerar främst autentisering, tillåtna fält och några routingregler i n8n.

Är n8n gratis att använda för det här arbetsflödet för PayCaptain granskningsloggar?

Ja. n8n har ett gratis självhostat alternativ 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 åtkomst till PayCaptain API (ingår i din PayCaptain-plan och developer key).

Var kan jag hosta n8n för att köra den här automatiseringen?

Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller självhostning på en VPS. För självhostning är Hostinger VPS prisvärd och hanterar n8n bra. Självhostning ger dig obegränsade körningar men kräver grundläggande serveradministration.

Kan jag anpassa det här arbetsflödet för PayCaptain granskningsloggar för olika medarbetarfält och regler för maskering?

Ja, och det bör du. Du redigerar de två maskeringsstegen (”Redact Fields For Search” och ”Redact Fields For ID”) för att styra vad som kommer tillbaka till beställaren, och justerar sedan ”Map Allowed Fields” och ”Validate Update Payload” för att säkerställa vad som får ändras. Vanliga justeringar är att dölja identifierare, bara returnera roll-/teamdetaljer vid uppslag och markera lönekänsliga fält som skrivskyddade. Om er policy ändras uppdaterar du arbetsflödet en gång och regeln gäller överallt.

Varför misslyckas min PayCaptain-anslutning i det här arbetsflödet?

Oftast beror det på en ogiltig eller utgången developer key i HTTP Request-autentiseringen. Det kan också bero på saknade behörigheter på ditt PayCaptain-konto eller att API-endpoint/bas-URL skiljer sig mellan sandbox och produktion. Om sökningen fungerar men uppdateringar misslyckas, kontrollera först mappningen av tillåtna fält och valideringsregeln.

Hur många granskningsposter kan den här automatiseringen för PayCaptain granskningsloggar hantera?

Väldigt många. På n8n Cloud beror det på din månatliga körningskvot, medan självhostning främst beror på din server och hur snabbt Google Sheets kan skriva. I praktiken kör team vanligtvis detta för tiotals till hundratals förfrågningar per dag utan problem, så länge kalkylarket inte är överbelastat.

Är den här automatiseringen för PayCaptain granskningsloggar bättre än att använda Zapier eller Make?

Ofta, ja, eftersom du behöver striktare kontroll än ett enkelt ”trigger → åtgärd”-recept. Det här arbetsflödet bygger på routing, validering och maskering på fältnivå, vilket är enklare att genomdriva i n8n utan krångliga kringlösningar. Du kan också självhosta för obegränsade körningar och hålla allt inom din miljö, vilket är viktigt för HR-data. Zapier eller Make kan fungera för enkel loggning, men de är inte designade kring ”godkända verktyg” exponerade via en MCP-gateway. Om du är osäker, prata med en automationsexpert och beskriv era åtkomstregler.

Du får svar som folk kan lita på, ändringar du kan förklara och en logg du kan ta fram på några sekunder. Sätt upp det en gång och låt sedan arbetsflödet göra det noggranna jobbet.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Launch login modal Launch register modal