Lead-Webhook

Instagram-Leads an Zapier,
Make, n8n oder Google Sheets.

Wenn jemand ein Keyword kommentiert oder dir eine DM schickt, fragt Chat33 im Chat nach der E-Mail-Adresse. Jede gesammelte E-Mail-Adresse geht binnen Sekunden als JSON an eine Webhook-URL, und dein Automatisierungs-Tool legt sie ab, wo du willst: in einer Google-Sheets-Zeile, Airtable, Notion, Slack oder deinem CRM.

In jedem Tarif verfügbar, auch Free. Inhaber und Admins des Workspace können es verbinden.

Was passiert

  1. 1Jemand kommentiert ANLEITUNG unter deinem Beitrag
  2. 2Chat33 schickt eine DM und fragt nach der E-Mail-Adresse
  3. 3Die Person antwortet mit ihrer E-Mail-Adresse
  4. 4Chat33 schickt den Lead per POST an deine Webhook-URL
  5. 5Dein Zap, Szenario oder Workflow fügt ihn zu Google Sheets hinzu
Bevor du startest

Was du brauchst

Drei Dinge. In deinem Automatisierungs-Tool brauchst du keine Chat33-App: Es ist ein einfacher Webhook.

Ein verbundenes Instagram- oder Facebook-Konto

Ein professionelles Instagram-Konto (Business oder Creator) oder eine Facebook-Seite, in Chat33 unter Kanäle verbunden.

Eine Automation mit dem Schritt E-Mail erfassen

Der Schritt fragt in einer DM nach der E-Mail-Adresse und wartet bis zu 24 Stunden auf die Antwort. Er funktioniert mit DM-Keyword-Auslösern auf Instagram und Facebook und mit Kommentar-Auslösern auf Instagram. Nach einem Facebook-Kommentar zu fragen ist noch nicht möglich.

Ein Tool, das einen Webhook empfangen kann

Zapier (Webhooks by Zapier braucht einen bezahlten Zapier-Tarif), Make, n8n oder dein eigener Server. Die Adresse muss öffentlich sein und mit https:// beginnen. In Chat33 können Inhaber und Admins des Workspace den Webhook einrichten.

Einrichtung

In sechs Schritten einrichten

Lass dein Automatisierungs-Tool und Chat33 in zwei Tabs offen. Du kopierst eine URL von einem in den anderen.

  1. 1

    Webhook-URL in deinem Tool holen

    Erstelle eine neue Automatisierung, die mit einem Webhook beginnt, und kopiere die URL, die du bekommst.

    • Zapier: Erstelle einen Zap, wähle Webhooks by Zapier als Trigger-App und Catch Hook als Event und kopiere dann die Webhook-URL.
    • Make: Erstelle ein Szenario, füge das Webhooks-Modul Custom webhook hinzu, klicke auf Add, benenne ihn und kopiere die Adresse.
    • n8n: Füge einen Webhook-Node hinzu und setze HTTP Method auf POST. Kopiere vorerst die Test-URL. Für echte Leads nimm die Production-URL und aktiviere den Workflow.
  2. 2

    In Chat33 einfügen

    Gehe in Chat33 zu Einstellungen, API Keys und suche die Karte Nachrichten-Webhook. Füge die URL in das Adressfeld ein.

  3. 3

    Neue Leads wählen

    Hake unter Senden Neue Leads an. Nimm bei Neue DMs den Haken weg, wenn du nur Leads willst, sonst geht jede DM, die dir Leute schicken, an dieselbe URL. Lass Alle Konten in diesem Workspace gewählt oder wähle die Konten, deren Leads du willst. Klicke auf Speichern.

  4. 4

    Einen Test-Lead senden

    Klicke auf Test-Lead senden. Chat33 schickt einen erfundenen Lead (Ana Lopez, ana@example.com) mit "test": true, und die Karte zeigt den HTTP-Status, mit dem dein Tool geantwortet hat. Klicke in Zapier auf Test trigger, warte in Make, bis das Modul meldet, dass es die Datenstruktur bestimmt hat, und klicke in n8n vor dem Senden auf Listen for test event.

  5. 5

    Felder zuordnen

    Füge den nächsten Schritt hinzu und ordne ihm die Felder des Leads zu. Für Google Sheets: in Zapier Create Spreadsheet Row, in Make Add a Row, in n8n der Google-Sheets-Node mit Append Row. Lege data.email, data.name, data.username, data.flow.name und data.capturedAt in eigene Spalten, oder was du brauchst. Überspringe oder filtere Requests heraus, bei denen test true ist.

  6. 6

    Einschalten und einen echten Lead prüfen

    Veröffentliche den Zap, schalte das Szenario ein oder aktiviere den n8n-Workflow und schalte deine Chat33-Automation ein. Teste die Automation von einem zweiten Instagram-Konto. Die Karte Zapier, Make, n8n, Google Sheets unter Einstellungen, Integrationen zeigt, wie viele Leads gesendet wurden, warten oder fehlgeschlagen sind, und das Zustellprotokoll listet die letzten 50.

