Configuración básica
Definí el nombre del proyecto y qué tipo de funciones principales necesitás
Arranco desde cero
No tengo Sheets, carpetas ni datos aún. El generador crea todas las estructuras.
- setupInicial() crea carpetas automáticamente
- La hoja se crea si no existe
- Todo configurado al correr el setup una vez
Ya tengo una base
Tengo Sheets, carpetas o datos ya creados. El código se adapta a lo que ya existe.
- Indicás los IDs y nombres existentes
- El código apunta a tus datos actuales
- No modifica ni pisa lo que ya tenés
doPost() — Escribir / Enviar datos
Guardar registros, subir archivos, enviar emails, modificar datos
doGet() — Leer / Consultar datos
Obtener registros, listar archivos, exportar información
LockService Recomendado
Evita que múltiples usuarios escriban al mismo tiempo (race conditions)
Google Sheets
¿Qué operaciones necesitás hacer con Google Sheets?
Leer datos
Obtener filas de una hoja como array de objetos JSON (headers = claves)
Escribir / Agregar filas
Guardar nuevos registros al final de una hoja (appendRow)
Nombre de hoja dinámico
El cliente puede especificar en cada request qué hoja usar
Buscar por columna
Filtrar y devolver filas que coincidan con un valor específico
Actualizar celda específica
Modificar el valor de una celda por fila y columna
Configuración de Sheets (podés completar después en el código)
Acepta URL completa: .../spreadsheets/d/ID/edit
Google Drive
¿Qué operaciones de Drive necesitás?
Gestión de carpetas
Buscar, obtener o crear carpetas por nombre automáticamente
Listar archivos
Obtener lista de archivos en una carpeta con nombre, ID y URL
Subir imágenes
Recibir y guardar imágenes en Drive (JPG, PNG, GIF, WebP)
Subir PDFs
Recibir y guardar archivos PDF en Drive con validación
Mover / Renombrar archivos
Reorganizar y cambiar nombres de archivos dentro de Drive
Hacer archivos públicos
Compartir con link de solo lectura (Anyone with link)
Eliminar archivos
Mover archivos a la papelera de Drive
Soporte archivos grandes +10 MB
Arquitectura "Resumable Upload": el archivo va directo a Drive en chunks (file.slice), sin pasar por Apps Script. Soporta videos, ZIPs y archivos pesados.
Tamaños máximos de archivos
Carpeta de destino en Drive
Archivos de texto y Emails
Operaciones avanzadas de archivos y comunicación por email
Lectura y escritura de archivos de texto
Leer contenido de archivo
Obtener el texto de un archivo .txt, .json, .csv desde Drive
Reescribir archivo
Reemplazar completamente el contenido de un archivo existente
Agregar al archivo (append)
Añadir contenido al final sin borrar lo anterior
Buscar y reemplazar texto
Encontrar ocurrencias de texto y reemplazarlas en el archivo
Envío de Emails
Email simple
Enviar emails de texto plano a un destinatario
Email con adjuntos
Adjuntar archivos de Drive al enviar emails
Email HTML (diseño profesional)
Template HTML con estilos para emails más atractivos
Envío masivo (batch)
Enviar el mismo email a múltiples destinatarios en un solo request
Seguridad y Logging
Protección de datos sensibles y auditoría de operaciones
Seguridad
Parámetros privados
Guardar tokens, IDs y claves de forma segura (PropertiesService). No visibles en URLs ni logs
Validación de parámetros Recomendado
Verificar que los datos recibidos son correctos antes de procesarlos
Control de permisos por rol
Verificar si el email del usuario tiene permiso para ejecutar cada acción
Token de seguridad propio
Genera tokens con expiración automática (CacheService + PropertiesService). Rotación configurable cada 15 min a 6 horas. Ideal para proteger endpoints públicos.
Rate-limiting por usuario
Limita la cantidad de requests por minuto por usuario (CacheService). Previene abuso del endpoint y errores de cuota de Google.
Logging (Auditoría)
Sistema de logs en Sheets
Registrar cada operación en una hoja "LOGS" con timestamp, usuario y detalles
Registro detallado de errores
Guardar stack trace y contexto completo cuando ocurre un error
Revisión final
Confirmá las opciones seleccionadas antes de generar el código
Código generado
Tu script Apps Script listo — copialo y pegalo en Google Apps Script