Por Qué Deberías Usar Service Accounts de Google en n8n (Y Cómo Configurarlos)
¿Necesitas configurar service account de Google en n8n para tus automatizaciones? Si estás usando OAuth para conectarte a Google Sheets, Drive o Gmail, probablemente estés cometiendo un error que te va a costar tiempo (y dolores de cabeza) más adelante.
Cuando empecé a automatizar workflows en n8n, usaba OAuth como todos. Es más fácil, más rápido… hasta que deja de funcionar. Los tokens expiran, las credenciales se invalidan cuando cambias la contraseña, y peor aún: si alguien del equipo se va, todos los workflows conectados a su cuenta mueren.
La solución profesional: configurar service account Google n8n correctamente desde el inicio.
En este tutorial te explico qué son, por qué importan para emprendedores tech, y cómo configurarlos paso a paso.
¿Qué es un Service Account y Por Qué Importa?
Un Service Account es una cuenta especial de Google diseñada para aplicaciones y automatizaciones, no para humanos.
Diferencias clave con OAuth:
OAuth (el método «fácil»):
- Conectado a un usuario específico
- Requiere reautorización periódica
- Si cambias la contraseña de Google, se rompe
- Si el usuario pierde acceso, los workflows fallan
Service Account (el método profesional):
- Independiente de usuarios humanos
- Sin reautorizaciones (credenciales permanentes)
- Funciona aunque cambies contraseñas
- Ideal para producción y equipos
Para emprendedores y startups: Si estás automatizando procesos críticos de tu negocio (CRM, facturación, reportes), necesitas estabilidad. Los Service Accounts te dan eso.
Cuándo Usar Service Accounts en n8n
Usa Service Accounts si:
- Automatizas procesos de negocio críticos
- Trabajas con Google Sheets como base de datos
- Necesitas que workflows corran sin supervisión
- Compartes workflows entre varias personas
- Quieres evitar re-autenticaciones cada pocos meses
Casos de uso reales:
- CRM automatizado: Sincronización de leads entre formularios y Google Sheets
- Reportes automáticos: Generación diaria de reportes en Sheets desde tu base de datos
- Gestión de archivos: Subir/mover archivos en Google Drive automáticamente
- Emails transaccionales: Enviar correos desde Gmail sin depender de una cuenta personal
Paso 1: Crear un Proyecto en Google Cloud Console
Primero necesitas un proyecto de Google Cloud. Es gratis para uso básico.
Instrucciones:
- Ve a Google Cloud Console
- Inicia sesión con tu cuenta de Google (puede ser personal o de workspace)
- Haz clic en el dropdown de proyectos (arriba a la izquierda)
- Selecciona «Nuevo Proyecto»
- Dale un nombre descriptivo (ejemplo: «n8n-automations»)
- Haz clic en Crear
Tip: Si ya tienes un proyecto para otras cosas, puedes usar el mismo. Yo recomiendo uno dedicado para n8n para mantener orden.
Paso 2: Activar las APIs Necesarias
Google requiere que actives explícitamente cada API que vas a usar.
APIs comunes para n8n:
- Google Sheets API
- Google Drive API
- Gmail API
- Google Calendar API
Cómo activarlas:
- En el menú lateral, ve a «APIs y servicios» > «Biblioteca»
- Busca «Google Sheets API»
- Haz clic en la API y luego en «Habilitar»
- Repite para cada API que necesites
¿Cuáles activar? Depende de tus workflows. Si usas Google Sheets, activa Sheets + Drive (Drive es necesario para permisos de archivos).
Paso 3: Crear el Service Account
Ahora sí, vamos a crear la cuenta de servicio.
Instrucciones:
- Ve a «APIs y servicios» > «Credenciales»
- Haz clic en «Crear credenciales» > «Cuenta de servicio»
- Completa los campos:
- Nombre: Algo descriptivo (ejemplo: «n8n-service-account»)
- ID: Se genera automáticamente (déjalo así)
- Descripción: Opcional (ejemplo: «Service account para workflows de n8n»)
- Haz clic en Crear y continuar
- Función (Role): Déjalo en blanco por ahora (lo manejaremos con permisos de Sheets)
- Haz clic en Continuar y luego Listo
Importante: El Service Account tiene su propio email (algo como nombre@proyecto.iam.gserviceaccount.com). Lo necesitarás después.
Paso 4: Generar la Clave JSON
El archivo JSON contiene las credenciales que n8n usará para autenticarse.
Instrucciones:
- En la lista de cuentas de servicio, haz clic en la que acabas de crear
- Ve a la pestaña «Claves»
- Haz clic en «Agregar clave» > «Crear clave nueva»
- Selecciona formato JSON
- Haz clic en Crear
El archivo se descarga automáticamente. Guárdalo en un lugar seguro. Es como una contraseña: quien tenga ese archivo puede actuar como tu Service Account.
Estructura del archivo:
{
"type": "service_account",
"project_id": "tu-proyecto",
"private_key_id": "...",
"private_key": "-----BEGIN PRIVATE KEY-----\n...",
"client_email": "nombre@proyecto.iam.gserviceaccount.com",
"client_id": "...",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "...",
"client_x509_cert_url": "..."
}
Paso 5: Compartir Google Sheets con el Service Account
Aquí está el truco que muchos se pierden.
El Service Account tiene su propio email. Para que pueda acceder a tus Google Sheets, tienes que compartirle el documento explícitamente.
Instrucciones:
- Abre el Google Sheet que quieres usar en n8n
- Haz clic en Compartir (arriba a la derecha)
- Pega el email del Service Account (el que termina en
@....iam.gserviceaccount.com) - Dale permisos:
- Editor: Si n8n va a escribir/modificar datos
- Lector: Si solo va a leer
- Desmarca «Notificar a las personas» (no tiene caso, es un bot)
- Haz clic en Compartir
Repite esto para cada Sheet/Drive que uses en n8n.
Paso 6: Configurar la Credencial en n8n
Ahora vamos a conectar n8n con tu Service Account.
Instrucciones:
- En n8n, ve a Credentials (menú lateral)
- Haz clic en «Add Credential»
- Busca «Google Service Account»
- Abre el archivo JSON que descargaste con un editor de texto
- Completa los campos en n8n:
Campos obligatorios:
- Service Account Email: Copia el valor de
client_emaildel JSON - Private Key: Copia el valor completo de
private_key(incluyendo-----BEGIN PRIVATE KEY-----y-----END PRIVATE KEY-----)
Campos opcionales (dejar en default):
- Impersonate a User: OFF (solo activa si necesitas actuar como un usuario específico de Google Workspace)
- Set up for use in HTTP Request node: OFF (solo si planeas usarlo para hacer requests HTTP autenticados)
- Allowed HTTP Request Domains: «All» (o «None» si no usarás HTTP Request)
- Dale un nombre descriptivo (ejemplo: «Google Service Account – Producción»)
- Haz clic en Test connection para verificar
- Si aparece «Connection tested successfully ✅», haz clic en Save
Tip: Puedes usar el mismo Service Account para múltiples nodos (Sheets, Drive, Gmail, etc.). No necesitas uno por servicio.
¿Cuándo usar «Impersonate a User»?
Solo si trabajas con Google Workspace y necesitas que el Service Account actúe como un usuario específico de tu organización (por ejemplo, para acceder a su Gmail o Drive privado). Para uso normal con Sheets compartidos, déjalo en OFF.
Estructura del archivo JSON:
{
"client_email": "tu-service-account@proyecto.iam.gserviceaccount.com",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvg...\n-----END PRIVATE KEY-----\n"
}
Captura de pantalla de la configuración completa en n8n:

