En este tutorial vamos a continuar con la serie sobre cómo enviar correos masivos desde Google Sheets utilizando Google Apps Script. La idea es mejorar y corregir algunos detalles del sistema de envío masivo de emails que ya hemos construido, para que sea más eficiente y confiable. Si eres emprendedor o trabajas con Google Sheets para gestionar contactos y quieres automatizar el envío de correos personalizados, este tutorial te será de gran ayuda.
Ahora vamos a hacer un breve resumen de lo que hemos trabajado en esta serie de videos para que entiendas el contexto y luego avanzamos con las correcciones y mejoras.
Resumen del sistema de envío masivo de correos en Google Sheets
El sistema consta de tres pestañas principales en nuestra hoja de cálculo:
- Plantilla: Aquí tenemos el cuerpo del correo con variables que se reemplazan dinámicamente, tales como nombre, producto, valor, fecha y tipo.
- Datos: Contiene la lista de contactos con sus respectivos datos para cada variable, además del correo electrónico y un campo de verificación para controlar el envío.
- Configuración: Donde definimos parámetros como el nombre del remitente, el asunto del correo y otras opciones.
En la primera parte del proyecto, implementamos la función para enviar un correo individual desde una fila específica, y luego extendimos esto para enviar correos masivos a toda la lista. El sistema indicaba con un OK y la fecha de envío en la fila correspondiente cuando el correo era enviado con éxito.
Problemas detectados en el envío masivo
Al probar el envío masivo, detectamos algunos problemas que queremos solucionar:
- No se actualizan las celdas con el OK que indica que el correo fue enviado.
- No se registra la fecha en que se envió el correo.
- No hay un mensaje o aviso que confirme que el envío masivo terminó correctamente, por lo que no sabemos si hubo errores o si se completó.
Además, decidimos eliminar los botones que teníamos en la hoja para enviar correos, ya que ahora podemos usar un menú personalizado que creamos con Google Apps Script para facilitar la ejecución.
Cómo corregir y mejorar el sistema de envío masivo
Para arreglar los problemas mencionados, debemos asegurarnos de que el script haga lo siguiente en cada envío:
- Actualizar la celda de estado con un OK cuando el correo se envíe exitosamente.
- Registrar la fecha y hora exacta en que se envió el correo.
- Mostrar un mensaje emergente o alerta al finalizar el envío masivo para confirmar que todo salió bien.
También es importante manejar los posibles errores para que el sistema no se quede colgado y podamos saber si algún correo no se envió.
Ejemplo básico de código para enviar correos masivos con confirmación
function enviarCorreosMasivos() {
var hojaDatos = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Datos");
var ultimaFila = hojaDatos.getLastRow();
var datos = hojaDatos.getRange(2, 1, ultimaFila - 1, hojaDatos.getLastColumn()).getValues();
for (var i = 0; i < datos.length; i++) {
var fila = i + 2; // porque la fila 1 es encabezado
var email = datos[i][5]; // asumiendo que el correo está en la columna 6 (F)
var enviado = datos[i][7]; // columna 8 (H) para estado de envío
if (email && enviado != "OK") {
var asunto = "Asunto del correo";
var cuerpo = "Hola " + datos[i][0] + ", este es un correo personalizado.";
try {
MailApp.sendEmail(email, asunto, cuerpo);
hojaDatos.getRange(fila, 8).setValue("OK");
hojaDatos.getRange(fila, 9).setValue(new Date()); // columna 9 (I) para fecha
} catch(e) {
Logger.log("Error enviando a " + email + ": " + e.message);
}
}
}
SpreadsheetApp.getUi().alert("El envío masivo de correos ha finalizado.");
}
Este código recorre todas las filas de la hoja «Datos», verifica si el correo ya fue enviado y si no, envía el correo personalizado, actualiza el estado y la fecha, y al final muestra un mensaje que confirma que el proceso terminó.
Conclusión
En este tutorial vimos cómo mejorar nuestro sistema de envío masivo de correos desde Google Sheets con Google Apps Script, corrigiendo errores comunes y agregando funcionalidades importantes como la actualización del estado, registro de fecha y confirmación del envío. Estos pasos garantizan que nuestro sistema sea más confiable y fácil de usar.
Si quieres profundizar más en el tema de automatización con Google Apps Script y Google Sheets, te recomiendo revisar el curso completo que tengo en la academia JuanSGuzman, donde enseño desde cero cómo crear sistemas automatizados para tu negocio.
Si quieres aprender a usar Google Forms y Google Sheets desde cero, te invito a tomar un curso gratis de 2 horas.