Naar inhoud
lightbulb Welkom op de nieuwe kennisbank | We hebben de docs volledig vernieuwd met meer dan 160 features. Bekijk wat nieuw isarrow_forward

Offboarding automatiseren met Apps Script

Automatiseer offboarding met Apps Script en de Admin SDK: schors het account, draag Drive-bestanden over, ruim groepslidmaatschappen op en log elke stap, zodat uitstroom consistent en veilig verloopt.

Offboarding automatiseren met Apps Script zorgt dat het vertrek van een medewerker veilig en consistent verloopt. Handmatige offboarding is foutgevoelig: een vergeten geschorst account of een niet-overgedragen bestand is een beveiligingsrisico. In dit artikel bouw je een script dat alle stappen uitvoert en vastlegt, op basis van de Admin SDK en Workspace-services.

Waarom offboarding automatiseren

Bij vertrek moeten er veel dingen gebeuren: account schorsen, toegang intrekken, data overdragen, groepslidmaatschappen opruimen en alles documenteren. Vergeet je een stap, dan blijft mogelijk een actief account of openstaande toegang achter. Een script doet elke stap in dezelfde volgorde, faalt niet door vergeetachtigheid en laat een controleerbaar spoor na.

dangerous

Draai dit nooit zomaar op een echte medewerker

Een offboarding-script raakt productieaccounts en data van echte mensen. Test het uitsluitend op een speciaal testaccount voordat je het op een echte medewerker draait. Bouw een bevestigingsstap in, log elke actie en maak destructieve stappen zoals verwijderen pas mogelijk na een expliciete tweede goedkeuring.

Wat je nodig hebt

Voordat je begint, regel je de juiste basis:

  • Een Apps Script-project met de Admin SDK Directory-service ingeschakeld via Services.
  • Een uitvoerend account met de beheerdersrol of een aangepaste rol met rechten op gebruikers en groepen.
  • Een Spreadsheet voor het logboek, met een tabblad Offboarding-log.
  • Een apart testaccount waarop je elke functie eerst los uitprobeert.

Stap 1: het account schorsen

De eerste en belangrijkste stap is het account direct schorsen, zodat de vertrekker niet meer kan inloggen, terwijl de data behouden blijft:

function schorsAccount(email) {
  AdminDirectory.Users.update({ suspended: true }, email);
  Logger.log(email + ' geschorst.');
}
warning

Schorsen gaat altijd voor verwijderen

Schors altijd voordat je iets verwijdert. Een geschorst account blokkeert toegang maar bewaart alle data, mail en bestanden. Pas na de bewaartermijn die je organisatie hanteert, en nadat data is overgedragen, kun je overwegen het account definitief te verwijderen. Verwijderen is onomkeerbaar.

Stap 2: Drive-eigendom overdragen

Bestanden van de vertrekker moeten naar een collega of manager, anders raakt het team data kwijt. Eigendomsoverdracht voor hele accounts loopt via de Data Transfer-functionaliteit, maar losse bestanden draag je over met de Drive-service:

function draagBestandenOver(vertrekkerEmail, ontvangerEmail) {
  const bestanden = DriveApp.searchFiles(
    '"' + vertrekkerEmail + '" in owners');
  while (bestanden.hasNext()) {
    const bestand = bestanden.next();
    bestand.addEditor(ontvangerEmail);
    Logger.log('Gedeeld met ' + ontvangerEmail + ': ' + bestand.getName());
  }
}

Voor volledige eigendomsoverdracht van alle data gebruik je de Admin Data Transfer API; die zet Drive, Agenda en meer in een keer over naar een ontvanger. Het voorbeeld hierboven zorgt dat de ontvanger in elk geval bij de bestanden kan.

lightbulb

Eigendom versus toegang

addEditor geeft de ontvanger bewerkrechten, maar de vertrekker blijft eigenaar. Wil je echt het eigenaarschap overzetten, gebruik dan de Data Transfer API of, voor losse bestanden binnen dezelfde organisatie, een permissie met rol owner via de Drive API. Let op: bestanden in gedeelde Drives kennen geen persoonlijk eigenaarschap en hoef je niet over te dragen.

Stap 3: groepslidmaatschappen opruimen

De vertrekker zit vaak in meerdere Google Groups die toegang en mail regelen. Verwijder die lidmaatschappen:

function verwijderUitGroepen(email) {
  const groepen = AdminDirectory.Groups.list({ userKey: email }).groups || [];
  groepen.forEach(function(groep) {
    AdminDirectory.Members.remove(groep.email, email);
    Logger.log('Verwijderd uit ' + groep.email);
  });
}

Stap 4: alles vastleggen in een logboek

Elke offboarding hoort traceerbaar te zijn. Schrijf de uitgevoerde stappen naar een logboekblad:

function logOffboarding(email, stap) {
  const blad = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Offboarding-log');
  blad.appendRow([new Date(), email, stap, Session.getActiveUser().getEmail()]);
}

Zo zie je later precies wie wat wanneer deed, wat belangrijk is voor compliance.

De stappen op een rij

Stap Wat het doet Doel
Schorsen Blokkeert direct de toegang met suspended: true Inloggen onmogelijk, data blijft behouden
Overdragen Geeft een collega toegang tot de bestanden Team raakt geen werk kwijt
Opruimen Verwijdert groepslidmaatschappen en toegang Geen openstaande rechten meer
Loggen Legt elke stap vast met tijdstip en uitvoerder Controleerbaar spoor voor compliance

Een offboarding-script veilig draaien

  1. Test elke functie los op een speciaal testaccount.
  2. Bouw een hoofdfunctie die de stappen in vaste volgorde aanroept.
  3. Voeg een bevestigingsstap toe die het e-mailadres laat herhalen.
  4. Draai de offboarding en controleer het logboek op fouten.
  5. Verifieer in de Admin-console dat het account geschorst is en de toegang weg is.
Moet ik het account meteen verwijderen?

Nee. Schors het eerst en bewaar de data volgens je bewaarbeleid. Verwijderen is definitief en doe je pas na overdracht en na het verstrijken van de bewaartermijn.

Hoe draag ik alle data in een keer over?

Voor volledige eigendomsoverdracht gebruik je de Admin Data Transfer API, die Drive, Agenda en meer overzet naar een ontvanger. Het Drive-voorbeeld in dit artikel regelt toegang, niet volledig eigendom.

Kan ik een automatisch antwoord instellen?

Ja, via de Gmail-instellingen van het account met de juiste rechten, of door een vakantiemelding te configureren voordat je het account schorst.

Hoe weet ik zeker dat alles is uitgevoerd?

Lees het offboarding-logboek en controleer in de Admin-console de accountstatus en de groepslidmaatschappen. Bouw eventueel een verificatiefunctie die dit automatisch nacheckt.

Waarom faalt de AdminDirectory-aanroep met een foutmelding over rechten?

Meestal is de Admin SDK Directory-service niet ingeschakeld onder Services, of mist het uitvoerende account de beheerdersrechten. Controleer beide en zorg dat je het script draait als een account met de juiste rol.

Volgende stap

Offboarding bouwt voort op bulk-gebruikersbeheer. Beveilig en onderhoud je beheerscripts met de richtlijnen uit best practices.