Torna al blog

2026-01-10

Primo workflow in n8n in 30 minuti: form → Google Sheet → Slack

Tutorial passo-passo: ricevere un lead da webhook, scrivere una riga in Google Sheet e avvisare il team su Slack. Senza ROI inventati: solo cosa cliccare e come verificare.

Problema che risolvi: qualcuno invia un form sul sito e tu vuoi una riga nel foglio e una notifica Slack senza copiare a mano.

Cosa fai in 30 minuti: un workflow in n8n (self-hosted o cloud) che risponde a un POST, appende dati a Google Sheets e posta su Slack.

Come sai che funziona: con curl invii un JSON finto e vedi riga nuova + messaggio Slack.

Make e Zapier possono fare lo stesso con meno codice; qui usiamo n8n perché è riproducibile gratis (self-hosted) e il flusso è identico negli altri tool (stessi trigger/credenziali).

Prerequisiti

  • Account n8n (n8n.io cloud o installazione self-hosted).
  • Progetto Google Cloud con Google Sheets API abilitata e OAuth client (tipo “Desktop” o “Web” secondo la doc n8n per Google).
  • Slack: crea un’app con Incoming Webhook su un canale di test (o OAuth bot se preferisci).

Documentazione ufficiale n8n per i nodi: Google Sheets, Slack, Webhook.

Passo 1 — Webhook in ingresso

  1. Crea un nuovo workflow.
  2. Aggiungi il nodo Webhook, metodo POST, path es. lead-ingest.
  3. Attiva il workflow e copia l’URL Production (non “Test” se vuoi chiamate da form esterni).
  4. In OptionsResponse Mode: Using Respond to Webhook se vuoi rispondere 200 con un JSON { "ok": true } (nodo Respond to Webhook dopo la catena).

Payload atteso (esempio minimo):

{
  "email": "lead@example.com",
  "name": "Mario Rossi",
  "message": "Vorrei un preventivo"
}

Passo 2 — Google Sheet

  1. Crea un foglio con intestazioni in riga 1: timestamp, email, name, message.
  2. Aggiungi il nodo Google Sheets → operazione Append (o “Append row”).
  3. Collega le credenziali OAuth e seleziona documento + foglio.
  4. Mappa i campi dall’output del Webhook, es. {{ $json.body.email }} (il path esatto dipende se usi “Webhook” raw o un nodo Set che normalizza i campi).

Suggerimento: inserisci un nodo Set subito dopo il Webhook con chiavi fisse email, name, message così non rompi il foglio se il client cambia struttura.

Passo 3 — Slack

  1. Nodo SlackPost Message (con credenziale OAuth) oppure nodo HTTP Request verso l’URL del webhook Incoming (body JSON {"text": "..."}).
  2. Testo tipo: Nuovo lead: {{ $json.email }} — {{ $json.message }}.

Passo 4 — Verifica con curl

curl -sS -X POST 'https://<tuo-n8n>/webhook/lead-ingest' \
  -H 'Content-Type: application/json' \
  -d '{"email":"test@example.com","name":"Test","message":"Hello"}'

Controlla: nuova riga nel foglio, messaggio nel canale Slack. Se fallisce, apri l’esecuzione in n8n e leggi l’errore del nodo (401 Google = credenziali; 403 Slack = webhook revocato).

Zapier e Make (stesso problema, altra UI)

  • Zapier: Trigger “Webhooks by Zapier” (Catch Hook) → Google Sheets “Create Spreadsheet Row” → Slack “Send Channel Message”.
  • Make: Webhook module → Google Sheets “Add a row” → Slack “Create a message**.

La logica è identica: una riga idempotente lato sheet non è automatica — se ti serve non duplicare lo stesso lead, aggiungi deduplica (es. chiave email+giorno in un nodo Code o tabella intermedia).

Limiti da tenere a mente

  • Rate limit dei provider (Slack, Google).
  • Secret sul Webhook: in produzione aggiungi header Authorization: Bearer <token> e verificalo con un nodo IF prima di scrivere sul foglio.
  • Self-hosted n8n: aggiornamenti e backup del database delle credenziali sono tua responsabilità.

Sintesi

  1. Webhook POST → 2. (opzionale) Set normalizza JSON → 3. Append Sheet → 4. Slack.
  2. Verifica con curl.
  3. Stesso schema su Make/Zapier se preferisci SaaS gestito.

Non serve un “ROI percentuale” per sapere se l’automazione ha valore: se oggi copi i lead a mano e questo flusso ti toglie quel lavoro, il problema è risolto in modo misurabile (tempo per lead = 0 dopo il deploy).

Vuoi applicare idee come queste al tuo prodotto?

Raccontaci contesto, vincoli e obiettivi: ti diciamo se ha senso lavorare insieme e come impostare il primo passo.