20 augustus 2013

Ontvangstbevestiging en afschrift van een Google formulier

Al eerder heb ik laten zien hoe je met behulp van een beetje script heel veel kunt doen met een Google formulier, maar de scripts die ik nu heb zijn te mooi en te simpel om niet even te delen!

Het eerste script zorgt ervoor dat je zelf een afschrift krijgt zodra iemand een formulier dat jij online hebt gezet heeft ingevuld met daarin alle gegevens + een link naar de spreadsheet. Zoals je ziet bestaat het script maar uit een paar regels. Plak de code in je scripteditor, stel de trigger in, autoriseer en klaar ben je al!
Klinkt dit ingewikkeld? Bekijk dan deze screencast en alles word je duidelijk!

In principe hoef je aan onderstaand script niets te veranderen en kun je het zo overnemen. Slim is wel om het onderwerp even aan te passen aan het betreffende formulier als je de routine heel vaak gaat gebruiken voor veel verschillende formulieren. Dan houd je controle over wat waarbij hoort.

Code voor het ontvangen van een afschrift:
function AfschriftOntvangen(e) 
{  
    // Dit genereert je eigen Gmail adres
    var email = Session.getActiveUser().getEmail();

    // Onderwerp kan worden aangepast
    var onderwerp = "Ingevuld formulier";
    var s = SpreadsheetApp.getActiveSheet();
    var velden = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];    
    var bericht = "";    
    for(var i in velden) {
      bericht += velden[i] + ': '+ e.namedValues[velden[i]].toString() + "\n\n"; 
    }

    // Dit genereert de url naar de spreadsheet
    bericht += "Sheet URL: " + SpreadsheetApp.getActiveSpreadsheet().getUrl(); 

    // MailApp service van Google Apps Script verzendt het mailtje
    MailApp.sendEmail(email, onderwerp, bericht);

    // Bekijk de screencast met uitleg: http://youtu.be/jErzbR1Wtyw
}
Klik in het kader om de code te selecteren
Het tweede script zorgt ervoor dat de invuller een ontvangstbevestiging krijgt van wat hij/zij heeft ingevuld én dat jij ook een afschrift ontvangt.
Zoals je ziet is het script daarvoor iets aangepast. Belangrijk is in dit geval dat je weet in welke kolom het e-mail adres wordt ingevuld. Anders zal de invuller natuurlijk nooit een mailtje ontvangen. Daarvoor tel je de kolommen waarbij je begint bij 0 (=tijdstempel).
Ook hier geldt dat je het beste even het onderwerp kunt aanpassen en je kunt het bericht een andere startzin meegeven als je wilt.  \n\n zorgt voor twee regeleinden in het mailtje.

Code voor het versturen van een ontvangstbevestiging en ontvangen van een afschrift:
function Ontvangstbevestiging(e) 
{  
    // [2] moet overeenkomen met het veld waar e-mail adres wordt ingevuld
    var email = e.values[2];
  
    // Dit genereert je eigen Gmail adres
    var carbonCopy = Session.getActiveUser().getEmail();
    
    // Onderwerp kan worden aangepast
    var onderwerp = "Ontvangstbevestiging voor...";  
    
    var s = SpreadsheetApp.getActiveSheet();
    var velden = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];    
    var bericht = "Dit is wat je hebt ingevuld:\n\n";    
    
    for(var i in velden) {
    bericht += velden[i] + ': '+ e.namedValues[velden[i]].toString() + "\n\n"; 
    }
    
    // MailApp service van Google Apps Script verzendt het mailtje    
    MailApp.sendEmail(email, onderwerp, bericht, {cc: carbonCopy});

    // Bekijk de screencast met uitleg: http://youtu.be/jErzbR1Wtyw
}
Klik in het kader om de code te selecteren

Geen opmerkingen:

Een reactie plaatsen