Créer un formulaire via Google Drive est un jeu d’enfant, mais les fonctionnalités semblent parfois un peu basiques. Comment recevoir en temps réel les données saisies par les utilisateurs ?
Les formulaires Google représentent un des outils gratuits et pratiques que j’utilise le plus au boulot. Il est simple d’usage et extrêmement rapide à déployer sur un site Intranet ou Internet. Les données sont facilement récupérables et exploitables sur un tableur Excel, on peut les partager avec des collègues, bref l’efficacité à la Google.
Sondages, questionnaires et inscriptions à un événement constituent mes principales utilisations. Une question revient souvent : comment être informé à chaque fois qu’un formulaire est validé ?
Beaucoup d’entre vous connaissent la fonction Notification : vous recevez, immédiatement ou une fois par jour, un email vous informant de l’envoi d’un formulaire. Il existe même quelques options pratiques comme le montre la copie d’écran ci-dessous.
C’est bien beau mais je ne reçois qu’un message et je dois cliquer sur le lien pour accéder aux infos saisies par les utilisateurs. C’est nul !
Comment recevoir les données par email
C’est là que les scripts de Google viennent compléter les fonctionnalités un peu basiques de l’outil.
Reprenons étape par étape
1. Créer un formulaire sur Google Drive comme ci-dessous
2. Ouvrez le tableau des réponses créé automatiquement, qui porte le même nom que votre formulaire suivi de (réponses)
3. Cliquer sur Outils, éditeur de scripts, choisissez « Créer un script pour => Projet vide« : supprimer tout le contenu et le remplacer par le code ci-dessous.
/* Send Form by Email */ /* For customizations, contact the developer at [email protected] */ /* Tutorial: http://www.labnol.org/?p=20884 */ function Initialize() { var triggers = ScriptApp.getScriptTriggers(); for(var i in triggers) { ScriptApp.deleteTrigger(triggers[i]); } ScriptApp.newTrigger("SendGoogleForm") .forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet()) .onFormSubmit() .create(); } function SendGoogleForm(e) { try { // You may also replace this with another email address var email = Session.getActiveUser().getEmail(); // Optional but change the following variable // to have a custom subject for Google Docs emails var subject = "Google Docs Form Submitted"; var s = SpreadsheetApp.getActiveSheet(); var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0]; var message = ""; // Credit to Henrique Abreu for fixing the sort order for(var i in headers) { message += headers[i] + ' :: '+ e.namedValues[headers[i]].toString() + "\n\n"; } message += "Sheet URL :: " + SpreadsheetApp.getActiveSpreadsheet().getUrl() + "\n"; // This is the MailApp service of Google Apps Script // that sends the email. You can also use GmailApp here. MailApp.sendEmail(email, subject, message); } catch (e) { Logger.log(e.toString()); } } /* For support, contact [email protected] */
4. Enregistrer en donnant le nom de votre choix au projet.
5. Cliquer ensuite sur Exécuter => Initialize et accepter la demande d’autorisation proposée sur l’écran suivant
C’est fini ! Vous recevrez dorénavant un message avec l’ensemble des données saisies.
Source : ce billet est une traduction/adaptation de l’excellent billet d’Amit Agarwal, auteur émérite de l’excellent blog Labnol que je vous recommande chaleureusement !