Maak Salarisverhogingsbrieven met n8n en DocuGenerate
Door DocuGenerate
18 Augustus 2026
Introductie
Salarisverhogingsbrieven behoren tot die documenten die tegelijkertijd naar alle betrokken werknemers moeten worden verstuurd, consistent geformuleerd en zonder copy-paste-fouten. Wanneer een herzieningscyclus tientallen werknemers omvat, wordt het met de hand schrijven van elke brief of het handmatig samenvoegen van een spreadsheet in een Word-document al snel een knelpunt voor HR-teams. In deze tutorial bouwen we een geautomatiseerde workflow met n8n en DocuGenerate die een Google Sheets-spreadsheet met salarisherzieningsdata omzet in gepersonaliseerde PDF-brieven, zonder enige handmatige documentcreatie.
De workflow bewaakt een Google Drive-map op een nieuwe spreadsheet. Zodra er een verschijnt, leest hij elke rij, en voor elke werknemer voegt hij de data van die rij samen met een Word-sjabloon, genereert een PDF, en uploadt de voltooide brief naar een specifieke uitvoermap in Drive. HR hoeft alleen de spreadsheet met de verhogingen van die cyclus voor te bereiden; de brieven worden automatisch gegenereerd en opgeslagen. Aan het einde van deze gids heeft u een volledig functionele n8n-workflow die u kunt importeren en aanpassen aan uw eigen salarisherzieningsproces.
Het Sjabloon voor Salarisverhogingsbrieven Instellen
Voordat we de n8n-workflow bouwen, hebben we een documentsjabloon in DocuGenerate nodig. We gebruiken het Word-sjabloon Salary Increase Letter, een korte brief over de vergoedingsherziening die een werknemer informeert over zijn verhoging, het nieuwe totale salaris, en wie te contacteren bij vragen.
Zodra u het sjabloon heeft aangemaakt in uw DocuGenerate-account, worden 13 merge-tags automatisch gedetecteerd: Date, Employee First Name, Employee Last Name, Employee Address, Increase Amount, Remuneration Type, Total Sum, Increase Date, Contact Name, Contact Number, Company Name, Signatory Name, en Signatory Position. Deze merge-tags omvatten zowel de werknemerspecifieke details van de verhoging als de vaste details van het bedrijf en de ondertekenaar, die allemaal uit de spreadsheetrijen komen.
De Data Voorbereiden in Google Sheets
De data voor deze workflow bevindt zich in Google Sheets. Voor deze tutorial gebruiken we het voorbeeld-Excelbestand Salary Increase Data, geïmporteerd in een Google Sheets-spreadsheet genaamd Salary Increase August 2026. Elk van de 10 rijen vertegenwoordigt de verhoging van één werknemer, met een kolom voor elke merge-tag in het sjabloon: naam, adres, verhogingsbedrag, vergoedingstype, totale som, en de verhogingsdatum, samen met de gedeelde contact- en ondertekenaargegevens die op elke rij worden herhaald.
Deze spreadsheet bevindt zich in een map Salary Increase Letter in Google Drive, die ook de mappen bevat met brieven die zijn gegenereerd voor eerdere herzieningscycli. Elke nieuwe cyclus begint op dezelfde manier: een nieuwe spreadsheet met de data van die cyclus wordt toegevoegd aan deze map, precies de gebeurtenis waarop onze workflow zal wachten.
Overzicht van de n8n-Workflow
Nu het sjabloon en de gegevensbron klaar zijn, ziet de volledige workflow er in n8n als volgt uit. U kunt het workflow-JSON-bestand downloaden en rechtstreeks importeren in uw n8n-instantie, en vervolgens het DocuGenerate-sjabloon, uw Google-gegevens, en de Drive-map-ID bijwerken zodat ze overeenkomen met uw eigen configuratie.
De workflow begint met een trigger die de map Salary Increase Letter bewaakt op een nieuw Google Sheets-bestand. Wanneer er een verschijnt, maakt hij een bijpassende uitvoermap aan, leest elke rij uit de sheet, en doorloopt de rijen één voor één, waarbij voor elke werknemer een PDF-brief wordt gegenereerd en naar de nieuwe map wordt geüpload. Laten we elke node in detail doorlopen.
Nieuwe Spreadsheets Bewaken met de Google Drive Trigger
De node Google Drive Trigger polt een specifieke Google Drive-map en start de workflow wanneer een overeenkomende wijziging plaatsvindt.
De node is ingesteld om elke Every X30Minutes te polen, waarbij Trigger On is ingesteld op Changes Involving a Specific Folder. De parameter Folder accepteert de doelmap op drie manieren: From list, By URL, of By ID; hier is deze ingesteld op By ID met de ID van de map Salary Increase Letter.
U vindt de ID van een map in de Google Drive-URL, het is de reeks tekens na /folders/. Bijvoorbeeld, de ID voor de URL https://drive.google.com/drive/folders/1dcLLzfZaH38hDd0acfUru2ISOoTsbGPI is 1dcLLzfZaH38hDd0acfUru2ISOoTsbGPI.
Tot slot is Watch For ingesteld op File Created, en de optie File Type onder Options is beperkt tot Google Spreadsheets, zodat de trigger alleen afgaat wanneer een nieuwe spreadsheet aan de map wordt toegevoegd.
Een Uitvoermap Aanmaken
Zodra een nieuwe spreadsheet wordt gedetecteerd, heeft de workflow een plek nodig om de gegenereerde brieven op te slaan. De node Google Drive regelt dit met de operatie Create op de resource Folder.
De parameter Folder Name gebruikt de expressie {{ $('Google Drive Trigger').item.json.name }}, die wordt herleid tot Salary Increase August 2026, de naam van de spreadsheet die de workflow heeft geactiveerd. De Parent Folder is ingesteld op dezelfde map-ID die wordt gebruikt in de trigger, zodat de nieuwe uitvoermap wordt aangemaakt als een zustermap van de bron-spreadsheet binnen Salary Increase Letter. Door de map te vernoemen naar de bron-spreadsheet blijven de brieven van elke herzieningscyclus gegroepeerd met de data waaruit ze zijn voortgekomen.
De Werknemersdata Lezen
Nu de doelmap klaar is, leest de node Google Sheets de werknemersdata met de operatie Get Row(s) op de resource Sheet Within Document.
Document is ingesteld op Salary Increase August 2026 en Sheet op Salary Increase Data, beide gekozen uit de From list-dropdowns. De node retourneert alle 10 rijen als aparte items, elk met de volledige set velden die we zagen in de spreadsheet: werknemersdetails, verhogingscijfers, en de gedeelde contact- en ondertekenaarinformatie.
Door Elke Werknemer Lopen
Om één brief per werknemer te genereren, moet de workflow de 10 rijen één voor één verwerken. De node Loop Over Items regelt dit met een batchgrootte van 1.
Elke doorloop van de lus draagt de rij van één werknemer, zoals de eerste voor James Mitchell met een verhoging van 4% die zijn jaarsalaris naar $87.500 brengt, door naar de volgende nodes. De lus gaat door totdat alle 10 rijen zijn verwerkt, waarbij telkens één brief wordt gegenereerd en opgeslagen voordat wordt doorgegaan naar de volgende.
De Brief Genereren
De node Generate document gebruikt de DocuGenerate-integratie voor n8n om de data van elke rij samen te voegen met het Word-sjabloon. Om deze node te gebruiken, installeert u DocuGenerate in uw n8n-instantie en configureert u deze met uw API-sleutel.
De node is geconfigureerd met de volgende parameters:
Template Name or ID: Het sjabloon Salary Increase Letter dat is aangemaakt in de stap sjabloon instellen.
Name: Een expressie, Letter for {{ $json['Employee First Name'] }} {{ $json['Employee Last Name'] }}, die voor de eerste rij een naam produceert zoals Letter for James Mitchell.
Format: Ingesteld op PDF (.pdf).
Data: Ingesteld op {{ $json }}, waarmee de volledige huidige rij, met alle 13 merge-tag-waarden, rechtstreeks naar de API wordt doorgegeven.
Voor de eerste rij levert dit de volgende respons op:
[{"created":1774348731006,"template_id":"ARnboMDE3zyzMrdTZJ2e","name":"Letter for James Mitchell","format":".pdf","data_length":1,"filename":"Letter for James Mitchell.pdf","document_uri":"https://firebasestorage.googleapis.com/v0/b/storage.us.docugenerate.com/o/documents%2FA1blGMwZETC4hrP5Zr2C%2FLetter%20for%20James%20Mitchell.pdf?alt=media&token=6383b541-f2b9-4c79-8161-063d287a5887","id":"A1blGMwZETC4hrP5Zr2C"}]
U kunt het gegenereerde document hieronder bekijken, of de voorbeeld-PDF direct downloaden.
De Gegenereerde Brief Downloaden
DocuGenerate retourneert een document_uri die naar de gegenereerde PDF verwijst in plaats van naar het bestand zelf, dus de workflow moet het eerst ophalen voordat het elders kan worden geüpload. De node HTTP Request doet een GET-verzoek naar die URL.
De parameter URL is ingesteld op {{ $json.document_uri }}, wat verwijst naar de respons van de node Generate document. Authentication blijft op None, aangezien de document-URI al een toegangstoken bevat. De uitvoer van de node bevat de binaire inhoud van het bestand in een veld data, klaar voor de volgende stap.
De Brief Opslaan in Google Drive
De laatste node uploadt de PDF naar de uitvoermap die is aangemaakt bij de start van de run, met behulp van de operatie Upload van de Google Drive-node op de resource File.
Input Data Field Name is ingesteld op data, overeenkomend met het binaire veld dat wordt geproduceerd door de node HTTP Request. Het veld File Name blijft leeg, zodat de upload de oorspronkelijke bestandsnaam behoudt die in de binaire data wordt meegedragen, voor deze rij Letter for James Mitchell.pdf. De Parent Folder gebruikt de expressie {{ $('Create folder').item.json.id }}, zodat elke brief terechtkomt in de map die voor deze herzieningscyclus is aangemaakt, in plaats van los in Drive.
De Workflow Uitvoeren
Nu alle nodes zijn geconfigureerd, is het toevoegen van een nieuwe spreadsheet aan de map Salary Increase Letter alles wat nodig is om een volledige batch brieven te genereren. De animatie hieronder toont een volledige run: elke node wordt groen met een vinkje zodra hij is voltooid, en het segment Loop Over Items draait 10 keer achter elkaar, één keer voor elke werknemer in de spreadsheet.
Zodra de run is voltooid, staan alle 10 brieven in de uitvoermap in Google Drive, elk genoemd naar de ontvanger.
Conclusie
In deze tutorial hebben we een n8n-workflow gebouwd die een Google Sheets-spreadsheet met salarisherzieningsdata omzet in een map met gepersonaliseerde PDF-brieven, zonder enige handmatige documentcreatie. De workflow bewaakt een Drive-map op een nieuwe spreadsheet, maakt een bijpassende uitvoermap aan, doorloopt elke rij, en genereert en archiveert een brief voor elke werknemer, alles geactiveerd door simpelweg een spreadsheet aan de juiste map toe te voegen.
Hetzelfde patroon geldt voor elk HR-document dat aan een periodieke herziening is gekoppeld, van bonusbrieven tot verlengingsmeldingen. De trigger en gegevensbron zouden net zo goed een webhook van een Human Resources Information System (HRIS) of een databasequery kunnen zijn in plaats van een Drive-map, terwijl de stappen voor documentgeneratie en -bezorging hetzelfde blijven.
Leer hoe u automatisch Formulier W-9-documenten genereert zodra er een nieuwe rij wordt toegevoegd in Smartsheet. Deze tutorial bouwt een Power Automate-flow die leveranciers- en contractantgegevens samenvoegt met een DocuGenerate-sjabloon om het formulier te produceren.
Mappen brengen een vertrouwd, hiërarchisch organisatiemodel naar uw DocuGenerate-sjablonen, waardoor het eenvoudiger wordt om verwante sjablonen te groeperen naarmate uw bibliotheek groeit. Ontdek hoe u mappen maakt en beheert om uw werkruimte georganiseerd te houden.
Het bepalen van hoe datums worden weergegeven in gegenereerde documenten is een van de meest voorkomende opmaakuitdagingen, vooral bij het produceren van documenten voor verschillende regio's. Dit artikel behandelt twee verschillende benaderingen, met voorbeelden voor zowel Amerikaanse als Europese datumformaten.