Spoke · n8n & OpenAI ≈ 10 Min. Lesezeit

Lead-Qualifizierung mit n8n & GPT: Wie wir 20–40 Wochenstunden einsparen

TL;DR Ein n8n-Workflow mit Webhook → OpenAI-Scoring → CRM-Sync → Slack/Discord-Alert automatisiert die Vorqualifizierung eingehender Leads vollständig. Setup-Aufwand: ~3 Tage. ROI typisch in < 8 Wochen. Pflicht: idempotente Webhook-IDs, Dead-Letter-Queue, Score-Schwellwerte konfigurierbar. Hier der reale Workflow inklusive Code-Snippets aus 09Clicks-Builds.

Die Architektur in einem Satz

Webhook empfängt Lead → OpenAI bewertet anhand strukturiertem JSON-Schema → n8n routet je nach Score in passenden CRM-Pipeline-Stage → Slack/Discord alarmiert bei A-Leads sofort, B-Leads täglich, C-Leads wöchentlich.

Das Ganze läuft in n8n mit ~12 Nodes, kostet pro Lead ~0,003 € OpenAI-Tokens und läuft idempotent – derselbe Lead wird auch bei doppeltem Webhook nur einmal verarbeitet.

Schritt 1: Webhook-Eingang mit Idempotency-Key

Der erste Knoten in n8n ist ein Webhook-Trigger. Wichtig: Pro eingehendem Request schreiben wir die Payload mitsamt einem deduplizierten Hash in eine Postgres-Tabelle lead_events – sonst verdoppelt sich Ihr Lead bei Webhook-Retries (passiert bei Typeform, Tally, HubSpot Forms, Cal.com regelmäßig).

// Function-Node in n8n: Idempotency-Hash bilden
const crypto = require("crypto");
const payload = $input.item.json;
const hash = crypto
  .createHash("sha256")
  .update(`${payload.email}:${payload.message}:${payload.timestamp}`)
  .digest("hex");

return [{ json: { ...payload, idempotency_key: hash } }];

Anschließend ein Postgres-Node mit INSERT … ON CONFLICT (idempotency_key) DO NOTHING RETURNING id. Wenn nichts zurückkommt, war es ein Duplikat – Workflow stoppt sauber.

Schritt 2: OpenAI-Scoring mit strukturiertem Output

Statt „antworte mir bitte mit einer Zahl“ nutzen wir das OpenAI Structured Output-Feature mit JSON-Schema. Damit ist die Antwort garantiert valides JSON – kein Parser-Drama.

{
  "model": "gpt-4o-mini",
  "messages": [
    {
      "role": "system",
      "content": "Du bist ein B2B-Sales-Qualifier. Bewerte den Lead anhand von Budget, Authority, Need, Timing (BANT) und gib einen Score 0-100 zurück. Begründung max. 2 Sätze."
    },
    {
      "role": "user",
      "content": "Lead-Daten: Firma=Acme GmbH, Branche=Maschinenbau, Mitarbeiter=120, Anfrage='Wir brauchen einen KI-Chatbot für Service'"
    }
  ],
  "response_format": {
    "type": "json_schema",
    "json_schema": {
      "name": "lead_score",
      "schema": {
        "type": "object",
        "properties": {
          "score": { "type": "integer", "minimum": 0, "maximum": 100 },
          "tier": { "type": "string", "enum": ["A", "B", "C", "D"] },
          "reasoning": { "type": "string", "maxLength": 280 },
          "next_action": { "type": "string" }
        },
        "required": ["score", "tier", "reasoning", "next_action"]
      }
    }
  }
}

Output ist garantiert in der Form { "score": 78, "tier": "A", "reasoning": "Mittelständischer Maschinenbauer mit klarem KI-Need…", "next_action": "Discovery-Call binnen 24h" }. Direkt verwendbar in Folge-Nodes.

Schritt 3: CRM-Sync mit Stage-Mapping

