Cómo enviar correos personalizados y con HTML desde Google Sheets

En este tutorial vamos a aprender a enviar correos electrónicos más ricos y personalizados desde Google Sheets usando Google Apps Script. La idea es que, además de enviar un texto simple, podamos incluir adjuntos, enlaces, imágenes y formato HTML para que nuestros correos sean mucho más atractivos y profesionales. Esto complementa y mejora todo lo que hemos visto en tutoriales anteriores sobre envíos de correos sencillos, con plantilla o masivos.

Si quieres ver el paso a paso en video, aquí te lo dejo para que lo sigas con calma. Ahora sí, vamos a meternos en el código y te voy a mostrar cómo convertir un mensaje de texto simple en un correo con formato HTML, para que puedas incluir negritas, itálicas, listas, enlaces, imágenes y hasta adjuntos vía Drive.

Creando la función para enviar correos con HTML

Primero, vamos a crear una función que reciba los parámetros básicos: correo electrónico, asunto y mensaje, pero además vamos a agregar el mensaje en formato HTML. Esto nos permitirá enviar correos que tengan un cuerpo enriquecido, y no solo texto plano. La función básica para enviar correos en Google Apps Script es GmailApp.sendEmail, que acepta varias formas de argumentos.

function enviarMail(email; asunto; mensaje; mensajeHTML) {
  GmailApp.sendEmail(email; asunto; mensaje; {
    htmlBody: mensajeHTML
  });
}

En este código, mensaje es el texto plano que se mostrará solo si el cliente de correo no soporta HTML (algo muy raro hoy en día), y mensajeHTML es el cuerpo enriquecido que queremos enviar. Es buena práctica siempre incluir ambos.

Construyendo el mensaje HTML dinámico

Ahora necesitamos construir el cuerpo HTML que vamos a enviar. Para esto podemos usar un editor HTML online si no sabes programar, o escribir directamente el código. Lo importante es entender que HTML trabaja con etiquetas para dar formato, por ejemplo:

<strong> para negrita, <i> para itálica, <h1> para encabezados grandes, <ul> y <li> para listas, <a> para enlaces, y <img> para imágenes.

Aquí tienes un ejemplo sencillo de cómo crear un mensaje HTML personalizado con variables que vienen de una fila de datos en Sheets:

function crearMensajeHTML(datos) {
  var mensajeHTML = '<h1>Estimado ' + datos[1] + '</h1>' +
                    '<p><strong>Muchas gracias por su compra.</strong></p>' +
                    '<ul>' +
                    '<li>Producto: ' + datos[2] + '</li>' +
                    '<li>Valor: ' + datos[3] + '</li>' +
                    '<li>Fecha: ' + datos[4] + '</li>' +
                    '<li>Tipo de pago: ' + datos[5] + '</li>' +
                    '</ul>' +
                    '<p>Para más información, visita <a href="https://miweb.com">nuestra web</a>.</p>' +
                    '<img src="URL_DE_LA_IMAGEN" width="200" height="200" alt="Logo">';
  return mensajeHTML;
}

En este ejemplo, datos es un arreglo con la información de la fila activa en nuestra hoja de cálculo, donde datos[1] es el nombre, datos[2] el producto, y así sucesivamente. Puedes modificar el HTML para incluir más elementos, enlaces o imágenes.

Cómo incluir enlaces y adjuntos desde Google Drive

Un truco para enviar adjuntos sin complicarte con archivos es subirlos a Google Drive y compartirlos con enlace público. Luego, simplemente incluyes ese enlace en tu mensaje HTML como un link. Por ejemplo:

var linkDrive = 'https://drive.google.com/file/d/ID_DEL_ARCHIVO/view?usp=sharing';
var mensajeHTML = '<p>Aquí está tu portafolio: <a href="' + linkDrive + '">Descargar PDF</a></p>';

Así, el receptor podrá hacer clic y descargar el archivo sin que tengas que adjuntarlo físicamente en el correo, lo cual es más eficiente y evita problemas con el tamaño del correo.

Insertando imágenes en el correo

Para insertar imágenes, lo ideal es que estén alojadas en una URL pública. Puedes usar Fotos de Google o tu sitio web para subirlas y copiar la dirección de la imagen. Luego la insertas en el HTML así:

<img src="URL_DE_LA_IMAGEN" width="200" height="200" alt="Descripción de la imagen">

Recuerda ajustar el tamaño con los atributos width y height para que la imagen no se vea demasiado grande o pequeña. Así tu correo tendrá una mejor presentación visual.

Integrando todo en el envío masivo e individual

Finalmente, debes modificar tus funciones de envío masivo y envío individual para que llamen a esta nueva función que envía correos con HTML. Por ejemplo, en el envío masivo obtienes los datos de cada fila, creas el mensaje HTML con crearMensajeHTML(datos) y luego llamas a enviarMail(email; asunto; mensaje; mensajeHTML).

Así, cada correo que envíes podrá tener un formato personalizado, con enlaces, imágenes y hasta adjuntos vía Drive, lo que mejora mucho la experiencia de tus contactos y clientes.

Recomendaciones finales y buenas prácticas

Un par de consejos para que tus envíos sean seguros y efectivos:

  • Incluye siempre el mensaje en texto plano además del HTML para asegurar compatibilidad.
  • Antes de enviar correos masivos, haz pruebas individuales para verificar que todo se ve bien.
  • Agrega confirmaciones en botones de envío para evitar enviar correos por error.
  • Usa enlaces públicos para adjuntos y verifica los permisos para que tus contactos puedan acceder sin problema.

Con estas bases, puedes empezar a crear sistemas de envío de correos personalizados desde Google Sheets que te ahorrarán tiempo y mejorarán la comunicación con tu audiencia.

Conclusión

En resumen, aprendimos a:

  • Crear una función para enviar correos con mensaje en texto plano y HTML.
  • Construir mensajes HTML personalizados usando variables de Google Sheets.
  • Incluir enlaces a archivos en Drive como adjuntos prácticos.
  • Insertar imágenes en el cuerpo del correo para mejorar la presentación.
  • Modificar funciones de envío masivo e individual para usar estos mensajes enriquecidos.

Con estos pasos, tus correos dejarán de ser simples textos y se convertirán en comunicaciones profesionales, ricas en contenido y visualmente atractivas. Lo mejor es que todo esto lo puedes hacer sin salir de Google Sheets y con un poco de código que te he mostrado.

Si quieres aprender a usar Google Forms y Google Sheets desde cero, te invito a tomar un curso gratis de 2 horas.

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.

JuanSGuzman
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.