Envío de PDF a partir de Respuestas de Formulario

En este video, vamos a aprender cómo enviar por correo electrónico un PDF a partir de las respuestas de un formulario de Google Forms una vez un usuario completa el formulario.

Video

Creación del Formulario y Vinculación con Google Sheets

  1. Crear el Formulario:
    • Ir a Google Sheets, abrir una hoja en blanco.
    • Ir a “Herramientas” y seleccionar “Crear formulario”.
    • Esto crea automáticamente un formulario vinculado a Google Sheets.
  2. Configurar el Formulario:
    • Recopilar las direcciones de correo electrónico.
    • Crear preguntas: Correo electrónico, Nombre, Producto (opción múltiple), Cantidad (validación de número).
  3. Vinculación y Prueba Inicial:
    • El formulario automáticamente actualiza las respuestas en Google Sheets.
    • Probar el formulario enviando una respuesta.

Configuración de Google Apps Script

  1. Abrir el Editor de Script:
    • Ir a “Extensiones” y seleccionar “Apps Script”.
    • Crear un nuevo proyecto y guardar.
  2. Crear la Función Principal:
    • Crear una función enviarPDF que toma un evento como argumento.
    • Acceder a los valores del evento para obtener los datos del formulario.
  3. Configurar Activadores:
    • Añadir un activador para ejecutar la función enviarPDF cada vez que se envíe el formulario.

Creación de la Plantilla de Google Docs

  1. Crear la Plantilla:
    • Abrir Google Docs y crear un nuevo documento.
    • Escribir un mensaje base y usar placeholders para las variables (por ejemplo, {{nombre}}, {{producto}}, {{cantidad}}).
  2. Guardar la Plantilla:
    • Guardar el documento en la misma carpeta que Google Sheets y el formulario.

Conexión y Personalización del Documento

  1. Conectar con la Plantilla:
    • Acceder a la plantilla mediante su ID en Google Apps Script.
    • Crear una copia de la plantilla para cada envío de formulario.
  2. Personalizar el Documento:
    • Reemplazar los placeholders con los valores del formulario.
    • Convertir el documento personalizado en PDF.

Enviar el PDF por Correo Electrónico

  1. Generar y Enviar el PDF:
    • Crear el PDF a partir del documento personalizado.
    • Usar GmailApp para enviar el correo electrónico con el PDF adjunto.

Ejemplo Completo del Código

function enviarPDF(e) {
  const respuestas = e.namedValues;
  const email = respuestas['Correo electrónico'][0];
  const nombre = respuestas['Nombre'][0];
  const producto = respuestas['Producto'][0];
  const cantidad = respuestas['Cantidad'][0];

  const idPlantilla = 'ID_DE_LA_PLANTILLA';
  const idCarpeta = 'ID_DE_LA_CARPETA';

  const carpeta = DriveApp.getFolderById(idCarpeta);
  const archivoPlantilla = DriveApp.getFileById(idPlantilla);
  const copiaArchivo = archivoPlantilla.makeCopy(carpeta);
  const idCopia = copiaArchivo.getId();

  const documento = DocumentApp.openById(idCopia);
  const cuerpo = documento.getBody();
  cuerpo.replaceText('{{nombre}}', nombre);
  cuerpo.replaceText('{{producto}}', producto);
  cuerpo.replaceText('{{cantidad}}', cantidad);

  documento.saveAndClose();

  const pdfBlob = copiaArchivo.getAs(MimeType.PDF);

  GmailApp.sendEmail(email, 'Prueba envío PDF', 'Aquí está tu PDF.', {
    attachments: [pdfBlob]
  });
}

function permisos() {
  DriveApp.getFolders();
  DocumentApp.openById('ID_DE_LA_PLANTILLA');
  GmailApp.getDrafts();
}

Pruebas y Ajustes

  1. Ejecutar la Función de Permisos:
    • Ejecutar la función permisos para conceder los permisos necesarios.
  2. Probar el Envío:
    • Enviar una respuesta desde el formulario y verificar que se genere y envíe el PDF correctamente.

Conclusión

Este tutorial cubre el proceso completo de creación de un formulario, vinculación con Google Sheets, creación de una plantilla de Google Docs, personalización y envío de un PDF mediante Google Apps Script. Si les gustó este video, no olviden suscribirse al canal y visitar la academia en juanesguzman.com para más tutoriales y cursos. ¡Nos vemos en la próxima!

Deja un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Pin It on Pinterest

Share This