Mejora el envío masivo de correos desde Google Sheets con Apps Script

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.

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.