Formulaires Google : comment recevoir les données par email

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.

notif-google-forms

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)

notif-google-forms-reponses

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 amit@labnol.org */
 /* 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 amit@labnol.org */

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.

notif-google-forms-reponses-email

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 !

Lire aussi sur ce sujet

Ergonomie et usabilité : créer des formulaires efficaces

Un générateur de formulaires en ligne qui donnent envie de répondre !

Rubriques : Outils

Auteur : Chob

Passionné par le digital sous toutes ses formes : médias sociaux, web design, emarketing, outils utiles, blogging, open data, dataviz...

587 articles, certains bons, d'autres moins ;-)


Profil Google+

Médias sociaux et recrutement en 2014 : ce qu’il faut savoir » « Une vidéo pour faire découvrir la formation aux métiers de la communication digitale
15 Commentaires
  1. merci pour le scrypt. J’ai cependant un soucis. J’essais d’incorporer (embed)3 formulaires sur un site web. Le scrypt marche très bien pour le premier, mais pas pour les deux autres :(

  2. Bonjour,
    Merci pour ce script qui m’a bien servie.

    Mon questionnaire comprend une cinquantaine de questions. Certaines ne sont pas obligatoires. Est-il possible de recevoir par mail uniquement les champs que l’utilisateur a renseigné?

    Merci par avance

    • Chob

      6 février 2015 — 12 h 23 min

      Désolé, aucune idée…

    • Il est tout à fait possible de le faire, il suffit juste de tester la valeur du champ et de vérifier que celle-ci contient bien une chaîne de caractère (non nulle).


      // Credit to Henrique Abreu for fixing the sort order
      for(var i in headers) {
      if( headers[i].length ) { // EDIT : Si le champ contient bien une valeur.
      message += headers[i] + ' :: '+ e.namedValues[headers[i]].toString() + "\n\n";
      }
      }

  3. Moi, je voudrais utiliser ce script, mais d’une autre façon….
    J’voudrais le déclencher manuellement, afin d’envoyer un mail à celui qui a rempli le formulaire afin de validé ou non sa réponse.

    Merci.

  4. Bonjour,

    je voudrais savoir s’il est possible de mettre à jour les données d’un formulaire un an après introduction.
    ex : je crée une fiche signalétique pour un club sportif avec des données de contact et je voudrais chaque année ou quand c’est nécessaire que les membres puissent mettre à jour leurs données personnelles.

    Merci d’avance

    David

    • Chob

      20 octobre 2014 — 21 h 10 min

      Bonjour David,
      Désolé, je ne vois pas comment faire. Il faudrait pouvoir partager des droits de modification sur certaines lignes tout en masquant les autres… Moi, je le ferai à la main en envoyant à chaque membre la ligne qui le concerne et en lui demandant de confirmer ou de modifier les données.

  5. Bonjour,

    J’ai tout fait comme ci-dessus mai je ne reçois aucune réponse dans ma boite mail.

    • Chob

      13 juin 2014 — 21 h 32 min

      Bonjour,
      Peut-être vérifier dans les spams ? Il arrive également que Google bloque certains formulaires qui ne respectent pas certaines règles (qui demandent des mots de passe par ex.)…

  6. Bonjour,
    Je souhaite pour ma part faire un script afin que les personnes qui remplissent le formulaire reçoivent un email de confirmation (avec les réponses du formulaire).
    Je n’arrive pas à autoriser le script depuis la nouvelle version de 2014.
    Pensez-vous pouvoir m’aider ?!

    Merci bcp d’avance !

    Voici ci-dessous ce que je souhaiterais :

    function onFormSubmit(e) {
    var horodateur = e.values[0];
    var nom = e.values[1];
    var civilite = e.values[2];
    var date = e.values[3];
    var adresse = e.values[4,5,6,7,8];
    var telephone = e.values[9,10];
    var email = e.values[11];
    var ateliers = e.values[13];
    var disponibilite = e.values[14];
    var niveau = e.values[15];
    var remarques = e.values[16];
    var subject = « Confirmation Rock School »;
    var body = « *** CONSERVEZ CE MESSAGE : CECI EST VOTRE CONFIRMATION ***, »+’\n’+’\n’+
    « Pré-inscription Rock School enregistrée le : « +horodateur+’\n’+’\n’+
    « Voici les informations que vous avez saisies dans le formulaire »+’\n’+
    « Nom prénom : « +nom+’\n’+
    « Civilité : « +civilite+’\n’+
    « Date de naissance : « +date+’\n’+
    « Adresse : « +adresse+’\n’+
    « Téléphone : « +telephone+’\n’+
    « Email : « +email+’\n’+
    « Ateliers : « +ateliers+’\n’+
    « Disponibilités : « +disponibilite+’\n’+
    « Niveau : « +niveau+’\n’+
    « Remarques : « +remarques+’\n’+’\n’+
    « *** CECI EST UN ENVOI AUTOMATIQUE. NE PAS REPONDRE A CE MESSAGE. POUR PLUS D’INFOS *** »
    MailApp.sendEmail(email, subject, body);
    }

  7. dans les autorisations ils nous demandent si l’appli. peut gérer nos courrier, consultation et suppression, c’est risqué comme script non ?

    • Chob

      8 avril 2014 — 21 h 50 min

      Il faut être vigilant, c’est vrai. Mes boîtes gmail (perso et pro) me servent précisément pour ce type d’usages…

      • C’est risqué pour celui/celle qui copie-colle du code dans son script sans savoir vraiment ce que ça fabrique.
        Pour celui/celle qui comprend à peu près le code, pas de problème.

        Au pire, il suffit de demander sur un forum. C’est pas bien compliqué comme langage et ça ressemble très fort au JavaScript.

Les commentaires sont fermés, mais n'allez pas induire que cela reflète mon caractère.

Copyright © 2017 Choblab | Mentions légales

Haut ↑