Automatizador de Correos de Seguimiento
/**
- RECURSO APPS SCRIPT: Notificador Automático de Clientes
- Descripción: Recorre la hoja de cálculo, busca filas marcadas como "Pendiente",
- envía un correo personalizado al cliente y cambia el estado a "Enviado". */
function enviarNotificacionesAutomaticas() { // 1. Obtener la hoja activa y los datos const hoja = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const datos = hoja.getDataRange().getValues();
// 2. Mapeo de columnas (0 = Columna A, 1 = Columna B, etc.) const COL_NOMBRE = 0; // Columna A const COL_EMAIL = 1; // Columna B const COL_DETALLE = 2; // Columna C const COL_ESTADO = 3; // Columna D
// 3. Recorrer los datos desde la fila 2 (índice 1) para ignorar los encabezados for (let i = 1; i < datos.length; i++) { const fila = datos[i]; const nombre = fila[COL_NOMBRE]; const email = fila[COL_EMAIL]; const detalle = fila[COL_DETALLE]; const estado = fila[COL_ESTADO];
// Verificar si la fila está lista para envío y tiene un correo válido
if (estado.toString().trim().toLowerCase() === 'pendiente' && email) {
const asunto = `Recordatorio: ${detalle}`;
const mensaje = `Hola ${nombre},\n\n` +
`Esperamos que te encuentres muy bien.\n\n` +
`Te escribimos para hacer un seguimiento sobre: "${detalle}".\n` +
`Si ya realizaste esta gestión, puedes ignorar este mensaje.\n\n` +
`Quedamos atentos a cualquier duda.\n\n` +
`Saludos,\n` +
`El equipo de atención`;
try {
// Envía el correo utilizando el servicio nativo de Gmail
MailApp.sendEmail(email, asunto, mensaje);
// Actualiza el estado en la celda correspondiente a "Enviado"
// (i + 1 compensa el índice base cero de JavaScript)
hoja.getRange(i + 1, COL_ESTADO + 1).setValue('Enviado');
Logger.log(`Correo enviado con éxito a: ${email}`);
} catch (error) {
Logger.log(`Error al enviar a ${email}: ${error.toString()}`);
}
}
} }