# Webhook

<Aside type="caution" icon="setting" title="Hilfe von Entwicklern erforderlich">
 Sie benötigen die Hilfe Ihres Entwicklerteams, um das Webhook-Element zu konfigurieren. Teilen Sie diese Anleitung mit ihnen, um loszulegen.
</Aside>

Mit Webhooks können Sie Journey-Daten an externe Dienste wie Analyse-Systeme, CRM-Systeme und Marketing-Tools senden. Sie können:

* Externe Systeme benachrichtigen, wenn ein Kunde eine Aktion in der Journey ausführt
* Kundendaten an Analyse-Tools senden
* E-Mails, SMS oder WhatsApp von Drittanbietern bei bestimmten Journey-Ereignissen auslösen

<Aside type="note">
Sehen Sie sich einige Beispiele an, wie Sie Webhooks für verschiedene Anwendungsfälle und Dienste implementieren können: [Webhook-Integrationsbeispiele](/de/developer/guides/customer-journey/webhook-samples/)
</Aside>

## So richten Sie das Webhook-Element ein 
### Das Webhook-Element hinzufügen
Ziehen Sie das **Webhook**-Element per Drag-and-Drop auf die Arbeitsfläche. Platzieren Sie den **Webhook** an einer beliebigen Stelle und berücksichtigen Sie dabei, welche Journey-Informationen Sie an einen Drittanbieterdienst senden möchten.

<img src="/journey-elements-README-40.webp" alt="Webhook-Element auf der Arbeitsfläche mit Namens- und Anforderungseinstellungen"/>

### Den Webhook-Schritt benennen und die Anforderungs-URL und den Typ angeben
Geben Sie im Feld **SCHRITTNAME** einen Namen für den Webhook ein. Es kann praktisch sein, Webhooks nach den Diensten, an die sie Daten senden, oder nach dem Anwendungsfall zu benennen.

Geben Sie als Nächstes im Feld **URL** die Anforderungs-URL an, an die die Daten gesendet werden sollen. Wählen Sie neben dem URL-Feld den Anforderungstyp aus dem Dropdown-Menü **ANFORDERUNGSTYP** aus: `GET` oder `POST`.
<img src="/journey-elements-webhook-1.webp" alt="Webhook-Konfigurationsoberfläche mit URL-Feld und Dropdown-Menü ANFORDERUNGSTYP zur Auswahl der GET- oder POST-Methode"/>
### Header konfigurieren
Legen Sie im Abschnitt **HEADERS** den Inhaltstyp fest. 

Standardmäßig ist der Inhaltstyp **application/json**. Wenn der Dienst, an den Sie den Webhook senden, einen anderen Inhaltstyp erfordert, geben Sie den entsprechenden Wert im Header-Wert **Content-Type** ein. 

Beispiele für Inhaltstypen sind:

* `x-www-form-urlencoded`
* `text/plain`
* `text/xml`

Fügen Sie bei Bedarf zusätzliche Header hinzu, indem Sie auf **+ HEADER HINZUFÜGEN** klicken. Sie können jeden Header entfernen, indem Sie auf das 'x'-Symbol daneben klicken.

Einige APIs erfordern beispielsweise eine **HTTP-Basisauthentifizierung**. Um solche Anfragen zu authentifizieren, gehen Sie wie folgt vor:

1. Öffnen Sie einen einfachen Texteditor und geben Sie Ihren Benutzernamen und Ihr Passwort ohne Leerzeichen ein, getrennt durch einen Doppelpunkt. Zum Beispiel: `myuser:mypass`
2. Kodieren Sie diese Zeichenfolge in Base64.
3. Kopieren Sie die resultierende Base64-Zeichenfolge (zum Beispiel `bXl1c2VyOm15cGFzcw==`).
4. Fügen Sie in den Webhook-Einstellungen einen Authorization-Header mit dem Wert hinzu: `Basic <IHRE BASE64-ZEICHENFOLGE>`. Stellen Sie sicher, dass nach dem Wort „Basic“ ein Leerzeichen steht.

<img src="/journey-elements-webhook-2.webp" alt="Beispiel für einen Authorization-Header für die Basisauthentifizierung in den Webhook-Einstellungen, der die Header Content-Type und Authorization anzeigt"/>
### Den JSON-Anforderungstext hinzufügen
Geben Sie im Abschnitt **DATEN** Ihren JSON-Anforderungstext ein. Stellen Sie sicher, dass der Anforderungstext im korrekten JSON-Format vorliegt.

<Aside type="note">
Wenn für den Platzhalter für dynamische Daten beim Senden der POST-Anfrage kein Wert vorhanden ist, wird der Nullwert übertragen.
</Aside>

Beispiel:
```
{
  "hwid": "{{device:hwid}}"
}
```



### Dynamische Daten und Makros verwenden

Das Panel **DATEN-BUILDER** ermöglicht es Ihnen, dynamische Informationen (wie Benutzer-, Geräte-, Tag- oder Ereignisdaten) direkt in Ihren JSON-Anforderungstext einzufügen. Mit dynamischen Daten können Sie Werte einfügen, die für den einzelnen Benutzer spezifisch sind, der die Journey durchläuft.

