Guide
Elaborare Moduli di Lead Generation da Typeform o Jotform
Quando i form iniziano a portare lead, la differenza tra “rumore” e “opportunità” sta nel processo. Con typeform n8n puoi trasformare ogni nuova risposta in un flusso completo: normalizzare campi, validare email/telefono, deduplicare nel CRM, arricchire con dati esterni, fare lead scoring e instradare automaticamente verso il team giusto, con log puntuali e alert in tempo reale. In questa guida costruirai un’architettura end‑to‑end per l’automazione dei lead da moduli online (Typeform, Jotform), usando trigger/webhook, mapping, controlli di qualità e sincronizzazioni con HubSpot o Salesforce. Vedrai come impostare notifiche Slack per nuovi lead, esportare su Google Sheets o Airtable, gestire double opt‑in e consenso in ottica GDPR, e impostare fallback/retentativi in caso di errori. Obiettivo: più velocità sui lead caldi, meno tempo perso su duplicati e spam, e una pipeline affidabile che scala con la crescita.
📚 Nuovo a n8n? Parti dalla guida completa: cos’è n8n e come funziona.
[IMG: Panoramica del flusso: Trigger (Typeform/Jotform) → Normalizza campi → Validazione/Dedup → Enrichment/Scoring → Routing/CRM → Log/Alert → Reportistica]
Strategia di base: stack, KPI e modello operativo
Stack consigliato (form builder, piattaforma di automazione, CRM, email/SMS, data enrichment)
- Form builder: Typeform o Jotform.
- Automazione: n8n come orchestratore centrale.
- CRM: HubSpot o Salesforce (contatti, aziende, opportunità).
- Email/SMS: provider preferito per double opt‑in e notifiche.
- Data enrichment: servizi di arricchimento aziendale/tecnografico.
- Dati operativi: Google Sheets o Airtable per log, QA e reportistica.
KPI da monitorare (time-to-lead, tasso di validazione, velocità di assegnazione, conversione MQL→SQL)
- Time‑to‑lead: tempo da invio form a notifica/assegnazione.
- Tasso di validazione: % lead con email/telefono validi.
- SLA di assegnazione: tempo medio per assegnare al commerciale.
- Conversione MQL→SQL: impatto della segmentazione e del punteggio lead.
- Qualità dati: tasso di deduplicazione, % spam bloccato.
Modello operativo
- Normalizza e verifica i dati subito dopo il trigger.
- Deduplicazione nel CRM prima di creare nuovi record.
- Arricchimento e punteggio succedono solo per lead validi.
- Routing automatizzato (round‑robin/territorio) e notifiche Slack.
- Log granulari in Sheets/Airtable e dashboard KPI.
Trigger e webhooks: innescare il flusso e gestire ritentativi
Typeform → n8n
- Integrazione Typeform con n8n: usa il Typeform Trigger per attivare il workflow a ogni nuova risposta. Mappa i campi del form nel payload.
- Se preferisci, collega Typeform a n8n via webhook esterno e usa un endpoint del tuo workflow di automazione.
Jotform → n8n
- webhook Jotform per nuove risposte: in Jotform imposta l’URL del tuo endpoint n8n basato sul nodo Webhook. Ogni nuova submission invierà un POST al workflow.
Best practice
- Riduci la latenza: se il flusso fa enrichment “pesanti”, rispondi subito al provider (ack) e continua l’elaborazione downstream.
- Rate limit/Retry: i form provider ritentano su 5xx. Mantieni alta disponibilità del tuo endpoint (reverse proxy davanti a n8n) e gestisci eventuali rami di retry interni.
- Idempotenza: aggiungi un correlation ID (submissionId) per evitare elaborazioni duplicate.
[IMG: Configurazione: Typeform Trigger → Set (mappa campi) | Jotform → Webhook (POST) → Respond To Webhook (ACK)]
Normalizzazione campi e mapping: portare i dati a uno schema unico
Normalizzazione campi e mapping
- Normalizzazione campi e mapping: uniforma nomi e formati (first_name → firstName, phone → e164, country → ISO).
- Usa il nodo Set per selezionare e rinominare i campi essenziali, impostando Keep Only Set per ridurre il rumore.
- Gestisci array (interessi, prodotti) con Item Lists se servono split e flatten, oppure con un nodo Code per normalizzare in stringhe “comma‑separate” o array puliti.
Esempio di mapping con Set
- firstName = {{ $json.form.first_name || $json.form.nome }}
- lastName = {{ $json.form.last_name || $json.form.cognome }}
- email = {{ $json.form.email }}
- phoneRaw = {{ $json.form.phone }}
- company = {{ $json.form.company || ” }}
- note = {{ $json.form.note || ” }}
- keepOnlySet = true
Dal payload al CRM-ready
- Aggiungi derivazioni: fullName, source, utm_*.
- Prepara un “leadNormalized” oggetto consolidato per gli step successivi (enrichment, scoring, routing).
[IMG: Nodo Set con keepOnlySet=true e campi mappati a uno schema standard]
Validazione email/telefono e prevenzione spam
Verifica email/telefono, deduplicazione e prevenzione spam (reCAPTCHA, honeypot, blocklist)
- Validazione email e telefono nei form: lato n8n controlla la forma dell’email (regex) e normalizza il telefono in E.164.
- Prevenzione spam: verifica reCAPTCHA score (se disponibile), aggiungi un honeypot nei form, mantieni una blocklist domini/email.
- Se non supera i controlli, inoltra l’item al ramo “Review/Spam” con un log dedicato.
Esempio Code (validazione di base)
const email = ($json.email || '').trim().toLowerCase();
const phone = ($json.phoneRaw || '').trim();
const emailOk = /^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(email);
const phoneOk = /^\+?[1-9]\d{7,14}$/.test(phone.replace(/[^\d+]/g,''));
return [{ json: { ...$json, email, phone, emailOk, phoneOk } }];
- Se emailOk e phoneOk sono false, imposta uno status “invalid” e invia notifica Slack per revisione.
[IMG: Ramo IF: validi → avanti; invalidi → log + avviso canale “lead-review”]
Deduplicazione contatti nel CRM e aggiornamenti sicuri
- Deduplicazione contatti nel CRM: cerca contatti esistenti per email prima di creare nuovi record.
- Se trovato, aggiorna i campi permissivi (no overwrite aggressivo su campi “fonte autorevole”).
- Se non trovato, crea il contatto e inserisci un mapping ID per future riconciliazioni.
- Strategia di merge: definisci quali campi aggiornare e in quali casi (first‑touch vs last‑touch).
Suggerimento
- Salva su Google Sheets/Airtable una tabella di “leadProcessed” con submissionId, email, crmId, timestamp e outcome (created/updated/skipped) per audit e analisi.
[IMG: Flusso: Lookup CRM (email) → IF exists? Update : Create → Append Log (Sheets)]
Arricchimento e lead scoring: regole + AI per la priorità commerciale
Arricchimento lead con servizi esterni
- Integra servizi esterni (es. company lookup) per domain, settore, dimensione, tecnologia.
- Arricchisci i dati solo per lead “validi” per contenere costi.
punteggio lead e lead scoring
- Regole statiche (fit + intent): ruolo, dimensione aziendale, keyword nel messaggio, provenienza campagna.
- AI per qualificare i lead: opzionalmente invia descrizione/notes a un modello esterno per valutare interesse/urgenza e classificare i pain point.
Esempio Code (scoring semplice)
const lead = $json;
let score = 0;
if (lead.company && lead.company.length > 2) score += 10;
if (/cto|chief|head|manager/i.test(lead.role||'')) score += 15;
if (/demo|preventivo|prezzo|pricing/i.test(lead.note||'')) score += 20;
if (lead.source === 'paid_search') score += 10;
const tier = score >= 40 ? 'A' : score >= 25 ? 'B' : 'C';
return [{ json: { ...lead, score, tier } }];
Insight
- Conserva sia lo score numerico sia la fascia (A/B/C) per routing e reporting flessibili.
[IMG: Ramo Enrichment → Scoring (Code) → tier A/B/C]
Instradamento, assegnazione e notifiche al team
- Instradamento dei lead a vendite: definisci regole round‑robin o per territorio (country, language, segment).
- Assegna automaticamente owner/queue nel CRM; invia notifiche Slack per nuovi lead prioritari.
Esempio Slack (invio messaggio)
{
"name": "Notify Lead",
"type": "n8n-nodes-base.slack",
"typeVersion": 1,
"parameters": {
"resource": "message",
"operation": "send",
"channel": "C01234567",
"text": "Nuovo lead {{ $json.tier }} — {{ $json.fullName }} ({{ $json.email }}) — Score: {{ $json.score }}"
},
"credentials": {
"slackOAuth2Api": { "name": "Slack OAuth2" }
}
}
- Per lead “A”, invia DM all’owner e crea un task follow‑up; per “B/C”, notifica nel canale team.
[IMG: Switch su tier → Slack DM (A) | Slack Channel (B/C) → CRM task]
Consenso, double opt‑in e GDPR by design
Gestione del consenso e double opt‑in in ottica GDPR
- Registra il consenso marketing separato da “necessario per contatto”.
- Double opt‑in: dopo l’invio, rispondi subito al form (ack) e manda un’email con link di conferma; accogli il click su un secondo endpoint webhook e aggiorna il contatto con “consent: confirmed”.
- Conserva timestamp, IP e user agent del consenso per audit.
Flow di conferma (concettuale)
- Nodo Webhook (ricezione form) → Respond To Webhook (200 “Grazie, controlla l’email”) → invio email con link univoco → Nodo Webhook (confirm endpoint) → aggiorna CRM “consent=confirmed”.
[IMG: Double opt‑in: Webhook intake → Email confirm → Webhook confirm → CRM update]
Logging, reportistica e sincronizzazione su spreadsheet/database
- esportazione su Google Sheets o Airtable: salva righe con campi chiave (timestamp, email, score, tier, owner, outcome).
- Reporting rapido: pivot per canale/segmento, conversione MQL→SQL e tempo medio di assegnazione.
Esempio configurazione Append (Google Sheets)
- Spreadsheet ID: il tuo ID
- Sheet: Leads_Log
- Data mode: mappa campi (email, score, tier, outcome, crmId, createdAt)
[IMG: Nodo Google Sheets configurato per Append Row con mapping campi]
Gestione errori, retry e alert
- gestione errori e retry nei workflow: se un’API esterna risponde 5xx, instrada su un ramo di retry (attesa crescente) e limita i tentativi; dopo il fallimento definitivo, logga e allerta.
- Error Trigger: configura un workflow separato che intercetta errori e invia una notifica (Slack/Email) con context (workflow, nodo, messaggio).
Pattern di retry (concettuale)
- IF (stato 429/5xx) → incrementa retryCount (Set/Code) → Delay/Wait → riprova → su fallimento finale invia alert e scrivi su log.
[IMG: Ramo errori: IF (>=500) → Retry → On Fail: Slack Alert + Append Log]
Esempio end‑to‑end: Typeform/Jotform → Qualifica → CRM → Log
Step‑by‑step
- Trigger
- Typeform Trigger (nuova risposta) oppure Webhook (Jotform POST).
- Normalizza
- Set (keepOnlySet=true): mappa firstName, lastName, email, phoneRaw, company, note, utm_source, source.
- Validazione
- Code: normalizza email/telefono, flag emailOk/phoneOk; ramo IF per invalidi (log + Slack canale “lead-review”).
- Dedup e CRM
- Lookup nel CRM per email; IF exists → Update; else → Create; salva crmId.
- Enrichment
- Se validi, chiama servizio (opzionale) e arricchisci campi (industry, size).
- Scoring
- Code: calcola score e tier; imposta priorità e owner rule.
- Routing e notifiche
- Slack (DM se tier A; canale se B/C), crea task nel CRM.
- Consenso/Double Opt‑in
- Respond To Webhook (ack) + invio email, endpoint Webhook di conferma → aggiorna contatto “consent=confirmed”.
- Log e report
- Google Sheets Append/Airtable Create per output consolidato.
Snippet Slack (già mostrato) e mapping Sheets come esempi di configurazione operativa.
[IMG: Canvas n8n con i nodi sopra, rami IF, e log finale]
Quick Takeaways
- Usa Typeform Trigger o il Webhook per Jotform per innescare l’automazione dei lead da moduli online in modo affidabile.
- Normalizza subito i campi con Set, valida email/telefono in Code e blocca spam/dati incompleti.
- Deduplica nel CRM prima di creare: riduci duplicati e disallineamenti; salva mapping ID per aggiornamenti futuri.
- Applica arricchimento e lead scoring (regole + AI) per dare priorità ai lead caldi e accelerare la risposta.
- Instrada e notifica il team con Slack; registra log completi su Google Sheets o Airtable per report e audit.
- Implementa double opt‑in e consenso esplicito per conformità GDPR, con link di conferma e tracciamento.
- Prevedi retry su errori temporanei e usa Error Trigger per alert centralizzati.
Conclusione
Elaborare i moduli di lead con typeform n8n ti permette di trasformare ogni submission in un flusso di valore: dati puliti, lead scoring consistente, routing immediato e sincronizzazione affidabile con il CRM. Il segreto è partire dalla base: normalizzazione, validazione e dedup, per poi innestare arricchimento e automazioni “smart” (notifiche, task, double opt‑in). Con log accurati e KPI chiari misuri l’impatto: meno tempi morti tra invio e primo contatto, più conversioni MQL→SQL e meno errori umani. Inizia con un workflow minimo (Trigger → Set → Validazione → CRM → Slack → Log) e aggiungi enrichment, scoring e consenso nelle iterazioni successive. In poche settimane avrai una pipeline che scala e libera tempo per ciò che conta: parlare con i prospect giusti nel momento giusto.
FAQ
- Come collego Typeform a n8n per rilevare nuove risposte?
Usa l’integrazione Typeform Trigger per avviare il workflow a ogni submission. In alternativa, configura Typeform per inviare i dati a un endpoint n8n basato su Webhook.
- Posso ricevere Jotform direttamente in n8n?
Sì, imposta un webhook Jotform per nuove risposte verso l’URL del tuo nodo Webhook in n8n. Il workflow partirà a ogni submission.
- Come evito duplicati nel CRM?
Prima di creare il contatto, cerca per email nel CRM. Se esiste, aggiorna i campi necessari; se no, crea un nuovo record. Mantieni un mapping submissionId/email→crmId per aggiornamenti successivi.
- Come faccio il lead scoring?
Combina regole (ruolo, dimensione azienda, parole chiave nel messaggio) con un punteggio numerico e una fascia (A/B/C). Puoi integrare servizi esterni per AI e enrichment e salvare score e tier per routing e reporting.
- Come gestisco double opt‑in e consenso?
Dopo l’invio del form, invia un’email di conferma con link a un endpoint Webhook dedicato. Alla conferma, aggiorna il contatto nel CRM con “consent=confirmed”, salvando timestamp e metadati per audit.
Ci dai una mano?
Qual è il collo di bottiglia più grande del tuo flusso lead: deduplica, scoring o assegnazione? Condividi la tua esperienza e diffondi questo articolo: confrontiamo setup e best practice per trasformare ogni submission in una conversazione di valore!
Articoli correlati
- Automate RPA: Guida Completa a Power Automate e all’Iperautomazione per le Aziende
- RPA Process: Guida Completa e Operativa all’Automazione Robotica
- RPA Robotica: guida completa a benefici, costi e roadmap
- Automation RPA: Guida Completa all’Automazione Robotica dei Processi
Vuoi automazioni AI su misura per la tua azienda?
Scopri la consulenza →