> ## Documentation Index
> Fetch the complete documentation index at: https://docs.landerlab.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhook-Integration einrichten

> Erfahren Sie, wie Sie in LanderLab eine Webhook-Integration einrichten, um Lead-Daten in Echtzeit an jeden HTTPS-Endpunkt zu senden – einschließlich CRMs, Lead-Käufern und eigenen APIs.

> Verbinden Sie einen Webhook mit Ihren Landingpages in LanderLab, um Lead-Daten in Echtzeit an jeden HTTPS-Endpunkt zu senden. Mit Webhooks übermitteln Sie Leads an CRMs, Lead-Distribution-Plattformen, eigene APIs oder jedes System, das HTTP-Anfragen annimmt.

## Was ist ein Webhook?

Ein Webhook ist eine automatische HTTP-Anfrage, die Daten in dem Moment von einem System an ein anderes sendet, in dem ein Ereignis eintritt. In LanderLab wird ein Webhook jedes Mal ausgelöst, wenn auf Ihrer Landingpage ein Lead erfasst wird. Er sendet die Lead-Daten (Formularfelder, Besucherinformationen und alle von Ihnen definierten benutzerdefinierten Felder) direkt an die von Ihnen angegebene URL.

Das bedeutet: Ihre Leads werden sofort an Ihr CRM, Ihren Lead-Käufer oder Ihr Backend-System übermittelt – ohne manuellen Export und ohne Middleware von Drittanbietern.

Die Webhook-Integration von LanderLab unterstützt die Methoden **GET**, **POST** und **PUT**, die Body-Typen **JSON** und **Form (URL encoded)**, benutzerdefinierte Header sowie die vollständige Kontrolle darüber, welche Felder gesendet werden und wie sie benannt sind.

<Note>
  Webhook-Integrationen werden **nicht** global gespeichert. Jeder Webhook wird pro Landingpage konfiguriert. Sie müssen also für jede Landingpage, von der Sie Lead-Daten senden möchten, einen neuen Webhook einrichten.
</Note>

***

## So fügen Sie einen Webhook hinzu

Die Webhook-Einrichtung erfolgt über einen Assistenten mit 3 Schritten: Anfrage konfigurieren, Felder zuordnen und den finalen Payload prüfen, bevor die Verbindung hergestellt wird.

### Schritt 1: Die Anfrage konfigurieren

<Steps>
  <Step title="Öffnen Sie Ihre Landingpage">
    Gehen Sie zu **Landing Pages** und klicken Sie auf den **Namen der Landingpage**, der Sie den Webhook hinzufügen möchten.
  </Step>

  <Step title="Öffnen Sie den Tab Integrations">
    Klicken Sie auf **Add Integration**, um das Integrationsfenster zu öffnen.
  </Step>

  <Step title="Wählen Sie die Webhook-Integration aus">
    Suchen Sie in der Liste der verfügbaren Integrationen die **Webhook integration** (gekennzeichnet mit „Send lead data to any HTTPS endpoint in real time“) und klicken Sie darauf. Der Konfigurationsassistent für den Webhook wird geöffnet.
  </Step>

  <Step title="Füllen Sie die Einstellungen der Anfrage aus">
    Geben Sie die folgenden Angaben ein:

    | Feld          | Beschreibung                                                                                                                                                              |
    | :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
    | **Name**      | Eine Bezeichnung zur Identifikation dieses Webhooks (z. B. „Leads an CRM senden“ oder „Lead-Käufer – Webhook“).                                                           |
    | **URL**       | Der HTTPS-Endpunkt, an den die Lead-Daten gesendet werden sollen (z. B. `https://api.example.com/webhooks/leads`). Dies muss eine gültige HTTPS-URL sein.                 |
    | **Method**    | Die HTTP-Methode für die Anfrage. Zur Auswahl stehen **GET**, **POST** oder **PUT**. Die meisten Integrationen verwenden POST.                                            |
    | **Body type** | Das Format des Anfrage-Bodys. Wählen Sie **JSON** (`application/json`) oder **Form (URL encoded)** (`application/x-www-form-urlencoded`). Die meisten APIs erwarten JSON. |

    <Note>
      Die Einstellung **Body type** gilt nur für POST- und PUT-Anfragen. GET-Anfragen senden die Daten als URL-Query-Parameter.
    </Note>
  </Step>

  <Step title="Fügen Sie Header hinzu (optional)">
    Wenn Ihr Endpunkt benutzerdefinierte HTTP-Header benötigt (etwa einen API-Schlüssel oder ein Autorisierungs-Token), klicken Sie auf **+ Add header** und geben Sie für jeden Header **Key** und **Value** ein. Gängige Beispiele sind:

    | Key             | Value                 |
    | :-------------- | :-------------------- |
    | `Authorization` | `Bearer your-api-key` |
    | `X-API-Key`     | `your-api-key`        |

    Sie können mehrere Header hinzufügen, indem Sie erneut auf **+ Add header** klicken.
  </Step>

  <Step title="Klicken Sie auf Continue">
    Klicken Sie auf **Continue**, um zum Schritt der Feldzuordnung zu gelangen.
  </Step>
