Wat is Google Apps Script en waarom periodiek uitvoeren?
Google Apps Script is een op JavaScript gebaseerde scripttaal waarmee je taken kunt automatiseren binnen het Google Workspace-ecosysteem, zoals Google Sheets, Docs, Drive en Gmail. Een van de krachtigste functies is de mogelijkheid om scripts automatisch en periodiek uit te voeren, zonder dat je handmatig op een knop hoeft te drukken.
Door een script op vaste tijden te laten draaien, kun je onder meer rapportages genereren, gegevens synchroniseren, herinneringen versturen of data uit externe bronnen ophalen. Dit bespaart tijd, vermindert fouten en zorgt voor consistente processen.
Soorten triggers in Google Apps Script
In Google Apps Script zijn er grofweg twee soorten triggers: eenvoudige triggers en geïnstalleerde triggers. Voor periodieke uitvoering maak je vrijwel altijd gebruik van geïnstalleerde tijdgestuurde triggers.
Eenvoudige triggers
Eenvoudige triggers worden automatisch geactiveerd bij bepaalde gebeurtenissen, zoals onOpen(e) of onEdit(e) in Google Sheets. Deze zijn handig voor acties die plaatsvinden wanneer een gebruiker een bestand opent of wijzigt, maar ze zijn niet geschikt voor vaste tijdsintervallen.
Geïnstalleerde triggers (tijdgestuurd)
Geïnstalleerde, tijdgestuurde triggers zijn specifiek bedoeld om scripts op basis van tijd te laten draaien. Je kunt ze configureren om bijvoorbeeld elke vijf minuten, ieder uur, dagelijks of wekelijks te starten. Deze triggers zijn centraal in te stellen via het Apps Script-dashboard of via code.
Een basis-script voorbereiden
Voordat je een periodieke trigger instelt, heb je een functie nodig die je automatisch wilt laten uitvoeren. Dit kan iets eenvoudigs zijn, zoals het loggen van een tijdstempel, of een complex proces waarin data wordt verwerkt.
function mijnPeriodiekeTaak() {
var nu = new Date();
Logger.log('Script uitgevoerd op: ' + nu);
// Voeg hier jouw logica toe, bijvoorbeeld:
// - gegevens ophalen uit een spreadsheet
// - automatisch rapport opstellen
// - data doorzetten naar een andere sheet of dienst
}
Tijdgestuurde triggers instellen via de interface
De meest toegankelijke manier om een script periodiek te laten draaien is via de ingebouwde trigger-interface in de Apps Script-editor.
Stappenplan
- Open de Apps Script-editor en zorg dat je script met de gewenste functie is opgeslagen.
- Klik op het menu-item om de triggers te beheren.
- Voeg een nieuwe trigger toe en kies bij Functie om uit te voeren de functie die je periodiek wilt laten draaien, bijvoorbeeld
mijnPeriodiekeTaak. - Stel het type trigger in op tijdgestuurd.
- Kies vervolgens de frequentie: minuten, uren, dagelijks, wekelijks of maandelijks.
- Bevestig en geef de gevraagde machtigingen wanneer Google daarom vraagt.
Vanaf dat moment wordt de gekozen functie automatisch gestart volgens het ingestelde schema, zonder verdere handmatige acties.
Tijdgestuurde triggers aanmaken via code
Voor meer controle en herbruikbaarheid kun je triggers ook programmatisch aanmaken. Dit is vooral handig wanneer je dezelfde logica in meerdere projecten wilt gebruiken of triggers dynamisch wilt beheren.
Voorbeeld: dagelijkse trigger
function maakDagelijkseTrigger() {
ScriptApp.newTrigger('mijnPeriodiekeTaak')
.timeBased()
.everyDays(1)
.atHour(8) // Uitvoeren rond 08:00
.create();
}
Voorbeeld: trigger om de 15 minuten
function maakKwartierTrigger() {
ScriptApp.newTrigger('mijnPeriodiekeTaak')
.timeBased()
.everyMinutes(15)
.create();
}
Bestaande triggers bekijken en verwijderen
Om overzicht te houden is het verstandig regelmatig de bestaande triggers te controleren en oude of dubbele triggers te verwijderen.
function toonAlleTriggers() {
var triggers = ScriptApp.getProjectTriggers();
triggers.forEach(function(trigger) {
Logger.log('Trigger ID: ' + trigger.getUniqueId() +
', functie: ' + trigger.getHandlerFunction());
});
}
function verwijderAlleTriggers() {
var triggers = ScriptApp.getProjectTriggers();
triggers.forEach(function(trigger) {
ScriptApp.deleteTrigger(trigger);
});
}
Veelvoorkomende scenario's voor periodieke uitvoering
Periodieke triggers zijn breed inzetbaar. Enkele praktische voorbeelden:
- Dagelijks rapport van verkoopcijfers genereren op basis van Google Sheets-gegevens.
- Automatisch herinneringsmails versturen voor openstaande taken.
- Data synchroniseren tussen meerdere spreadsheets of met een externe API.
- Maandelijks een overzichtsdocument maken in Google Docs en vullen met actuele gegevens.
Foutafhandeling en monitoring
Bij automatische scripts is robuuste foutafhandeling essentieel. Omdat er geen gebruiker meekijkt, moet het script zelf duidelijk melden wanneer er iets misgaat.
Try-catch gebruiken
function mijnPeriodiekeTaak() {
try {
// Hoofdlogica
} catch (fout) {
Logger.log('Fout opgetreden: ' + fout);
// Optioneel: stuur jezelf een melding, bijvoorbeeld met GmailApp
// GmailApp.sendEmail('jouw-mailadres', 'Fout in Apps Script', fout.toString());
}
}
Logbestanden en uitvoeringsgeschiedenis
Gebruik de uitvoeringslog en uitvoeringsgeschiedenis in de Apps Script-omgeving om te zien of je triggers correct werken. Hier zie je of er fouten optreden en hoe lang het script draait, wat helpt bij het optimaliseren van prestaties.
Beperkingen en quota
Google Apps Script kent enkele beperkingen en quota waar je rekening mee moet houden, vooral bij periodieke scripts.
- Uitvoeringstijd: een enkele scriptuitvoering mag slechts een beperkte tijd duren, afhankelijk van het type account.
- Aantal triggers: er is een maximum aan het aantal triggers per script en per gebruiker.
- API-quotum: te veel verzoeken naar Google-diensten of externe API's kunnen tot tijdelijke blokkades leiden.
Ontwerp je script zo efficiënt mogelijk: verwerk alleen de noodzakelijke rijen, beperk het aantal reads en writes naar spreadsheets, en cache gegevens waar dat kan.
Best practices voor periodieke Apps Script-taken
- Maak functies klein en overzichtelijk: splits grote processen op in logische modules.
- Gebruik configuratiesheets: sla parameters (zoals datumbereiken of filterinstellingen) op in een aparte tab, zodat je ze kunt aanpassen zonder de code te wijzigen.
- Documenteer je code: korte toelichtingen bij functies en belangrijke logica maken onderhoud veel eenvoudiger.
- Test met een lagere frequentie: begin bijvoorbeeld met een wekelijkse uitvoering en schakel pas over naar dagelijks of elk uur wanneer alles stabiel draait.
Samenvatting
Periodieke uitvoering van Google Apps Script met tijdgestuurde triggers is een krachtige manier om terugkerende taken te automatiseren. Door een duidelijke functie te schrijven, een geschikte trigger in te stellen en aandacht te besteden aan foutafhandeling en quota, bouw je betrouwbare workflows die op de achtergrond hun werk doen. Dit levert tijdswinst op, verkleint de kans op fouten en zorgt voor consistente, voorspelbare processen binnen jouw organisatie.