Beispiel-Request

Was dein Tool empfängt

Ein POST pro Lead, mit JSON-Body. Das ist ein echter Request von Test-Lead senden, Wort für Wort.

Headers
content-type: application/json
user-agent: Chat33-Webhooks/1.0
x-chat33-event: lead.captured
x-chat33-signature: t=1793009626,v1=0decb33a96de935324152cb242ec33c3c45849853d59e1ff330b20cb89ded992
Body
{
  "event": "lead.captured",
  "id": "evt_lead_test_1793009626943",
  "createdAt": "2026-10-26T10:13:46.944Z",
  "data": {
    "version": 1,
    "captureKey": "test_1793009626943",
    "email": "ana@example.com",
    "name": "Ana Lopez",
    "firstName": "Ana",
    "lastName": "Lopez",
    "username": "ana.lopez",
    "platform": "instagram",
    "platformId": "test_platform_id",
    "contactId": "test_contact",
    "channel": {
      "id": "test_channel",
      "name": "Test account"
    },
    "flow": {
      "id": "test_flow",
      "name": "Test flow"
    },
    "keyword": "guide",
    "postId": null,
    "postUrl": null,
    "tags": [],
    "question": "What is your email?",
    "capturedAt": "2026-10-26T10:13:46.943Z",
    "firstSeenAt": "2026-10-26T10:13:46.943Z"
  },
  "test": true
}
Was gesendet wird

Jedes Feld

Unter data verschachtelt, außer den ersten vier. Felder werden nur hinzugefügt, nie umbenannt oder entfernt, und data.version nennt die Form.

event
Bei einem Lead immer lead.captured. Derselbe Wert steht im Header X-Chat33-Event.
id
Die Event-ID, evt_lead_ gefolgt vom Capture-Key. Sie bleibt gleich, wenn derselbe Lead erneut zugestellt wird (Wiederholung oder Vorhandene Leads senden), nutze sie also, um Duplikate zu überspringen.
createdAt
Wann dieser Request gesendet wurde. Eine Wiederholung bekommt ein neues createdAt, die id bleibt.
test
true bei Test-Lead senden. Echte Leads haben dieses Feld nicht.
data.version
Die Payload-Version, heute 1.
data.captureKey
Ein Key pro Person, E-Mail-Adresse und Automation. Wer dieselbe Adresse derselben Automation erneut gibt, wird nicht noch einmal gesendet. Test-Leads haben einen Key, der mit test_ beginnt.
data.email
Die Adresse, die sie in die DM geschrieben hat.
data.name, data.firstName, data.lastName
Ihr Name auf Instagram oder Facebook und derselbe Name in zwei Teilen. Vor- und Nachname bleiben null, wenn wir nur den Handle kennen.
data.username
Ihr Handle, ohne das @. null, wenn die Plattform keinen liefert.
data.platform, data.platformId
Woher der Lead kam (instagram oder facebook) und die ID der Person dort, die ID, die Meta ihr für dein Konto gibt.
data.contactId
Die ID des Kontakts in Chat33, dieselbe ID, die die REST-API nutzt.
data.channel
Das verbundene Konto, an das der Lead geschrieben hat: ID und Name.
data.flow
Die Automation, die nach der E-Mail-Adresse gefragt hat: ID und Name, so wie sie beim Eingang der E-Mail-Adresse waren.
data.keyword
Das Keyword, das die Automation gestartet hat, oder null.
data.postId, data.postUrl
Der Beitrag, den sie kommentiert haben, wenn ein Kommentar die Automation gestartet hat. postUrl ist nur für Beiträge gefüllt, die über Chat33 veröffentlicht wurden, sonst null.
data.tags
Die Chat33-Tags des Kontakts beim Eingang der E-Mail-Adresse. Oft eine leere Liste.
data.question
Die Frage, die der Schritt E-Mail erfassen gesendet hat, so wie die Person sie gesehen hat.
data.capturedAt, data.firstSeenAt
Wann die Person die E-Mail-Adresse gegeben hat und wann der Kontakt zum ersten Mal in Chat33 erschien. ISO 8601, UTC.

