Veel kleine organisaties beginnen met een paar simpele Google Apps Scripts om e-mails te versturen. Ook bij Baby Groente Tas werkten we in het begin zo: een handvol scripts dat elke week automatisch mails stuurde naar ouders over de groentetas.

Dat werkte prima… totdat het project groter werd. Toen kwamen de beperkingen boven water:

  • Iedere tekstwijziging moest via IT.
  • Alleen Nederlands werd ondersteund.
  • Geen logging buiten de console.
  • Geen onderscheid tussen test- en productiemails.
  • Scripts liepen vast als er te veel ontvangers waren (Google Scripts executie duur time-outs)

Daarom hebben we stap voor stap gewerkt aan een robuuste oplossing waarin de stichting nu zelf de regie heeft over content en uitvoering.

Hier lees je hoe we dat hebben gedaan.


💡 De uitdaging

Aan de business-kant was er behoefte aan:

  • Meertaligheid voor verschillende doelgroepen.
  • Makkelijk teksten aanpassen zonder een ontwikkelaar te hoeven bellen.
  • Duidelijke logging en controle over verzonden mails.

 

Aan de IT-kant was de wens:

  • Minder losse scripts.
  • Een herbruikbare codebasis.
  • Betrouwbare foutafhandeling en inzicht.

 


🛠️ Van hardcoded tekst naar data-gedreven content

In de eerste versie stonden onderwerpregels en teksten hardcoded in de scripts. Een komma veranderen betekende:

  • Scripts openen,
  • Tekst zoeken,
  • Opslaan en publiceren,
  • Weer autoriseren.

 

In de nieuwe versie wordt alle content uit Google Sheets en rijke opmaak templates gehaald

  1. Eén rij per gemeente,
  2. Kolommen per taal,
  3. Mergevelden zoals [voornaam], [gemeente], [survey] en [slotzin].
  4. Templates die de klantenservice zelf kan opmaken in de huisstijl

 

Resultaat: de klantenservice kan nu zelf teksten aanpassen, nieuwe talen toevoegen en onderwerpen beheren. Zonder IT. Volledig data-driven dus, waarbij de scripts waarschuwen als de data kwaliteit niet voldoende is.

 


🌍 Meertaligheid als basis

Het systeem ondersteunt inmiddels 7 talen:
✅ Nederlands
✅ Engels
✅ Turks
✅ Arabisch
✅ Pools
✅ Tigrinya
✅ Oekraïens

Nieuwe talen toevoegen is simpel: een extra kolom in de spreadsheet en de templates voor die taal maken en klaar.


🧠 Robuuste IT-structuur

Naast de contentvernieuwing is ook de technische kant grondig verbeterd:

  • Alle logica zit nu in een handvol generieke functies, de variaties komen uit de data.
  • Foutafhandeling is standaard en helder: ❌ Onderwerp niet gevonden voor gemeente Zwolle in tabblad week5.
  • Er is een retry-mechanisme bij het openen van spreadsheets. Soms kan Google een Sheet gewoon even niet openen, vroeger einde verhaal, nu een retry.
  • Elke actie wordt automatisch gelogd in een speciaal tabblad.

 

Zo weten gebruikers precies wat er gebeurt en kunnen ze zelf oplossen als iets ontbreekt.


⚙️ Batchverwerking voorkomt time-outs

Met groei kwam een nieuw probleem: de executie tijd limiet op scripts die te lang draaien. Daarom hebben we batchverwerking toegevoegd:

  • Mails worden in kleine porties verstuurd.
  • De offset wordt opgeslagen.
  • Een nieuwe run pakt automatisch het volgende deel.

 

Geen vastlopers meer.


✋ Handmatig mailen via een formulier

Voor losse gevallen (bijvoorbeeld een klant die geen mail ontvangen heeft) is er een Google Formulier waarmee de klantenservice zelf kan:

  • Gemeente, taal en mailtype kiezen,
  • Een startdatum opgeven (voor weekberekening),
  • De omgeving selecteren (Acceptatie of Productie),
  • Een testadres invullen,
  • Optioneel een bijlage toevoegen.

 

Alles gebeurt automatisch: verzenden, logging en mergevelden vullen. Uiteraard gebruikt het formulier dezelfde generieke functies.


✨ De grootste winst

Door deze veranderingen is het mailingproces niet alleen efficiënter en foutbestendiger geworden, maar ook een stuk vriendelijker voor de gebruikers. De stichting heeft nu:

✅ Volledige controle over content, in alle talen.
✅ Minder afhankelijkheid van IT.
✅ Helder inzicht in alle verzonden mails.
✅ Een schaalbare oplossing waar nog jaren op gebouwd kan worden.

 


🎯 Ook toe aan meer controle en minder IT-afhankelijkheid in je processen?

Begin klein, maar zorg dat je:

  • Data en logica strikt scheidt,
  • Alles generiek opzet,
  • Foutmeldingen en logging standaard maakt,
  • Batchverwerking overweegt voor groei.

Zo bouw je stap voor stap een systeem dat niet alleen werkt, maar ook vertrouwen geeft.


🙌 Dank voor het lezen!

Wil je sparren over hoe je zoiets opzet? Stuur me gerust een bericht, ik ben thuis in online EN oplossingen.

 

0

Je winkelwagen