# E-mailcampagnes via Workspace ## E-mailcampagnes vanuit Workspace Voor kleine e-mailcampagnes tot ongeveer 500 ontvangers is Google Workspace een volwaardige oplossing zonder extern e-mailmarketingplatform. Voor grotere lijsten of geavanceerde automatisering (drip-sequences, A/B-testen, open-rate tracking) is een platform als Mailchimp of Klaviyo beter geschikt. Dit artikel beschrijft de Workspace-aanpak: simpel, veilig en zonder extra kosten. Je beheert de verzendlijst in Sheets, schrijft de tekst in Gmail en verstuurt gepersonaliseerd via Apps Script. :::warn title="Houd je aan de verzendlimiet en de AVG" Een Google Workspace-account mag via Apps Script maximaal **1.500 ontvangers per dag** bereiken (gratis Gmail-accounts slechts 100 per dag). De teller reset 24 uur na de eerste verzending. Stuur nooit e-mail naar mensen die daar geen toestemming voor hebben gegeven (AVG/GDPR). ::: ## Verzendlijst beheren in Sheets Maak een Sheets-bestand **E-maillijst** met deze kolommen: | Naam | E-mail | Segment | Aangemeld op | Actief | Voorkeur | Verzonden op | |---|---|---|---|---|---|---| | Jan de Vries | jan@bedrijf.nl | Enterprise | 2024-01-15 | JA | NL | | Waar de kolommen voor dienen: - **Actief**: gebruik `JA`/`NEE` om afmeldingen bij te houden. - **Segment**: voor gesegmenteerde campagnes (bijvoorbeeld Enterprise of MKB). - **Voorkeur**: taal- of contentvoorkeur per ontvanger. - **Verzonden op**: hierin logt het script de verzendtijd, zodat je dubbele verzending voorkomt. Voeg een filter toe op **Actief = JA** zodat je altijd op de juiste lijst stuurt. ## E-mailsjabloon schrijven in Gmail Maak een sjabloon in Gmail via **Instellingen > Geavanceerd > Sjablonen inschakelen**. Schrijf de e-mail met variabeleplekken die je later in het script vervangt: ``` Onderwerp: [VOORNAAM], speciaal aanbod voor jou Hallo [VOORNAAM], Ik schrijf je als [KLANTSEGMENT]-klant... ``` ## Apps Script voor gepersonaliseerde bulkmail Open Apps Script via **Extensies > Apps Script** in je Sheets-bestand en plak onderstaande functie. Pas de spreadsheet-ID, de tabbladnaam en de kolomposities aan op jouw lijst. ```javascript function stuurCampagne() { var ss = SpreadsheetApp.openById('LIJST_SHEETS_ID'); var sheet = ss.getSheetByName('Ontvangers'); var data = sheet.getDataRange().getValues(); var onderwerp = 'Exclusief aanbod voor onze partners'; for (var i = 1; i < data.length; i++) { var naam = data[i][0]; var email = data[i][1]; var actief = data[i][4]; if (actief !== 'JA') continue; var bericht = [ 'Hallo ' + naam + ',', '', 'We hebben een speciaal aanbod voor je...', '', 'Met vriendelijke groeten,', 'Cloud Captains Team', '', 'Afmelden: stuur een e-mail naar afmelden@bedrijf.nl' ].join(' '); GmailApp.sendEmail(email, onderwerp, bericht, { name: 'Cloud Captains Team', replyTo: 'contact@bedrijf.nl' }); sheet.getRange(i + 1, 7).setValue(new Date()); } } ``` De regel `sheet.getRange(i + 1, 7).setValue(new Date())` schrijft de verzendtijd weg in kolom 7 (**Verzonden op**). Zo weet je precies welke ontvangers de mail al hebben gekregen. :::tip title="Test eerst, bewaak je quota" Roep `MailApp.getRemainingDailyQuota()` aan om te zien hoeveel ontvangers je vandaag nog mag mailen. Handig om vooraf te checken of je hele lijst binnen de dagelijkse limiet past. ::: ## HTML-e-mails versturen Voor een opgemaakte e-mail met logo en knoppen gebruik je de `htmlBody`-optie. Geef altijd ook een platte-tekstversie mee als vierde argument, zodat clients zonder HTML-weergave de mail tonen. ```javascript var htmlBericht = '

Exclusief aanbod

' + '

Hallo ' + naam + ',

' + '

We hebben een speciaal aanbod...

' + 'Bekijk aanbod'; var platteTekst = 'Hallo ' + naam + ', we hebben een speciaal aanbod. Bekijk: https://jouwsite.nl/aanbieding'; GmailApp.sendEmail(email, onderwerp, platteTekst, { htmlBody: htmlBericht, name: 'Cloud Captains Team' }); ``` :::howto title="Zo verstuur je je eerste campagne" 1. Vul je Sheets-verzendlijst en zorg dat de **Actief**-kolom klopt. 2. Open Apps Script via **Extensies > Apps Script** in het Sheets-bestand. 3. Plak het script en pas de variabelen aan (`LIJST_SHEETS_ID`, tabbladnaam, onderwerp). 4. Voer het script eerst uit met **slechts een testrij** in je lijst. 5. Controleer of de testmail correct aankomt en er goed uitziet. 6. Activeer alle rijen en voer het script opnieuw uit. ::: ## Afmeldingen beheren Voeg onderaan elke e-mail een afmeldlink toe die verwijst naar een Google Formulier: ``` Afmelden: https://forms.gle/[JOUW_FORM_ID] ``` Koppel het afmeldformulier aan je Sheets-verzendlijst. Schrijf vervolgens een Apps Script dat bij elke formulierinzending het ingevulde e-mailadres opzoekt en de bijbehorende rij op `Actief = NEE` zet. Zo blijft je lijst automatisch AVG-proof. :::faq ### Kan ik open-rates bijhouden met deze methode? Niet zonder een externe tracking-pixel. Apps Script logt alleen of de mail succesvol is verzonden, niet of de ontvanger hem heeft geopend. Voor betrouwbare open-rate tracking heb je een gespecialiseerd e-mailplatform nodig. ### Hoe voorkom ik dat mijn e-mails als spam belanden? Zorg voor een correcte SPF-, DKIM- en DMARC-configuratie van je domein (in te stellen via de Workspace Admin Console). Stuur alleen naar opted-in adressen, gebruik een herkenbaar afzenderadres en vermijd spamtriggers zoals hoofdletters in de onderwerpregel. ### Is er een dagelijkse limiet? Ja. Workspace-accounts mogen via Apps Script tot 1.500 ontvangers per dag bereiken, gratis Gmail-accounts slechts 100. Voor grotere lijsten splits je de verzending over meerdere dagen of zet je een dagelijkse trigger op. ### Mag ik koude e-mail sturen via deze methode? Koude e-mail is marketingtechnisch minder effectief en juridisch gevoelig. Zorg altijd voor een legitieme grondslag (toestemming, bestaande relatie of gerechtvaardigd belang) conform de AVG, en bied in elke mail een duidelijke afmeldmogelijkheid. ### Wanneer kan ik beter een echt e-mailplatform gebruiken? Vanaf ongeveer 500 ontvangers, of zodra je drip-sequences, A/B-testen of uitgebreide statistieken wilt. Tools als Mailchimp of Klaviyo zijn dan efficienter dan handmatig beheer in Sheets en Apps Script. :::