Google Sheets is veruit de populairste integratie op het n8n platform — en dat is geen toeval. Vrijwel elk bedrijf gebruikt spreadsheets voor data, rapportages en tracking. Met n8n's Google Sheets node automatiseer je alles: van data-synchronisatie tot AI-gestuurde analyses. In deze gids leer je de node instellen en krijg je 10 workflows die je direct kunt gebruiken.
Wat je leert in deze gids:
- Google Sheets node instellen met OAuth 2.0 credentials
- De 6 kernoperaties: lezen, toevoegen, updaten, verwijderen, opzoeken en aanmaken
- 10 kant-en-klare workflows voor dagelijks gebruik
- AI-integratie: spreadsheets verrijken met ChatGPT
- Performance tips voor grote spreadsheets (10.000+ rijen)
Google Sheets Node Instellen in n8n
Voordat je spreadsheets kunt automatiseren, moet je n8n toegang geven tot je Google account. Dat werkt via OAuth 2.0 — het standaard authenticatieprotocol van Google.
Stap 1: Google Cloud Project Aanmaken
-
1
Ga naar
console.cloud.google.comMaak een nieuw project aan (bijv. "n8n-automatisering")
-
2
Google Sheets API inschakelen
Ga naar API Library → zoek "Google Sheets API" → klik Enable
-
3
OAuth Consent Screen configureren
Kies "External" → vul app naam in → voeg je e-mailadres toe als test user
-
4
OAuth 2.0 Credentials maken
Credentials → Create Credentials → OAuth client ID Application type: Web application Authorized redirect URI: https://jouw-n8n-url.com/rest/oauth2-credential/callback
Kopieer de Client ID en Client Secret — die heb je zo nodig.
Stap 2: Credentials in n8n Toevoegen
Open n8n, ga naar Settings → Credentials → New Credential en kies "Google Sheets OAuth2 API". Plak je Client ID en Secret, klik op "Sign in with Google" en geef toestemming.
Tip: Service Account als alternatief
Voor server-to-server automatisering (zonder gebruikersinteractie) kun je ook een Service Account gebruiken. Voordeel: geen token refresh nodig. Nadeel: je moet het spreadsheet expliciet delen met het service account e-mailadres.
De 6 Kernoperaties van de Google Sheets Node
De n8n Google Sheets node ondersteunt zes operaties. Elke operatie heeft specifieke use cases.
| Operatie | Wat het doet | Voorbeeld |
|---|---|---|
| Append Row | Voegt een nieuwe rij toe onderaan de sheet | Formulierinzending opslaan |
| Read Rows | Leest rijen uit de sheet (met optionele filters) | Klantlijst ophalen voor e-mailcampagne |
| Update Row | Wijzigt bestaande rij op basis van key kolom | Orderstatus bijwerken |
| Delete Row | Verwijdert een rij | Verwerkte items opschonen |
| Lookup | Zoekt rijen die aan een voorwaarde voldoen | Klant opzoeken op e-mailadres |
| Create Sheet | Maakt een nieuwe tab in het spreadsheet | Maandelijks rapportage-tab aanmaken |
Data Mapping: Automatisch vs. Handmatig
Bij het schrijven naar Google Sheets heb je twee opties:
- Map Automatically: n8n matcht inkomende velden automatisch met kolomnamen. Werkt perfect als je veldnamen exact overeenkomen met de kolomkoppen.
- Map Each Column Manually: Je wijst zelf elk veld toe aan een kolom. Gebruik dit als veldnamen niet overeenkomen of als je data wilt transformeren.
// Voorbeeld: Map Each Column Manually
// Inkomende data van een webhook:
{
"customer_name": "Jan de Vries",
"order_total": 149.95,
"created": "2026-03-10T14:30:00Z"
}
// Mapping in Google Sheets node:
Kolom A ("Klantnaam") → {{ $json.customer_name }}
Kolom B ("Bedrag") → {{ $json.order_total }}
Kolom C ("Datum") → {{ $json.created.toLocaleDateString('nl-NL') }}
Kolom D ("Status") → "Nieuw" // Vaste waarde
10 Praktische Google Sheets Workflows
Hier zijn tien workflows die je direct kunt bouwen. Elke workflow bevat de benodigde nodes en configuratie.
Workflow 1: Formuliergegevens Automatisch Opslaan
Webhook → Google Sheets
Sla elke formulierinzending automatisch op in je spreadsheet
Nodes: Webhook → Set Node (data formatteren) → Google Sheets (Append Row) Webhook URL: https://n8n.jouwdomein.nl/webhook/form-submissions Sheet: "Inzendingen 2026" Mapping: Automatic (veldnamen = kolomnamen)
Gebruik: Typeform, Gravity Forms, Contact Form 7, of elke tool die webhooks ondersteunt.
Workflow 2: Dagelijkse Data-Sync Tussen Twee Sheets
Schedule → Read → Compare → Update
Synchroniseer data tussen twee spreadsheets — elke ochtend om 7:00
Nodes: 1. Schedule Trigger (elke dag, 07:00, Europe/Amsterdam) 2. Google Sheets (Read - Bron sheet) 3. Google Sheets (Read - Doel sheet) 4. Merge Node (vergelijk op key kolom, bijv. "Email") 5. IF Node (nieuwe of gewijzigde rijen?) 6. Google Sheets (Append Row - nieuwe items) 7. Google Sheets (Update Row - gewijzigde items)
Workflow 3: Lead Tracking vanuit Meerdere Bronnen
Multi-Source → Normaliseer → Sheets
Verzamel leads uit LinkedIn, website en e-mail in één spreadsheet
Nodes: 1a. Webhook (website formulier) 1b. Gmail Trigger (inkomende leads via e-mail) 1c. HTTP Request (LinkedIn Ads API, elke 6 uur) 2. Merge Node (combineer alle bronnen) 3. Code Node (normaliseer velden: naam, email, bron, datum) 4. Google Sheets (Lookup - bestaat email al?) 5. IF Node (nieuw vs. bestaand) 6. Google Sheets (Append Row - nieuwe leads) 7. Google Sheets (Update Row - bestaande leads verrijken)
Workflow 4: Automatische Rapportage met AI
Sheets → AI Analyse → Slack/Email Rapport
Laat ChatGPT je weekcijfers analyseren en een samenvatting sturen
// Elke vrijdag om 16:00
Schedule Trigger → Google Sheets (Read alle rijen van deze week)
→ Code Node (format data als tabel)
→ OpenAI Node {
Model: "gpt-4o"
Prompt: `Analyseer deze verkoopdata van deze week.
Geef een samenvatting in 5 bullet points:
- Totale omzet en vergelijking met vorige week
- Best presterende producten
- Opvallende trends
- Aanbevelingen voor volgende week
Data: {{ $json.salesData }}`
}
→ Slack Node (post in #sales-updates)
→ Google Sheets (schrijf samenvatting naar "Weekrapporten" tab)
Workflow 5: Voorraadwaarschuwingen op Basis van Drempelwaarde
Schedule → Sheets Check → Alert
Ontvang een Slack-melding zodra een product bijna op is
Nodes:
1. Schedule Trigger (elke 2 uur)
2. Google Sheets (Read - "Voorraad" sheet)
3. IF Node (voorraad < drempelwaarde uit kolom "Min. Voorraad")
4. Slack Node ("⚠️ Voorraad laag: {{productNaam}} — nog {{aantal}} stuks")
5. Google Sheets (Update - markeer als "Waarschuwing verstuurd")
Workflow 6: CRM Light — Klantinteracties Loggen
Multi-trigger → Lookup → Log
Gebruik Google Sheets als lichtgewicht CRM
Niet elk bedrijf heeft een volledig CRM nodig. Met twee sheets — "Klanten" en "Interacties" — bouw je een simpel maar effectief klantvolgsysteem. Elke e-mail, telefoongesprek of offerte wordt automatisch gelogd.
Triggers: Gmail (nieuwe email) / Webhook (telefoonsysteem) / Typeform (offerte-aanvraag) → Google Sheets Lookup (zoek klant op email in "Klanten" sheet) → IF Node (klant bestaat?) → Ja: Google Sheets Append (log interactie in "Interacties" sheet) → Nee: Google Sheets Append (maak klant aan) → dan log interactie
Workflow 7: Factuur-overzicht uit Stripe
Stripe Trigger → Sheets → Totalen
Elke Stripe-betaling automatisch in je boekhouding-spreadsheet
Nodes:
1. Stripe Trigger (event: payment_intent.succeeded)
2. Code Node (bereken bedrag excl. BTW, BTW bedrag)
3. Google Sheets Append {
Kolom A: Datum
Kolom B: Stripe Payment ID
Kolom C: Klantnaam
Kolom D: Bedrag excl. BTW
Kolom E: BTW (21%)
Kolom F: Totaal incl. BTW
}
Workflow 8: Content Kalender Automatiseren
Sheets Trigger → Publiceer Content
Plan social media posts in Sheets en publiceer ze automatisch
Nodes: 1. Schedule Trigger (elke dag om 09:00) 2. Google Sheets Read (filter: publicatiedatum = vandaag EN status = "Klaar") 3. IF Node (zijn er posts voor vandaag?) 4. LinkedIn Node / Twitter Node / Facebook Node (publiceer) 5. Google Sheets Update (status → "Gepubliceerd", URL → post link)
Workflow 9: Data Opschonen en Dedupliceren
Read → Deduplicate → Clean → Write
Verwijder dubbele rijen en standaardiseer data-formaten
// Code Node: Data opschonen
const rows = $input.all();
const cleaned = rows.map(row => ({
...row.json,
email: row.json.email?.toLowerCase().trim(),
telefoon: row.json.telefoon?.replace(/[^0-9+]/g, ''),
naam: row.json.naam?.split(' ')
.map(w => w.charAt(0).toUpperCase() + w.slice(1).toLowerCase())
.join(' ')
}));
// Deduplicatie op basis van email
const seen = new Set();
const unique = cleaned.filter(row => {
if (seen.has(row.email)) return false;
seen.add(row.email);
return true;
});
return unique.map(item => ({ json: item }));
Workflow 10: Chat met je Spreadsheet via AI
n8n Chat → Sheets Data → AI Antwoord
Stel vragen over je spreadsheetdata in natuurlijke taal
// Workflow: Chat interface voor spreadsheet data
1. Chat Trigger (n8n Chat of Slack)
Gebruiker: "Hoeveel omzet hebben we gemaakt in februari?"
2. Google Sheets Read (lees alle data)
3. OpenAI Node {
System: "Je bent een data-analist. Beantwoord vragen op basis
van de spreadsheet data. Geef concrete getallen.
Antwoord in het Nederlands."
User: "{{ $('Chat Trigger').item.json.message }}"
Context: "{{ JSON.stringify($('Google Sheets').item.json) }}"
}
4. Chat Response: "De totale omzet in februari was €47.850.
Dat is 12% meer dan januari (€42.700). De top 3
producten waren: Product A (€15.200), Product B
(€12.400), Product C (€8.100)."
Performance Tips voor Grote Spreadsheets
Google Sheets werkt prima voor kleine datasets, maar bij 10.000+ rijen moet je opletten. Hier zijn vier technieken die je workflows snel houden.
Gebruik Range Filters
Lees niet de hele sheet — specificeer een range. Sheet1!A1:D100 is sneller dan de hele sheet ophalen. Gebruik de Range parameter in de Google Sheets node.
Batch Operaties
Schrijf niet rij-voor-rij. Verzamel items met de Split In Batches node en schrijf ze in één keer. Dat scheelt 90% API calls.
Caching met Code Node
Lees de sheet één keer, sla het resultaat op in een variabele, en gebruik die in de rest van je workflow. Voorkomt herhaalde API calls.
Overstappen naar Database
Bij 50.000+ rijen: overweeg PostgreSQL of Airtable. Gebruik Sheets als frontend en de database als backend.
Let op: Google API Rate Limits
Google Sheets API staat maximaal 60 verzoeken per minuut per gebruiker toe. Bij bulk-operaties kun je tegen deze limiet aanlopen. Bouw altijd een Wait node in met een korte pauze (1-2 seconden) tussen batches.
Veelgemaakte Fouten (en Hoe je ze Voorkomt)
| Fout | Oorzaak | Oplossing |
|---|---|---|
| Lege rijen worden toegevoegd | Veldnamen matchen niet met kolomkoppen | Gebruik "Map Each Column" en controleer de mapping |
| Token expired error | OAuth token is verlopen | Herconnect de credential in n8n Settings |
| Data overschreven i.p.v. toegevoegd | "Update" gebruikt i.p.v. "Append" | Controleer of je Append Row gebruikt voor nieuwe data |
| Workflow stopt bij lege sheet | Read Rows retourneert 0 items | Voeg een IF node toe die checkt of er resultaten zijn |
Google Sheets vs. Alternatieven in n8n
Google Sheets is niet altijd de beste keuze. Hier een snelle vergelijking met andere data-opties in n8n.
| Criterium | Google Sheets | Airtable | PostgreSQL |
|---|---|---|---|
| Max rijen | 10.000.000 | 125.000 (Pro) | Onbeperkt |
| Snelheid | Langzaam bij >10K rijen | Snel tot 50K | Snel, altijd |
| Kosten | Gratis | Vanaf $20/mnd | Gratis (self-hosted) |
| Visueel bewerken | Uitstekend | Uitstekend | Via pgAdmin/DBeaver |
| Beste voor | Rapportages, kleine datasets | Projectmanagement, CRM | Grote datasets, transacties |
Conclusie: Begin Vandaag met Google Sheets Automatisering
Google Sheets en n8n zijn een gouden combinatie. Of je nu leads wilt tracken, rapporten wilt automatiseren, of je spreadsheets wilt verrijken met AI — met de 10 workflows uit deze gids heb je een stevige basis.
Direct aan de slag?
Begin met Workflow 1 (formuliergegevens opslaan) — die heb je in 10 minuten draaien. Bouw van daaruit verder met rapportages en AI-analyses.