En este tutorial vamos a aprender a enviar correos electrónicos desde Google Sheets usando plantillas personalizadas. La idea es que, en lugar de escribir manualmente el mensaje para cada destinatario, podamos armar un texto base con variables que se reemplazan automáticamente con los datos de cada fila de nuestra hoja de cálculo. Esto es súper útil para emprendedores y pequeñas empresas que quieren automatizar comunicaciones personalizadas, como confirmaciones de compra o notificaciones, sin complicarse con código complejo.
Ahora, vamos a desglosar cómo construir este sistema desde cero usando Google Apps Script y Google Sheets.
Preparar las variables desde la hoja de cálculo
Para comenzar, partimos de una hoja de cálculo con datos organizados en columnas, donde cada fila representa un registro o cliente. Por ejemplo, podemos tener esta estructura:
| Fila | Correo | Nombre | Producto | Fecha | Valor | Tipo de pago |
|---|---|---|---|---|---|---|
| 2 | cliente1@gmail.com | Sebastián | Curso básico de Sheets | 15/07/2023 | 30 USD | Tarjeta de crédito |
Desde el script, vamos a extraer cada dato con la función getRange(fila; columna).getValue() para luego construir las variables que usaremos en el correo:
var email = hoja.getRange(2; 1).getValue();
var nombre = hoja.getRange(2; 2).getValue();
var producto = hoja.getRange(2; 3).getValue();
var fecha = hoja.getRange(2; 4).getValue();
var valor = hoja.getRange(2; 5).getValue();
var tipoPago = hoja.getRange(2; 6).getValue();
Construir el asunto y el mensaje usando plantillas
En lugar de escribir directamente el asunto y el cuerpo del correo, vamos a crear una plantilla con texto fijo y variables marcadas para luego reemplazarlas con los valores reales. Por ejemplo, una plantilla para el mensaje podría ser:
var plantillaMensaje = "Estimado {{nombre}},\n\nMuchas gracias por comprar nuestro producto {{producto}}.\nTu compra fue realizada el {{fecha}} por un valor de {{valor}} con tipo de pago {{tipoPago}}.\n\nSaludos,\nEquipo JuanSGuzman";
Y para el asunto, algo simple como:
var plantillaAsunto = "Compra del producto {{producto}} por {{nombre}}";
La clave está en usar el método replace para sustituir cada variable entre llaves por su valor correspondiente. Como JavaScript no siempre muestra todos los métodos en el editor de Apps Script, escribimos el código manualmente así:
var mensaje = plantillaMensaje
.replace("{{nombre}}", nombre)
.replace("{{producto}}", producto)
.replace("{{fecha}}", fecha)
.replace("{{valor}}", valor)
.replace("{{tipoPago}}", tipoPago);
var asunto = plantillaAsunto
.replace("{{nombre}}", nombre)
.replace("{{producto}}", producto);
Enviar el correo desde Google Apps Script
Finalmente, para enviar el correo usamos la función MailApp.sendEmail(destinatario; asunto; mensaje). Con las variables que ya tenemos, el código queda así:
MailApp.sendEmail(email; asunto; mensaje);
Este es el método básico que yo uso para enviar correos personalizados desde Sheets sin tener que escribir cada mensaje manualmente. En próximos videos veremos cómo automatizar el envío a múltiples destinatarios con ciclos y filtros, y cómo marcar en la hoja cuándo un correo ya fue enviado para evitar duplicados.
Conclusión
En este tutorial aprendimos a crear plantillas personalizadas para enviar correos desde Google Sheets usando Google Apps Script. Vimos cómo extraer datos de una hoja, construir el asunto y el mensaje con variables que se reemplazan, y finalmente enviar el correo con MailApp.sendEmail. Esta técnica es muy útil para automatizar comunicaciones y ahorrar tiempo, especialmente si manejas ventas, reservas o cualquier tipo de contacto con clientes.
Como siguientes pasos, te recomiendo explorar cómo hacer un ciclo para enviar correos a varias filas y agregar controles para evitar envíos repetidos. También puedes mejorar el formato del mensaje usando HTML o almacenar tus plantillas en una hoja separada para facilitar su edición.
Si quieres aprender a usar Google Forms y Google Sheets desde cero, te invito a tomar un curso gratis de 2 horas.