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.

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