Notificación cuando alguien rellena un formulario con Google Apps Script


Una cosa que a veces puede ir muy bien es que cada vez que alguien responda a un formulario se pueda enviar un correo a "alguien" con cierta información de la respuesta. Ese alguien puede ser un administrador, un gestor, o el mismo que ha enviado la respuesta. La información que enviemos  puede ser lo que queramos: un resumen de las respuestas, un PDF, el acceso a una carpeta de Drive,etc...

Con Google Apps Script podemos enviar un correo cuando alguien hace un submit en un GoogleForm y lo mejor de todo, es que hacerlo es muy sencillo!

Aquí tenéis el código:

function InstallTrigger()
{
    var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
    var triggers = ScriptApp.getUserTriggers(spreadsheet);
    
    for(var t = 0 ; t < triggers.length ; ++t )
    {
      ScriptApp.deleteTrigger(triggers[t]);
    }
    
    ScriptApp.newTrigger("SendMessageWhenSubmit")
             .forSpreadsheet(spreadsheet.getId())
             .onFormSubmit()
             .create();
}  

function SendMessageWhenSubmit(e)
{
    var values = e.values;
           
    for(var i = 0 ; i < values.length ; ++i)
    {
       if(values[i] == "yes" || values[i] == "Yes" || values[i] == "YES")
       {
          SendMessage();
          break;
       }
    }
}

function SendMessage()
{
  var html = "<html>";
  html += "<body>";
  html += "<h1>Report</h1>";
  html += "<p>Test</p>";
  html += "</body>";
  html += "</html>";
  var title = "Titulo de ejemplo";
  MailApp.sendEmail("bablablabl@gmail.com", title, '', {
           name: title,
           subject: "Report",
           htmlBody: html,
          // attachments: [pdfFile.getAs(MimeType.PDF)] //Aqui pondriamos los adjuntos si los necesitaramos
         });
}

El trigger que nos informará de cuando alguien ha rellenado un formulario es un trigger instalable . Si ejecutais els InstallTriggers todo el trabajo lo tendreis hecho.

La función SendMessageWhenSubmit será llamada cuando alguien responda al formulario con el parámetro e que contendrá la información de la respuesta. En este ejemplo concreto enviaremos un correo cuando  alguien responda a alguna pregunta con un "yes", pero la condición la podríamos hacer como quisiéramos.

Como podéis observar el código es muy sencillo y es extremadamente fácil de adaptar a lo que necesitéis.

No vaciléis en hacerme llegar vuestras dudas.

Nos vemos!


2 comentarios:

Tal vez te interese