Paso 7: Usar el Service Account en Workflows
Ahora que tienes la credencial configurada, úsala en tus nodos de Google.
Ejemplo con Google Sheets:
- Agrega un nodo Google Sheets
- En Credential to connect with, selecciona tu Service Account
- Configura la operación (Read, Append, Update, etc.)
- Ingresa el Sheet ID (lo sacas de la URL del Sheet)
- ¡Listo!
Diferencia clave: Con Service Account no te pedirá autorización en el browser. Funciona directo.
Errores Comunes y Cómo Solucionarlos
Error: «The caller does not have permission»
Causa: No compartiste el Google Sheet con el Service Account.
Solución: Repite el Paso 5. Comparte el Sheet con el email del Service Account.
Error: «API has not been used in project»
Causa: Olvidaste habilitar la API en Google Cloud Console.
Solución: Repite el Paso 2. Ve a la Biblioteca de APIs y habilita la que necesitas.
Error: «Connection test failed»
Causa: Copiaste incorrectamente el client_email o el private_key del JSON.
Solución:
- Verifica que copiaste el email completo (termina en
@....iam.gserviceaccount.com) - Asegúrate de copiar el
private_keycompleto, incluyendo-----BEGIN PRIVATE KEY-----y-----END PRIVATE KEY----- - No agregues espacios o saltos de línea adicionales
El workflow se ejecuta pero no lee/escribe datos
Causa: El Service Account tiene permisos de «Lector» pero el workflow intenta escribir.
Solución: En Google Sheets, cambia los permisos del Service Account a «Editor».
Bonus: Service Accounts vs OAuth — Comparación Técnica
| Característica | OAuth | Service Account |
|---|---|---|
| Setup inicial | Más fácil (1 clic) | Más complejo (6 pasos) |
| Estabilidad | Tokens expiran | Credenciales permanentes |
| Vinculación | Usuario específico | Independiente |
| Permisos | Heredados del usuario | Configurables por recurso |
| Uso en producción | No recomendado | Ideal |
| Cambio de contraseña | Rompe la conexión | Sin efecto |
Mi recomendación: OAuth para prototipos rápidos y pruebas. Service Accounts para todo lo que corre en producción.
Seguridad: Protege Tu Archivo JSON
El archivo JSON es sensible. Quien lo tenga puede actuar como tu Service Account.
Mejores prácticas:
- ✅ No lo subas a GitHub (agrega
*.jsona.gitignore) - ✅ Guárdalo en un gestor de contraseñas (1Password, Bitwarden, etc.)
- ✅ Usa variables de entorno si trabajas en equipo
- ✅ Rota las claves cada 6-12 meses (opcional pero recomendado)
- ❌ Nunca lo compartas por email/Slack sin encriptar
Si crees que se comprometió:
- Ve a Google Cloud Console
- Elimina la clave comprometida
- Genera una nueva
- Actualiza la credencial en n8n
Conclusión: Service Accounts = Automatizaciones Profesionales
Si estás construyendo automatizaciones serias para tu negocio, configurar service account Google n8n correctamente no es opcional, es obligatorio.
Sí, el setup es más largo que OAuth. Pero te ahorras:
- Re-autenticaciones cada pocos meses
- Workflows rotos por cambios de contraseña
- Dependencia de usuarios específicos
- Problemas de permisos en equipos
Configurar service account de Google en n8n te toma 15-20 minutos. Pero la estabilidad que ganas vale meses de dolores de cabeza evitados.
¿Tienes dudas sobre Service Accounts o n8n? Únete a mi comunidad de emprendedores en Cagala – Aprende, Repite — ahí podemos ayudarte entre todos a resolver cualquier duda técnica o de implementación.
Este tutorial es parte de mi serie sobre automatización para emprendedores. Si quieres más contenido técnico y práctico, suscríbete a mi newsletter.


