Tu primera automatización con n8n: formulario, Google Sheets y aviso a Discord
Tutorial paso a paso para crear tu primer flujo en n8n: recibir un formulario, guardar los datos en Google Sheets y avisar a tu equipo por Discord en tiempo real.
Por el equipo de Voriam Technologies3 min de lectura
Vamos a construir una automatización real y útil para cualquier negocio: cuando alguien rellene un formulario de contacto, sus datos se guardan en una hoja de Google Sheets y tu equipo recibe un aviso en Discord al momento. Son tres nodos y unos veinte minutos.
Si todavía no sabes qué es n8n, empieza por qué es n8n y para qué sirve.
Lo que necesitas
- Una instancia de n8n funcionando (n8n Cloud o autoalojada).
- Una cuenta de Google con una hoja de cálculo nueva. En la primera fila escribe las columnas:
Fecha,Nombre,Email,Mensaje. - Un servidor de Discord donde tengas permiso para gestionar webhooks.
Paso 1: el formulario (disparador)
- Crea un workflow nuevo y añade el nodo n8n Form Trigger (*On form submission*).
- Ponle título, por ejemplo "Contacto".
- Añade tres campos: Nombre (texto, obligatorio), Email (email, obligatorio) y Mensaje (área de texto).
- Copia la URL de prueba que te muestra el nodo, ábrela y envía el formulario con datos de ejemplo. Verás los datos llegar al nodo.
Paso 2: guardar en Google Sheets
- Añade un nodo Google Sheets con la operación Append Row (añadir fila).
- Crea una credencial nueva y conecta tu cuenta de Google. En n8n Cloud es un clic; en una instancia autoalojada hay que crear un cliente OAuth en Google Cloud Console y pegar sus claves.
- Elige el documento y la hoja.
- En *Mapping*, arrastra cada dato del formulario a su columna. Para la fecha usa la expresión
{{ $now.toFormat("yyyy-MM-dd HH:mm") }}.
Pulsa Test step y comprueba que aparece la fila nueva en la hoja.
Paso 3: avisar por Discord
- En Discord, ve a Ajustes del canal → Integraciones → Webhooks, crea uno y copia su URL.
- En n8n añade un nodo Discord, elige la conexión por Webhook y pega la URL en una credencial nueva.
- Escribe el mensaje usando expresiones con los datos del formulario:
📩 Nuevo contacto de {{ $("On form submission").item.json.Nombre }}
Email: {{ $("On form submission").item.json.Email }}
> {{ $("On form submission").item.json.Mensaje }}Los nombres entre comillas deben coincidir con el nombre de tu nodo de formulario y con los nombres de los campos. Lo más fácil es arrastrarlos desde el panel de entrada de la izquierda para que n8n escriba la expresión por ti.
Paso 4: activar el flujo
Guarda el workflow y activa el interruptor Active. A partir de ese momento se usa la URL de producción del formulario (no la de prueba): es la que debes compartir o poner en tu web. Cada envío quedará registrado en la pestaña Executions, donde puedes ver qué datos pasaron por cada nodo si algo falla.
Ideas para mejorarlo
- Añade un nodo If que descarte envíos sin email válido o con palabras típicas de spam.
- Envía al cliente un correo de confirmación automático con un nodo de Gmail o Send Email.
- Clasifica el mensaje con un nodo de IA (ventas, soporte, otros) y avisa a un canal distinto según la categoría.
- Configura un Error Workflow en los ajustes para que, si el flujo falla, te llegue un aviso.
