Automatizar Google Sheets y Gmail con Google Apps Script

Genera un script de Google Apps Script listo para pegar: lee tu hoja, envía correos o crea eventos, se ejecuta con un activador, evita duplicados y tiene modo de prueba e instrucciones de instalación. Pensado para ChatGPT, Claude, Gemini y Microsoft Copilot. Incluye 4 variables personalizables y se copia gratis en un clic.

Intermedio · Código · Pendiente de revisión editorial

Prompt

Actúa como desarrollador experto en Google Apps Script y Google Workspace que escribe automatizaciones robustas para equipos no técnicos.

Contexto:
- Qué quiero automatizar: {{tarea}}
- Estructura de la hoja (nombre de la pestaña y columnas con un ejemplo de fila): {{hoja}}
- Cuándo debe ejecutarse: {{activador}}
- Servicios que intervienen (Gmail, Calendar, Drive, Docs, Forms): {{servicios}}

Entregables:
1. Resumen del flujo en 4-6 pasos y supuestos que haces sobre los datos.
2. Código completo en Apps Script (JavaScript V8) con:
   - Un bloque CONFIG al principio (nombre de pestaña, columnas, remitente, asunto) para cambiarlo sin tocar la lógica.
   - Lectura de datos en bloque con getValues() y escritura en bloque, no celda a celda.
   - Columna de estado para marcar filas procesadas y evitar envíos duplicados si el script se ejecuta dos veces.
   - Modo de prueba (DRY_RUN) que registre lo que haría sin enviar nada.
   - Manejo de errores por fila, registro con console.log y un resumen al final.
   - LockService si hay riesgo de ejecuciones simultáneas.
3. Función para crear el activador por código y alternativa manual desde el panel de activadores.
4. Instalación paso a paso: Extensiones > Apps Script, pegar, guardar, autorizar permisos (explica qué permisos pedirá y por qué).
5. Límites a tener en cuenta: cuotas diarias de envío y tiempo máximo de ejecución según el tipo de cuenta; indica [VERIFICAR en la documentación de cuotas de Google] en lugar de cifras exactas.
6. Plan de pruebas con 3 filas de ejemplo, incluida una con datos vacíos o erróneos.

Restricciones:
- No uses librerías externas ni servicios de pago.
- No pidas ni guardes contraseñas en el código.
- Si la estructura de la hoja no está clara, pregúntame antes de escribir el código.

Formato: secciones numeradas, el código en un único bloque y comentarios en español.

Cómo usarlo

Describe tus columnas con una fila real (sin datos personales). Ejecuta primero el script con DRY_RUN activado, revisa el registro y solo después desactívalo y crea el activador.

Ejemplo de uso

Tarea: recordatorio por email 3 días antes del vencimiento de cada factura · Hoja: pestaña «Facturas» con cliente, email, importe en euros, fecha de vencimiento, estado · Activador: diario a las 8:00 · Servicios: Gmail.

Resultado de ejemplo

2. Código (Apps Script, V8)

const CONFIG = {
  SHEET_NAME: 'Inscripciones',
  STATUS_COL: 5,            // A=nombre, B=email, C=curso, D=fecha de inicio, E=estado
  SUBJECT: 'Bienvenida a tu curso',
  DRY_RUN: true,            // set to false once the test run looks right
};

function sendWelcomeEmails() {
  const lock = LockService.getScriptLock();
  if (!lock.tryLock(30 * 1000)) return;           // another run is in progress
  try {
    const sheet = SpreadsheetApp.getActive().getSheetByName(CONFIG.SHEET_NAME);
    const lastRow = sheet.getLastRow();
    if (lastRow < 2) return;
    const rows = sheet.getRange(2, 1, lastRow - 1, CONFIG.STATUS_COL).getValues();
    let sent = 0;
    const statuses = rows.map(([name, email, course, start, status], i) => {
      if (status) return [status];                // already processed: skip
      try {
        if (!/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(email)) throw new Error('invalid email');
        const date = Utilities.formatDate(new Date(start), Session.getScriptTimeZone(), 'dd/MM/yyyy');
        const body = `Hola ${name}:\n\nTe damos la bienvenida a «${course}». Empezamos el ${date}.`;
        if (CONFIG.DRY_RUN) { console.log(`[DRY_RUN] would email ${email}`); return ['']; }
        GmailApp.sendEmail(email, CONFIG.SUBJECT, body);
        sent++;
        return ['ENVIADO ' + new Date().toISOString()];
      } catch (e) {
        console.log(`Row ${i + 2}: ${e.message}`);
        return ['ERROR: ' + e.message];
      }
    });
    sheet.getRange(2, CONFIG.STATUS_COL, statuses.length, 1).setValues(statuses); // one bulk write
    console.log(`Done: ${sent} sent out of ${rows.length} rows`);
  } finally {
    lock.releaseLock();
  }
}

function createTrigger() {
  ScriptApp.newTrigger('sendWelcomeEmails')
    .forSpreadsheet(SpreadsheetApp.getActive()).onFormSubmit().create();
}

La columna de estado evita reenvíos si el script se ejecuta dos veces. La invitación de Google Calendar se añade en el mismo bucle una vez confirmado el calendario del curso → [COMPLETAR]…

Datos clave

Categoría
Programación y desarrollo · Automatizaciones
Tipo de resultado
Código
Nivel
Intermedio
Pensado para
ChatGPT, Claude, Gemini y Microsoft Copilot
Verificado en
Pendiente de verificación editorial
Variables
Qué automatizar, Estructura de la hoja, Activador y Servicios implicados
Idioma
Español
Precio
Gratis, sin registro
Actualizado
07/11/2026

Preguntas frecuentes

¿Necesito saber programar para usar el script?

No mucho: basta con pegar el código, ajustar el bloque CONFIG y autorizar los permisos. Aun así, conviene probarlo en una copia de la hoja antes de usarlo con datos reales.

¿Por qué el script pide tantos permisos?

Apps Script solicita acceso a cada servicio que usa el código, como Gmail o Calendar. Revisa la lista: si pide algo que el script no necesita, el código puede ajustarse para limitar los permisos.

¿Para qué sirve este prompt?

Genera un script de Google Apps Script listo para pegar: lee tu hoja, envía correos o crea eventos, se ejecuta con un activador, evita duplicados y tiene modo de prueba e instrucciones de instalación.

¿Con qué herramientas de IA funciona?

Está pensado para ChatGPT, Claude, Gemini y Microsoft Copilot. Todavía no lo hemos verificado en estas herramientas, por lo que los resultados pueden variar entre ellas.

¿Cómo personalizo el prompt?

Pulsa «Personalizar» y rellena las variables (Qué automatizar, Estructura de la hoja, Activador y Servicios implicados). El texto se actualiza al instante y después puedes copiarlo con un clic. Los valores se guardan solo en tu navegador.

¿Necesito experiencia para usarlo?

Es de nivel intermedio: conviene que conozcas el tema para aportar buen contexto y revisar el resultado con criterio.

¿Este prompt es gratis?

Sí. Todos los prompts de HomeCasa Prompts son gratuitos, sin registro ni suscripción. Puedes usarlos también en proyectos profesionales.

¿Puedo fiarme del resultado de la IA?

Úsalo como un borrador de calidad: revisa siempre datos, cifras y afirmaciones importantes antes de publicarlos o tomar decisiones.

Prompts relacionados