</Steps>

***

### Schritt 2: Felder zuordnen

In diesem Schritt wählen Sie aus, welche Datenfelder in die Webhook-Anfrage aufgenommen werden und wie sie beim Senden an Ihren Endpunkt benannt sein sollen. LanderLab bietet Ihnen zwei Wege, Ihren Payload aufzubauen: den Modus **Fields** mit einem einfachen visuellen Mapper oder den Modus **JSON** für die vollständige Kontrolle über den Anfrage-Body.

Am oberen Bildschirmrand finden Sie einen Umschalter zwischen **Fields** und **JSON**. Wählen Sie die Variante, die zu Ihrem Anwendungsfall passt.

#### Variante A: Fields-Modus (für die meisten Nutzer empfohlen)

Der Fields-Modus bietet eine visuelle Oberfläche, in der Sie Felder auswählen, ihre Schlüssel umbenennen und eigene Werte hinzufügen können, ohne Code zu schreiben.

<Steps>
  <Step title="Felder auswählen und konfigurieren">
    LanderLab bindet automatisch eine Reihe von Standardfeldern ein, die auf jeder Landingpage verfügbar sind. Jedes Feld hat ein Kontrollkästchen zum Ein- oder Ausschließen sowie eine Spalte **Sent As**, in der Sie den in der Anfrage gesendeten Schlüssel umbenennen können. Die LanderLab-Standardfelder sind:

    | Formularfeld               | Sent As (Standardschlüssel) | Beschreibung                                                            |
    | :------------------------- | :-------------------------- | :---------------------------------------------------------------------- |
    | **LL Lander URL**          | `ll_lander_url`             | Die vollständige URL der Landingpage, auf der sich der Besucher befand. |
    | **LL Visitor IP**          | `ll_visitor_ip`             | Die IP-Adresse des Besuchers.                                           |
    | **LL Visitor User Agent**  | `ll_visitor_user_agent`     | Informationen zu Browser und Gerät des Besuchers.                       |
    | **LL Submission Time UTC** | `ll_submission_time_utc`    | Datum und Uhrzeit der Lead-Übermittlung (in UTC).                       |
    | **LL Variant ID**          | `ll_variant_id`             | Die ID der A/B-Test-Variante, die dem Besucher angezeigt wurde.         |

    Aktivieren oder deaktivieren Sie Felder über die Kontrollkästchen. Sie können außerdem den Wert unter **Sent As** bearbeiten, damit er den von Ihrem Endpunkt erwarteten Feldnamen entspricht.

    <Tip>
      Wenn Ihre Landingpage einen **Quiz-Funnel** oder ein **Formular** enthält, erscheinen alle von Ihnen hinzugefügten Formularfelder (etwa Name, E-Mail, Telefon, Adresse und beliebige eigene Eingaben) automatisch in dieser Feldliste neben den LanderLab-Standardfeldern. Sie können sie genauso aktivieren, deaktivieren oder umbenennen wie die Standardfelder.
    </Tip>
  </Step>

  <Step title="Benutzerdefinierte Felder hinzufügen (optional)">
    Klicken Sie im Bereich **Additional fields** auf **+ Add field**, um zusätzliche Schlüssel-Wert-Paare in den Webhook-Payload aufzunehmen. Das ist nützlich, um statische Werte wie eine Kampagnen-ID, ein Lead-Source-Tag oder eine API-Kennung zu senden, die Ihr Endpunkt benötigt, die aber nicht über das Formular erfasst wird.
  </Step>

  <Step title="Klicken Sie auf Continue">
    Klicken Sie auf **Continue**, um zum Prüfschritt zu gelangen.
  </Step>
