Crea tu encuesta con Google Form, genera un PDF y automatiza la respuesta a través de un correo con un PDF

En esta entrada, vamos a mostrar una manera gratuita y rápida de poder generar encuestas profesionales y enviar una respuesta a nuestros encuestados o clientes, de manera automática a través de un correo con un PDF adjunto con todas las respuestas rellenadas.

Aquí también les dejo el segmento de código que deben copiar y pegar en sus códigos.

//URL DEL DOCUMENTO TEMPLATE
var urlDocumentoPlantilla = 'URL DEL DOCUMENTO PLANTILLA';
//ID DEL DOCUMENTO TEMPLATE
var idDocumentoPlantilla = 'ID DEL DOCUMENTO PLANTILLA';
//ID DE LA CARPETA OUTPUR PDF
var outputPdfId = 'ID DE LA CARPETA DEL DOCUMENTO PDF';
//NOMBRE TEMPORAL DEL DOCUMENTO PLANTILLA
var nombreDoc = 'tmp_Respuesta de encuesta' + Utilities.formatDate(new Date(), 'es-ES', 'dd/mm/YYYY MM:hh');


function onFormSubmit(e) {
  var currentRow = e.namedValues;

  var requests = [];
  for (Key in currentRow) {
    var txt = "{{" + Key + "}}";
    var request = {
      "replaceAllText": {
        "containsText": {
          "text": txt,
          "matchCase": false,
        },
        "replaceText": currentRow[Key][0].toString()
      }
    };
    requests.push(request);
  }
  let gDocPlantilla = DocumentApp.openByUrl(urlDocumentoPlantilla);
  let newfile = DriveApp.getFileById(gDocPlantilla.getId()).makeCopy(idDocumentoPlantilla);
  newfile.setName(nombreDoc);
  Docs.Documents.batchUpdate({ 'requests': requests }, newfile.getId());


  // CONVERTIR EL ARCHIVO EN PDF
  docblob = DocumentApp.openById(newfile.getId()).getAs('application/pdf');
  docblob.setName(newfile.getName() + '.pdf');
  let outputFolderPdf = DriveApp.getFolderById(outputPdfId);
  DriveApp.createFile(docblob).moveTo(outputFolderPdf);
  
  // BORRO EL DOC TEMPORAL
  DriveApp.getFileById(newfile.getId()).setTrashed(true);

  // ENVIAR UN CORREO CON EL ARCHIVO ADJUNTO
  try{
    let htmlcontent = HtmlService.createTemplateFromFile('template_correo.html').getRawContent();
    
    MailApp.sendEmail({
      to : currentRow['Correo'][0].toString(),
      name : 'Gestor de la Encuesta',
      noReply: true,
      bcc: 'ivan.tapia@diurvanconsultores.com',
      subject: 'Correo con la respuesta de la encuestga',
      htmlBody : htmlcontent,
      attachments: [docblob.getAs(MimeType.PDF)]
    });
    Logger.log('Proceso terminado');
  }
  catch(err){
    Logger.log(err);
  }  
  return;

}

Aquí tienes un video tutorial con todos los pasos necesarios.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Necesitas ayuda? Anda escríbeme!!
Por favor, acepta nuestra política de privacidad primero para  iniciar la conversación.