Dazu: 
1. Wählen Sie eine **Kategorie** aus. Sie können Daten aus drei Kategorien abrufen:

- **Gerät:** Verwenden Sie Gerätedaten, wenn Sie technische Informationen benötigen, die mit dem Gerät des Benutzers verknüpft sind.

- **Tag:** Verwenden Sie Tag-Daten, wenn Sie Informationen senden möchten, die im Benutzerprofil gespeichert sind.

- **Ereignis:** Verwenden Sie Ereignisdaten, wenn der Webhook Werte aus dem auslösenden Ereignis der Journey senden soll.

2. Wählen Sie einen **Parameter** aus (zum Beispiel HWID, Lieblingskategorie usw.).
3. Pushwoosh generiert ein Makro, das wie folgt aussieht:

```
{{tag:Language}}
```

4. Kopieren Sie das Makro und fügen Sie es in Ihren JSON-Text im Abschnitt DATEN ein.

Wenn der Webhook in einer Live-Journey ausgeführt wird, ersetzt Pushwoosh das Makro automatisch durch den tatsächlichen Wert für diesen Benutzer.

<img src="/journey-elements-webhook-3.webp" alt="Platzhalter für dynamische Daten in den Webhook-Anforderungstext einfügen"/>

### Webhook-Antwortdaten Variablen zuordnen

Neben dem Senden von Daten kann das Webhook-Element auch Daten aus der empfangenen Antwort erfassen und in Variablen umwandeln. Diese Variablen können dann später in der Journey verwendet werden. Setzen Sie zum Beispiel einen Tag mit [**Benutzerprofil aktualisieren**](/de/product/customer-journey/journey-elements/flow-controls/update-user-profile/#use-a-value-from-a-webhook-response) oder planen Sie eine [**Zeitverzögerung**](/de/product/customer-journey/journey-elements/flow-controls/time-delay/#use-a-date-from-a-webhook-response) basierend auf einem vom externen Dienst zurückgegebenen Wert. Ein vollständiges Journey-Beispiel finden Sie unter [Verwendung von Webhook-Antwortdaten in Ihrer Journey](/de/product/customer-journey/journey-elements/using-webhook-response-data-in-journeys/).

Klicken Sie im Abschnitt **ANTWORTZUORDNUNG** auf **+ ZUORDNUNG HINZUFÜGEN** und füllen Sie für jeden Wert, den Sie erfassen möchten, zwei Felder aus:

* **Pfad:** der Speicherort des Wertes im JSON-Antworttext
* **Attribut:** der Name, den Sie verwenden, um auf diesen Wert später in der Journey zu verweisen

<img src="/journey-elements-webhook-4.webp" alt="Abschnitt zur Antwortzuordnung mit den Feldern Pfad und Attribut und der Schaltfläche Zuordnung hinzufügen in den Webhook-Einstellungen"/>

Wenn Ihr CRM beispielsweise mit Folgendem antwortet:

```
{
  "data": {
    "user": {
      "id": "789xyz"
    }
  }
}
```

Setzen Sie **Pfad** auf `data.user.id` und **Attribut** auf `crm_user_id`, um diese ID zu erfassen.

<Aside type="note">
Einige Dinge, die Sie über die Zuordnung wissen sollten:

- **Pfad** ist ein einfacher, durch Punkte getrennter Pfad (Objektschlüssel und für Arrays numerische Indizes, zum Beispiel `results.0.code`). Er unterstützt keine Platzhalter oder Filter, sodass er jeweils nur auf einen bestimmten Wert verweisen kann.
- Werte werden genau so gespeichert, wie sie aus der JSON-Antwort kommen (Text, Zahl oder wahr/falsch). Es findet keine Typkonvertierung statt. Wenn Sie planen, einen Wert als Datum in einem **Zeitverzögerung**-Element zu verwenden, stellen Sie sicher, dass Ihr Dienst ihn in einem der von **Zeitverzögerung** unterstützten Datumsformate zurückgibt.
- Wenn die Antwort kein gültiges JSON ist oder ein **Pfad** mit nichts übereinstimmt, wird die entsprechende Variable für diesen Benutzer nicht erstellt. Es wird kein Fehler angezeigt, und der **Webhook**-Schritt wird trotzdem normal abgeschlossen.
</Aside>

<Aside type="caution">
Antworttexte, die größer als 64 KB sind, werden für die Zuordnung überhaupt nicht verarbeitet. Halten Sie die Antwort, die Ihr Endpunkt zurücksendet, angemessen klein, wenn Sie planen, Werte daraus zuzuordnen.
</Aside>

<LinkCard title="Verwendung von Webhook-Antwortdaten in Ihrer Journey" href="/product/customer-journey/journey-elements/using-webhook-response-data-in-journeys/" />

### Den Webhook testen
Klicken Sie auf **Webhook testen**, um zu überprüfen, ob Ihre Webhook-Konfiguration korrekt ist und die Anfrage erfolgreich gesendet wird.

### Ihre Konfiguration speichern
Klicken Sie auf **Anwenden**, um Ihre Webhook-Konfiguration zu speichern.