</Steps>

#### Variante B: JSON-Modus (fortgeschritten)

Der JSON-Modus stellt Ihnen einen Code-Editor bereit, in dem Sie den exakten JSON-Body schreiben, der mit dem Webhook gesendet wird. Dies ist die fortgeschrittene Option für alle, die die vollständige Kontrolle über die Struktur des Payloads benötigen – insbesondere dann, wenn die empfangende API verschachtelte Objekte, Arrays oder ein bestimmtes Format erwartet, das der Fields-Modus nicht erzeugen kann.

<Steps>
  <Step title="Wechseln Sie in den JSON-Modus">
    Klicken Sie am oberen Bildschirmrand auf den Umschalter **JSON**. Es erscheint ein Code-Editor mit einem Standard-JSON-Payload, der alle verfügbaren Felder enthält.
  </Step>

  <Step title="Bearbeiten Sie den JSON-Payload">
    Schreiben oder ändern Sie den JSON-Body direkt im Editor. Um dynamische Lead-Daten einzufügen, verwenden Sie die Template-Syntax `{{Field Name}}`. Tippen Sie `/`, um eine Feldauswahl zu öffnen, oder geben Sie den Variablennamen manuell in doppelten geschweiften Klammern ein. Diese Template-Variablen werden beim Auslösen des Webhooks durch die tatsächlichen Werte ersetzt. Beispielsweise wird `{{LL Visitor IP}}` durch die tatsächliche IP-Adresse des Besuchers ersetzt, der den Lead übermittelt hat.

    **Einfacher flacher Payload (entspricht dem Ergebnis des Fields-Modus):**

    ```json theme={null}
    {
      "ll_lander_url": "{{LL Lander URL}}",
      "ll_visitor_ip": "{{LL Visitor IP}}",
      "ll_visitor_user_agent": "{{LL Visitor User Agent}}",
      "ll_submission_time_utc": "{{LL Submission Time UTC}}",
      "ll_variant_id": "{{LL Variant ID}}"
    }
    ```

    **Verschachtelter Payload mit gruppierten Objekten:**

    Manche APIs erwarten die Daten in verschachtelten Objekten organisiert. Im JSON-Modus können Sie jede benötigte Struktur aufbauen. Zum Beispiel:

    ```json theme={null}
    {
      "lead": {
        "first_name": "{{First Name}}",
        "last_name": "{{Last Name}}",
        "email": "{{Email}}",
        "phone": "{{Phone}}"
      },
      "tracking": {
        "source_url": "{{LL Lander URL}}",
        "ip_address": "{{LL Visitor IP}}",
        "user_agent": "{{LL Visitor User Agent}}",
        "submitted_at": "{{LL Submission Time UTC}}"
      },
      "campaign": {
        "variant_id": "{{LL Variant ID}}",
        "source": "landerlab"
      }
    }
    ```

    **Payload mit statischen Werten und gemischten Daten:**

    Sie können dynamische Template-Variablen und fest hinterlegte statische Werte im selben Payload kombinieren:

    ```json theme={null}
    {
      "api_key": "your-api-key-here",
      "lead_source": "landing_page",
      "contact": {
        "name": "{{Full Name}}",
        "email": "{{Email}}",
        "phone": "{{Phone}}",
        "zip": "{{Zip Code}}"
      },
      "meta": {
        "page_url": "{{LL Lander URL}}",
        "ip": "{{LL Visitor IP}}",
        "variant": "{{LL Variant ID}}"
      }
    }
    ```

    <Note>
      Die Feldnamen innerhalb von `{{ }}` müssen exakt den auf Ihrer Landingpage verfügbaren Feldnamen entsprechen. Die LanderLab-Standardfelder verwenden Namen wie `LL Lander URL`, `LL Visitor IP` usw. Formular- und Quizfelder verwenden die Namen, die Sie ihnen beim Erstellen des Formulars gegeben haben (z. B. `First Name`, `Email`, `Phone`).
    </Note>
  </Step>

  <Step title="Klicken Sie auf Continue">
    Klicken Sie auf **Continue**, um zum Prüfschritt zu gelangen.
  </Step>
