Marta encarga una tarta en el formulario de la panadería y, en ese mismo segundo, su pedido aparece en tu hoja de Google Sheets: una fila nueva, con la fecha y el estado pendiente. Después, con un clic, n8n te dice qué pedidos quedan por preparar y marca el de Marta como listo sin que tengas que abrir la hoja.
Este es el sexto capítulo de n8n desde cero, nuestra serie gratuita en YouTube. Aquí tienes el vídeo y, debajo, el paso a paso para montarlo aunque no le des al play, con la hoja de ejemplo y el workflow terminado para descargar.
📌 En resumen
La primera fila de la hoja manda: son los nombres de las columnas. La credencial de Google para tu propio n8n se prepara una sola vez en Google Cloud Console, en cinco pasos: el proyecto, las APIs de Google Sheets y Google Drive, la pantalla de consentimiento con tu correo como usuario de prueba, el cliente OAuth con la Redirect URL que te da n8n y la conexión con Sign in with Google. Luego, en el nodo Google Sheets, Append row añade cada pedido, Get row(s) lee los pendientes con un filtro y Update row cambia la fila que coincide.
Qué necesitas antes de empezar
- El workflow del capítulo 5, el del formulario de la panadería con su webhook. Si no lo tienes, va dentro del workflow de la descarga.
- Una cuenta de Google.
- Un rato tranquilo la primera vez, para la credencial. Después ya no vuelves a tocarla.
Preparar la hoja: la primera fila manda
En Google Sheets crea una hoja nueva, llámala Panadería pedidos y pon a la pestaña de abajo el nombre Pedidos. En la primera fila escribe los nombres de las columnas:
fecha | nombre | telefono | pedido | recogida | estado
n8n lee esa fila como los nombres de las columnas y con ella sabe dónde va cada dato. Por eso tiene que estar en la fila 1, cada nombre en su celda, sin huecos ni nombres repetidos. Escribe telefono sin tilde, igual que en el formulario, y no te liarás al emparejar.
Si prefieres partir de la hoja del vídeo, la descarga trae panaderia_pedidos.xlsx con esas columnas y tres pedidos de ejemplo. Súbela a tu Google Drive y ábrela con Google Sheets (Archivo > Guardar como hoja de cálculo de Google).
La credencial de Google en tu propio n8n
Para que n8n escriba en tu hoja necesita permiso de Google, es decir, una credencial. En n8n Cloud es un botón, pero en tu propio servidor la preparas tú, una sola vez, en Google Cloud Console. Es la parte que más asusta y la que más gente deja a medias, así que vamos paso a paso. La consola sale en inglés o en castellano según tu cuenta; te ponemos los dos nombres.
Paso 1: el proyecto
Entra en console.cloud.google.com con tu cuenta. Arriba, en el selector de proyectos, pulsa New project (Proyecto nuevo), ponle un nombre, por ejemplo n8n panadería, y pulsa Create (Crear). Si ya tienes un proyecto para n8n, puedes usar ese.
Paso 2: las APIs de Sheets y Drive
En el menú, entra en APIs and Services (APIs y servicios) y luego en Library (Biblioteca). Busca Google Sheets API y pulsa Enable (Habilitar). Haz lo mismo con Google Drive API: n8n la usa para enseñarte la lista de tus hojas. Sabrás que están habilitadas porque en su ficha ya no sale Habilitar, sino Administrar.
Paso 3: la pantalla de consentimiento
Es lo que te enseña Google cuando das permiso. Entra en OAuth consent screen (Pantalla de consentimiento) y, la primera vez, pulsa Get started (Empezar). Pones un nombre de aplicación y tu correo, en Audience (Público) eliges External, aceptas la política y pulsas Create.
Tu aplicación nace en pruebas, y en pruebas solo pueden entrar los usuarios que tú apuntes. En Audience busca Test users (usuarios de prueba), pulsa Add users y añade tu propio correo. Si te saltas esto, Google te dirá «acceso denegado» al conectar.
Paso 4: la Redirect URL de n8n y el cliente OAuth
Ahora vas un momento a n8n. Añade un nodo de Google Sheets (cualquiera vale) y, en Credential, pulsa Create new credential. Arriba tienes la OAuth Redirect URL: es la dirección a la que Google te devuelve después de dar permiso. Cópiala. Fíjate también en el aviso de abajo, que pide justo las dos APIs que acabas de habilitar.
De vuelta en Google, entra en Credentials (Credenciales), pulsa Create credentials y elige OAuth client ID (ID de cliente de OAuth). En Application type elige Web application (Aplicación web). En Authorized redirect URIs (URI de redireccionamiento) pega la dirección que has copiado, tal cual, y pulsa Create.
Paso 5: conectar la cuenta
Google te enseña el Client ID y el Client Secret. Copia cada uno en su campo de la credencial de n8n, sin enseñárselos a nadie, y pulsa Sign in with Google. Elige tu cuenta. Google te avisará de que la aplicación no está verificada: es la tuya, así que pulsa Continuar, marca los permisos y acepta. En n8n tiene que salir Account connected; guarda la credencial y listo.
| Paso | Dónde | Qué haces |
|---|---|---|
| 1 | Selector de proyectos | New project (Proyecto nuevo) y Create |
| 2 | APIs and Services > Library | Enable en Google Sheets API y Google Drive API |
| 3 | OAuth consent screen y Audience | Nombre, correo, External y tu correo en Test users |
| 4 | n8n y luego Credentials | Copiar la OAuth Redirect URL y crear el OAuth client ID (Web application) |
| 5 | La credencial de n8n | Client ID, Client Secret y Sign in with Google |
Por qué la credencial caduca a los siete días
Este aviso te va a ahorrar un susto. Mientras la aplicación esté en pruebas, Google corta el permiso a los siete días y el nodo empieza a fallar sin que hayas tocado nada. No has roto nada: abre la credencial y vuelve a conectar tu cuenta de Google. La otra salida es publicar la aplicación en la consola (pasarla a producción), y así no caduca, aunque Google siga avisando de que no está verificada.
Append row: cada pedido, una fila nueva
Abre el workflow del capítulo 5. En el vídeo le quitamos el aviso de Telegram para que se vea claro, pero si lo tienes puede quedarse. Pasa el ratón por la conexión entre POST y la página de gracias, pulsa el +, busca Google Sheets y elige Append row in sheet.
- La credencial ya sale elegida.
- En Document, elige de la lista (From list) Panadería pedidos, y en Sheet, la pestaña Pedidos. En cuanto la eliges, n8n lee la primera fila y te pinta un campo por cada columna.
- Con Map Each Column Manually, arrastra desde la izquierda cada dato de
bodya su columna: nombre, telefono, pedido y recogida. - En estado escribe
pendiente. - La fecha no viene del formulario: la pone n8n. En fecha pega esta expresión y debajo verás el resultado.
{{ $now.toFormat('dd/MM/yyyy HH:mm') }}
Primer punto de control: la fila de Marta
Pulsa Execute workflow y abre la Test URL en otra pestaña. Como en el capítulo 5, n8n escucha una llamada cada vez, así que vuelve a pulsar Execute workflow antes de enviar. Rellena el pedido y envíalo: sale la página de gracias. En n8n, el nodo de la hoja queda en verde y su salida es la fila que ha escrito; en la hoja, debajo de los pedidos que ya había, aparece el nuevo con su fecha y pendiente.
Get row(s): leer los pendientes
Ahora al revés. En el mismo lienzo añade un disparador manual (Manual Trigger) y, detrás, otro Google Sheets con Get row(s) in sheet, con la misma hoja y la misma pestaña.
En Filters pulsa Add Filter. En Column elige estado y en Value escribe pendiente. Pulsa Execute step: con la hoja del vídeo salen tres pedidos (Luis, Ana y Marta), y el de Pablo no aparece porque ya está listo.
Get row(s) devuelve todas las filas que cumplen el filtro. Si solo quieres la primera, en Options tienes Return only First Matching Row. Para la lista de pendientes, déjalo como está.
Update row: marcar un pedido como listo
Detrás del disparador manual añade otro Google Sheets, esta vez Update row in sheet, con la misma hoja y la misma pestaña. Lo importante es Column to Match On, la columna de coincidencia: la que n8n mira para saber qué fila cambiar. Elige telefono y escribe el teléfono de Marta; en estado escribe listo y pulsa Execute step.
Segundo punto de control: vuelve a ejecutar Get row(s) y ahora solo quedan dos pendientes, Luis y Ana. En la hoja, la fila de Marta ya dice listo.
Un consejo para cuando lo uses de verdad: la columna de coincidencia tiene que ser un dato que no se repita. El teléfono vale mientras cada cliente tenga un solo pedido abierto; en una tienda real añade una columna con el número de pedido y empareja por ella.
| Operación | Qué hace | Lo que hay que configurar |
|---|---|---|
| Append row in sheet | Añade una fila al final | Document, Sheet y cada columna emparejada |
| Get row(s) in sheet | Lee las filas que cumplen el filtro | Filters: Column y Value |
| Update row in sheet | Cambia la fila que coincide | Column to Match On y los valores nuevos |
Si te falla
- No te salen las columnas o salen raras: revisa la primera fila de la hoja.
- Escribe donde no toca: mira qué documento y qué pestaña tienes elegidos en el nodo.
- Google dice «acceso denegado» o «redirect uri mismatch»: añade tu correo en Test users o vuelve a copiar la OAuth Redirect URL de n8n en el cliente OAuth.
- El nodo falla después de una semana: es la caducidad de los siete días; reconecta la credencial.
Los capítulos del vídeo
| Minuto | Qué se ve |
|---|---|
| 1:08 | Preparar la hoja |
| 1:46 | La credencial de Google en tu n8n |
| 2:22 | Paso 2: las APIs de Sheets y Drive |
| 2:44 | Paso 3: la pantalla de consentimiento |
| 3:27 | Paso 4: la Redirect URL de n8n |
| 4:10 | Paso 5: conectar la cuenta |
| 4:37 | Por qué caduca a los siete días |
| 5:11 | Append row: el nodo de la hoja |
| 6:01 | La fecha la pone n8n |
| 7:05 | El filtro de los pendientes |
| 7:50 | Update row: la columna de coincidencia |
| 8:30 | Si te falla |
Descarga la hoja y el workflow
Un zip con la hoja de ejemplo de la panadería (las seis columnas y tres pedidos, para subirla a tu Google Drive) y el workflow terminado: el formulario del capítulo 5, Append row, Get row(s) con el filtro de pendientes y Update row por teléfono. Viene sin credenciales ni hoja elegida, para que pongas las tuyas.
Preguntas frecuentes
¿Cómo conecto Google Sheets con n8n en mi propio servidor?
Con una credencial OAuth que preparas una vez en Google Cloud Console: creas un proyecto, habilitas Google Sheets API y Google Drive API, configuras la pantalla de consentimiento con tu correo como usuario de prueba, creas un cliente OAuth de tipo Web application con la Redirect URL de n8n y conectas con Sign in with Google.
¿Por qué mi credencial de Google deja de funcionar a los siete días?
Porque la aplicación de Google Cloud está en pruebas, y en ese estado Google corta el permiso a la semana. Vuelve a conectar la cuenta en la credencial o publica la aplicación para que no caduque.
¿Qué significa el error «redirect uri mismatch»?
Que la dirección de vuelta que tiene el cliente OAuth en Google no es la misma que la OAuth Redirect URL de tu n8n. Cópiala otra vez desde la credencial de n8n y pégala tal cual en Authorized redirect URIs.
¿Por qué n8n no ve las columnas de mi hoja?
Porque las lee de la primera fila. Tiene que tener cada nombre en su celda, sin huecos ni nombres repetidos, y estar en la fila 1 de la pestaña que has elegido.
¿Cómo sabe Update row qué fila cambiar?
Por Column to Match On: n8n busca la fila cuyo valor en esa columna coincide con el que le das. Usa un dato que no se repita, como un número de pedido.
Sigue la serie: ← capítulo 5: tu formulario con un webhook · todos los capítulos de n8n desde cero · capítulo 7: HTTP Request y APIs →
Google Sheets, Drive, Gmail y Calendar en un negocio de verdad
En el curso de n8n de nacaIA Academy trabajamos con las herramientas de Google en casos reales, lección a lección, junto con el resto del temario: de los primeros nodos a los agentes de IA y n8n en producción.
Ver el curso de n8n