Chat33 schreibt deinen Leads nie E-Mails. Was danach passiert, hängt von der Automatisierung ab, die du baust.

Sicherheit

Prüfen, ob ein Request von Chat33 kam

Jeder Request ist mit dem Signing-Secret deines Webhooks signiert, das auf der Karte Nachrichten-Webhook unter Einstellungen, API Keys steht. No-Code-Tools können diesen Schritt auslassen und die Webhook-URL privat halten. Prüfe auf deinem eigenen Server die Signatur, bevor du dem Body vertraust.

X-Chat33-Event

lead.captured bei einem Lead, message.received bei einer DM.

X-Chat33-Signature

Sieht aus wie t=1793009626,v1=0decb33a..., wobei t die Unix-Zeit in Sekunden ist und v1 der HMAC-SHA256 aus Zeitstempel, einem Punkt und dem rohen Request-Body, mit dem ganzen Signing-Secret (whsec_...) als Schlüssel. Jeder Versuch wird mit frischem Zeitstempel neu signiert.

User-Agent

Chat33-Webhooks/1.0, mit Content-Type application/json.

Ein neues Secret

Wenn du den Webhook entfernst und erneut speicherst, entsteht ein neues Secret. Aktualisiere dann deinen Server.

Node.js (Express)
const crypto = require("crypto");
const express = require("express");

// Settings, API Keys, Message webhook, Signing secret (whsec_...)
const SECRET = process.env.CHAT33_WEBHOOK_SECRET;

function verifyChat33(rawBody, header, toleranceSeconds = 300) {
  const parts = {};
  for (const piece of String(header || "").split(",")) {
    const i = piece.indexOf("=");
    if (i > 0) parts[piece.slice(0, i)] = piece.slice(i + 1);
  }
  if (!parts.t || !parts.v1) return false;
  if (Math.abs(Date.now() / 1000 - Number(parts.t)) > toleranceSeconds) return false;
  const expected = crypto
    .createHmac("sha256", SECRET)
    .update(`${parts.t}.${rawBody}`)
    .digest("hex");
  const a = Buffer.from(expected, "hex");
  const b = Buffer.from(parts.v1, "hex");
  return a.length === b.length && crypto.timingSafeEqual(a, b);
}

const app = express();

// The raw body: the signature covers the exact bytes Chat33 sent.
app.post("/chat33-webhook", express.raw({ type: "application/json" }), (req, res) => {
  const rawBody = req.body.toString("utf8");
  if (!verifyChat33(rawBody, req.get("X-Chat33-Signature"))) return res.sendStatus(401);

  const event = JSON.parse(rawBody);
  if (event.event === "lead.captured" && !event.test) {
    // Save event.data.email, skip event.id values you already have.
  }
  res.sendStatus(200);
});

app.listen(3000);
Optionen

So funktioniert die Zustellung

Was Chat33 mit jedem Lead macht und was dein Endpoint antworten sollte.

Antworte innerhalb von 10 Sekunden mit 2xx

Jeder 2xx-Status gilt als zugestellt. Alles andere, ein Timeout nach 10 Sekunden oder ein Netzwerkfehler gilt als Fehlschlag. Weiterleitungen werden nicht verfolgt, speichere also die endgültige Adresse.

Fehlgeschlagene Leads werden wiederholt

Ein fehlgeschlagener Lead wird nach etwa 1 Minute, 5 Minuten, 30 Minuten, 2 Stunden und 12 Stunden erneut versucht. Danach steht er als Fehlgeschlagen da, und Fehlgeschlagene wiederholen auf der Karte sendet ihn erneut. Eine 429-Antwort heißt warten: Chat33 versucht es eine Minute später erneut, ohne einen Wiederholungsversuch zu verbrauchen.

Test-Leads werden einmal gesendet

Test-Lead senden macht einen Versuch, wird nicht wiederholt und erscheint nicht im Zustellprotokoll. Er wird auch gesendet, wenn Neue Leads nicht angehakt ist, hake es also an, bevor du dich auf echte Leads verlässt.

Derselbe Webhook kann DMs senden

Mit angehaktem Neue DMs bekommt dieselbe URL auch message.received für jede DM, die Leute an deine verbundenen Konten schicken, sodass dein eigener Bot sie beantworten kann. Die API-Referenz beschreibt dieses Event und die Webhook-Endpoints.

Kontakte, die du schon hast

Vorhandene Leads senden