</Steps>

***

### Schritt 3: Prüfen und verbinden

<Steps>
  <Step title="Prüfen Sie Ihren Webhook">
    Der letzte Schritt zeigt eine vollständige Vorschau der Anfrage, die bei jeder Lead-Erfassung gesendet wird. Sie sehen:

    * Die **HTTP-Methode** und die **URL** (z. B. `POST https://api.example.com/webhooks/leads`)
    * Den **Body** mit allen zugeordneten Feldern als Template-Variablen (z. B. `{{LL Lander URL}}`, `{{LL Visitor IP}}`)

    Prüfen Sie die Anfrage sorgfältig, um sicherzustellen, dass Methode, URL und Feldnamen den Erwartungen Ihres Endpunkts entsprechen.

    <Tip>
      Klicken Sie oben rechts in der Vorschau auf die Schaltfläche **cURL**, um die Anfrage als cURL-Befehl zu kopieren. Damit können Sie den Webhook vor dem Verbinden manuell in Ihrem Terminal testen.
    </Tip>
  </Step>

  <Step title="Klicken Sie auf Connect webhook">
    Wenn alles korrekt aussieht, klicken Sie auf die Schaltfläche **Connect webhook**, um die Integration zu speichern und zu aktivieren. Wenn Sie etwas ändern möchten, klicken Sie auf **Back**, um zu den vorherigen Schritten zurückzukehren.
  </Step>
</Steps>

***

## Häufige Anwendungsfälle

Webhooks sind flexibel und lassen sich nutzen, um Lead-Daten an nahezu jedes System zu senden. Hier einige gängige Beispiele:

* **CRM-Systeme** – Senden Sie Leads direkt an Salesforce, HubSpot, GoHighLevel oder jedes CRM, das eingehende Webhooks annimmt oder einen API-Endpunkt bietet.
* **Lead-Distribution-Plattformen** – Übermitteln Sie Leads in Echtzeit an Käufer oder Ping-Trees für Lead-Bidding und -Verteilung.
* **E-Mail-Marketing-Tools** – Fügen Sie neue Leads Ihren E-Mail-Listen in Plattformen wie Mailchimp, ActiveCampaign oder Klaviyo hinzu.
* **Eigene Backends** – Senden Sie Daten an Ihre eigene API oder Ihr Backend-System zur Verarbeitung, Bewertung oder Weiterleitung.
* **Zapier oder Make** – Verwenden Sie eine Webhook-URL von Zapier oder Make, um aus den Leads Ihrer Landingpage automatisierte Workflows auszulösen.

***

## Tipps zur Einrichtung von Webhooks

* **Verwenden Sie immer HTTPS** – LanderLab setzt für Webhook-Endpunkte eine HTTPS-URL voraus. HTTP-URLs werden nicht unterstützt.
* **Passen Sie Ihre Feldnamen an** – Nutzen Sie in Schritt 2 die Spalte **Sent As**, um Felder so umzubenennen, dass sie den Erwartungen des empfangenden Systems entsprechen. Erwartet Ihr CRM beispielsweise `email_address` statt `email`, benennen Sie das Feld im Feld-Mapper entsprechend um.
* **Testen Sie vor dem Livegang** – Kopieren Sie die Anfrage im Prüfschritt über die Schaltfläche **cURL** und testen Sie sie manuell. Sie können auch Tools wie [webhook.site](https://webhook.site) verwenden, um eingehende Anfragen zu prüfen und das Payload-Format zu verifizieren.
* **Fügen Sie Authentifizierungs-Header hinzu** – Wenn Ihr Endpunkt einen API-Schlüssel oder ein Token benötigt, tragen Sie diesen in Schritt 1 im Bereich Headers ein. Nehmen Sie Anmeldedaten niemals in die URL auf.