Je nach tier wird der Lead in eine andere Pipeline-Stage geschoben. Beispiel HubSpot-API:

  • Tier A (Score 80+): Stage „Hot Lead“ + Owner = Sales-Lead + Slack-Alert „🔥 A-Lead!“
  • Tier B (60–79): Stage „Qualified“ + Owner = Sales-Pool + tägliche Slack-Zusammenfassung
  • Tier C (40–59): Stage „Nurture“ + automatische E-Mail-Sequence (Resend / Postmark)
  • Tier D (0–39): Stage „Disqualified“ + Logging zur späteren Re-Evaluation

Schritt 4: Multi-Channel-Alerting

Wir senden A-Leads sofort in einen Discord-Channel mit Embed (Score, Reasoning, Direktlink ins CRM). Sales klickt einmal und ist im richtigen Lead. B-Leads kommen in eine tägliche „Daily Digest“-Nachricht um 8 Uhr. C-Leads landen in einer Wochen-Zusammenfassung am Freitag.

Vorteil: Sales muss nicht alle 30 Minuten ins CRM gucken. Wenn der Discord-Ping kommt, ist es echt.

Was Sie damit konkret sparen

Aufgabe (vorher manuell) Aufwand pro Lead Bei 50 Leads/Woche
Lead sichten & lesen ~3 Min 2,5 h/Woche
In CRM eintragen + Stage setzen ~5 Min 4,2 h/Woche
Owner zuweisen + Notiz ~2 Min 1,7 h/Woche
Folgeaktion entscheiden ~3 Min 2,5 h/Woche
Summe ~13 Min ~10,8 h/Woche

Mit dem n8n-Workflow läuft das in ~6 Sekunden pro Lead. Sales bekommt nur noch die A- und B-Leads aktiv auf den Tisch – die anderen werden automatisch genurtured oder disqualifiziert.

Was schief gehen kann (und wie wir das abfangen)

  • OpenAI-API-Ausfall: Workflow speichert Lead in dead_letter_queue-Tabelle, schickt Slack-Alert an Ops, erneuter Versuch alle 5 Min via Cron-Trigger.
  • Score schwankt für ähnliche Leads: Temperature in OpenAI-Call auf 0, System-Prompt mit klaren BANT-Beispielen, regelmäßige Spot-Checks der A/D-Leads zur Kalibrierung.
  • CRM-API-Rate-Limits: n8n-Builtin-Throttling + Retry mit Exponential-Backoff.
  • Datenschutz: Lead-Daten werden vor OpenAI-Call pseudonymisiert (E-Mail → Hash, Firmenname bleibt). DSGVO-Hinweis im Datenschutz, AVV mit OpenAI EU-Region. Mehr zur DSGVO-Architektur →

Setup-Kosten und ROI

Aufbau dieses Workflows als 09Clicks-Festpreis: 1.890 € einmalig. Inkludiert: n8n-Self-Hosting auf Vercel/Hetzner, OpenAI-Integration, CRM-Connector, Discord/Slack-Bot, DSGVO-Setup, Doku, Übergabe.

Laufende Kosten: ~5 €/Monat OpenAI-Tokens bei 200 Leads/Monat. n8n-Self-Hosting: 5 €/Monat Hetzner-VPS oder Vercel-Function. Kein SaaS-Lock-in.

ROI bei 10 h Sales-Zeit/Woche × 50 €/h = ~21.000 €/Jahr eingesparte Personalkosten pro Sales-Person. Break-even nach < 5 Wochen.

Verwandte Builds

Dieser Lead-Workflow ist ein Spoke aus dem 09Clicks-Automatisierungs-Pillar. Er kombiniert sich gut mit:

Soll ich diesen Workflow in Ihrem Setup bauen?

30-Min-Discovery-Call: Wir schauen Ihren konkreten Lead-Flow an und ich nenne einen Festpreis – direkt mit dem Engineer, der baut.

kontakt@09clicks.de · +49 174 5483347