Leads, die du vor dem Einschalten von Neue Leads gesammelt hast, werden nicht von selbst gesendet. Klicke auf der Karte Zapier, Make, n8n, Google Sheets unter Einstellungen, Integrationen auf Vorhandene Leads senden, und sie gehen in den nächsten Minuten raus, mit denselben IDs wie zuvor, sodass dein Tool alle überspringen kann, die es schon hat.

Fehlerbehebung

Wenn nichts ankommt

Chat33 behält jeden Lead, den Webhook zu reparieren genügt also. Nichts muss erneut gesammelt werden.

Karte Nachrichten-Webhook prüfen

Die URL muss gespeichert und Neue Leads angehakt sein. Die Karte zeigt die letzte Zustellung mit ihrem HTTP-Status oder dem Fehler. Mit Test-Lead senden siehst du die Antwort sofort.

Zapier sagt, die App braucht ein Upgrade

Webhooks by Zapier ist nicht im kostenlosen Zapier-Tarif. Mach ein Upgrade oder nutze Make oder n8n, die Webhooks schon in ihren Gratis-Tarifen empfangen können.

Dein Tool antwortet mit einem Fehler

Eine 4xx- oder 5xx-Antwort ist ein Fehlschlag, und der Lead wird wiederholt. In n8n funktioniert die Test-URL nur, solange du auf ein Test-Event wartest: Nutze die Production-URL bei aktivem Workflow. In Make muss das Szenario eingeschaltet sein.

Die Adresse wurde nicht akzeptiert

Chat33 sendet nur an öffentliche https://-Adressen. Ein selbst gehostetes n8n auf localhost oder in einem privaten Netzwerk kann keine Leads empfangen. Entferne alles nach einem # in der URL.

Leads sind in Chat33, aber nicht in deinem Tool

Öffne das Zustellprotokoll auf der Karte Zapier, Make, n8n, Google Sheets. Jeder Lead zeigt Status und Grund. Leads von Konten, die der Webhook nicht abdeckt, werden übersprungen, und Leads, die vor dem Einschalten von Neue Leads gesammelt wurden, brauchen Vorhandene Leads senden.

Niemand wurde nach einer E-Mail-Adresse gefragt

Prüfe die Automation. Sie muss eingeschaltet sein, und wenn sie von einem Instagram-Kommentar startet, muss der Schritt E-Mail erfassen vor der ersten DM stehen. Nach einem Facebook-Kommentar zu fragen ist noch nicht möglich.

Fragen zum Lead-Webhook

Gibt es eine Chat33-App in Zapier oder Make?
Noch nicht. Du nutzt den Webhook-Trigger, den jedes Automatisierungs-Tool hat: Webhooks by Zapier, Catch Hook in Zapier, Custom webhook in Make, den Webhook-Node in n8n. Für n8n gibt es außerdem einen offiziellen Chat33-Node zum Posten und für andere API-Aktionen.
Welche Chat33-Tarife enthalten den Lead-Webhook?
Jeder Tarif, auch Free. Dein Automatisierungs-Tool braucht womöglich einen eigenen Bezahltarif, wie Zapier für Webhooks.
Wie schnell kommen Leads an?
Meist binnen Sekunden, nachdem die Person ihre E-Mail-Adresse geschickt hat. Wenn dein Endpoint nicht erreichbar ist, behält Chat33 den Lead und versucht es erneut.
Kann ich Leads ohne Zapier oder Make an Google Sheets senden?
Nicht direkt. Google Sheets kann nicht selbst einen Webhook empfangen, deshalb sitzt ein Tool wie Zapier, Make oder n8n dazwischen und fügt die Zeile hinzu.
Kommt derselbe Lead zweimal an?
Wer dieselbe Adresse derselben Automation gibt, wird einmal gesendet. Eine Wiederholung oder Vorhandene Leads senden kann einen Lead mit derselben id erneut zustellen, entdupliziere also über id oder data.email.
Kann ich den Webhook und Mailchimp oder HubSpot gleichzeitig nutzen?
Ja. Jeder neue Lead geht an jedes verbundene Ziel.
Woran erkenne ich einen Test-Lead?
Test-Leads haben "test": true auf oberster Ebene und die Adresse ana@example.com. Echte Leads haben kein test-Feld.
Chat33-Maskottchen mit einem Button „Hier holen“

Mach aus Kommentaren
Zeilen, Datensätze und Alarme.

Erstelle ein kostenloses Konto, verbinde Instagram, füge einen Schritt E-Mail erfassen hinzu und füge deine Webhook-URL ein.