---
title: Webhooks
slug: campaign/docs/webhooks
docTags: 
createdAt: 2026-08-06T15:53:51.253Z
---

## Überblick

:::hint{type="info"}
**Note**

Um diese Funktion freizuschalten, wenden Sie sich an die [Kundenbetreuung](docId\:ZWe1T3UPz3JW6_4mc76qV).
:::

Dieses Kapitel beschreibt, wie Sie mit Webhooks Echtzeit-[Ereignisdaten](docId\:Q3OmaLo1pTgGU5NRWzsRn) zu Ihren Kampagnen erhalten. Sie können Webhooks für folgende Ereignisse erstellen:

- Öffnung einer Nachricht (open)
- Link in Nachricht angeklickt (click)
- Nachricht versendet (sent)
- Bounce (bounce)
- Abbestellung (unsubscribe)
- Spam-Beschwerde (spamcomplaint)
- Opt-In (singleoptin, confirmedoptin, doubleoptin)
- Hinzufügen eines Empfängers zu einer Sperrliste (blocklist)
- Archivierung einer versendeten Nachricht (archive)
- Verwerfen einer Nachricht aufgrund eines Sperrlisteneintrags (filteredbyblocklist)

Die Daten können Sie beispielsweise für Benachrichtigungen und Analysen in externen Systemen wie CRM-Software verwenden. Webhooks verwalten Sie mithilfe der Optimizely Campaign [REST-API](https://world.optimizely.com/documentation/developer-guides/campaign/rest-api/getting-started/#auth).

Zusätzlich gibe es Webhooks vom Typ *Knoten*, die für [App-Verbindungen](docId\:u1JjXABfIuf6zf6ixuTy6) genutzt werden.

:::hint{type="info"}
**Note**

Beachten Sie alle rechtlichen Vorgaben, wenn Sie Daten mit einer externen Anwendung teilen!
:::

## Erstellung und Verwaltung von Webhooks

### Webhooks erstellen

**Voraussetzungen:** Sie sehen die Optimizely Campaign [REST API Website](https://api.campaign.episerver.net/apidoc/).

1. Öffnen Sie die Operation [Create a webhook](https://api.campaign.episerver.net/apidoc/index.html#/Webhooks/createWebhook) und klicken Sie auf **Try it out**.

   ![Bild: Webhook-Anmeldung erstellen](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/G6VEzi3MbK0mcBKXJjg9O-20260720-145204.png "Bild: Webhook-Anmeldung erstellen")
2. Geben Sie in den folgenden Pflichtfeldern die entsprechenden Informationen ein:
   - **clientId**. Mandanten-ID. Die Mandanten-ID finden Sie in Optimizely Campaign unter **Verwaltung** > **API-Übersicht** > **REST-API**.
   - **targetUrl**. URL, an die die Ereignisdaten gesendet werden sollen.
     Voraussetzungen:
     - URL muss erreichbar sein und zu jeder Zeit Daten mittels HTTP-POST-Anfragen der IP-Adresse 193.169.180.1 empfangen können
     - aktuelle HTTPS-Version und Standard-Port 443 für HTTPS-Verbindungen
   - **type**. Art der Ereignisdaten, die gesendet werden sollen.
     - **open**. Nachricht geöffnet.
     - **click**. Link geklickt.
     - **sent**. Nachricht versendet.
     - **bounce**. Hard- oder Soft-Bounce erzeugt.
     - **unsubscribe**. Newsletter abbestellt. Siehe auch [Abbesteller](docId:2wUKfol9g5WNDgfoer24-).
     - **spamcomplaint**. Nachricht als Spam markiert.
     - **singleoptin**. Empfänger per single Opt-in angemeldet.
     - **confirmedoptin**. Empfänger per confirmed Opt-in angemeldet.
     - **doubleoptin**. Empfänger per double Opt-in angemeldet.
     - **blocklist**. Empfänger zu einer Sperrliste hinzugefügt.
     - **archive**. Versendete Nachricht archiviert.
     - **filteredbyblocklist**. Nachricht aufgrund eines Sperrlisteneintrags verworfen.
   - **format**. Datenformat, in dem die Ereignisdaten versendet werden sollen.

     :::hint{type="info"}
     **Note**

     Derzeit ist folgendes Datenformat verfügbar: *JSON*.
     :::
3. Geben Sie optional folgende Informationen ein, wenn Sie den Basic-HTTP-Authentifizierungsheader übermitteln möchten:
   - **basicAuthUsername**. Benutzername.
   - **basicAuthPassword**. Passwort.
4. Klicken Sie auf **Execute**. Bei erfolgreicher Erstellung erhalten Sie als API-Antwort den HTTP-Statuscode 201.

### Webhook-Informationen abrufen

**Kontext:** Informationen über einen Webhook sind zum Beispiel *Webhook ID*, *Ziel-URL* und *Eventtyp*.

**Voraussetzungen:** Sie sehen die Optimizely Campaign [REST API Website](https://api.campaign.episerver.net/apidoc/).

1. Öffnen Sie die Operation [Get information about all webhooks](https://api.campaign.episerver.net/apidoc/index.html#/Webhooks/selectWebhooks) und klicken Sie auf **Try it out**.
2. Geben Sie im Pflichtfeld **clientId** Ihre Mandanten-ID ein. Die Mandanten-ID finden Sie im Optimizely Campaign [Menü](docId\:PmNPgvNucBrAG5Rw8f41f) unter **Verwaltung** > **API-Übersicht** > **REST-API**.
3. Klicken Sie auf **Execute**.

:::hint{type="info"}
**Tip**

Sie benötigen die Webhook-ID, um den Webhook zu [aktualisieren](docId\:Q3OmaLo1pTgGU5NRWzsRn), [verifizieren](docId\:Q3OmaLo1pTgGU5NRWzsRn), [aktivieren](docId\:Q3OmaLo1pTgGU5NRWzsRn), [deaktivieren](docId\:Q3OmaLo1pTgGU5NRWzsRn) und zu [löschen](docId\:Q3OmaLo1pTgGU5NRWzsRn).
:::

### Webhooks aktualisieren

**Voraussetzungen:** Sie sehen die Optimizely Campaign [REST API Website](https://api.campaign.episerver.net/apidoc/).

1. Öffnen Sie die Operation [Update a webhook](https://api.campaign.episerver.net/apidoc/index.html#/Webhooks/updateWebhook) und klicken Sie auf **Try it out**.
2. Geben Sie in den folgenden Pflichtfeldern die entsprechenden Informationen ein:
   - **clientId**. Ihre Mandanten-ID. Die Mandanten-ID finden Sie im Optimizely Campaign [Menü](docId\:PmNPgvNucBrAG5Rw8f41f) unter **Verwaltung** > **API-Übersicht** > **REST-API**.
   - **webhookId**. Webhook-ID. Die Webhook-ID können Sie mit der Operation [Get information about all webhooks](docId\:Q3OmaLo1pTgGU5NRWzsRn) abfragen.
3. Aktualisieren Sie die Informationen wie unter [Webhooks erstellen](docId\:Q3OmaLo1pTgGU5NRWzsRn) beschrieben.
4. Klicken Sie auf **Execute**. Wenn die Aktivierung erfolgreich war, erhalten Sie den Statuscode 200.

### Webhooks verifizieren

**Kontext:** Die Verifizerung prüft, ob der Webhook einsatzbereit ist und Ereignisdaten an die angegebene URL senden kann.

**Voraussetzungen:** Sie sehen die Optimizely Campaign [REST API Website](https://api.campaign.episerver.net/apidoc/).

1. Öffnen Sie die Operation [Verify a webhook](https://api.campaign.episerver.net/apidoc/index.html#/Webhooks/verifyWebhook) und klicken Sie auf **Try it out**.
2. Geben Sie folgende Informationen ein:
   - **clientId**. Ihre Mandanten-ID. Die Mandanten-ID finden Sie im Optimizely Campaign [Menü](docId\:PmNPgvNucBrAG5Rw8f41f) unter **Verwaltung** > **API-Übersicht** > **REST-API**.
   - **webhookId**. Webhook-ID. Die Webhook-ID können Sie mit der Operation [Get information about all webhooks](docId\:Q3OmaLo1pTgGU5NRWzsRn) abfragen.
   - **mailingId**. ID eines gültigen Mailings, zum Beispiel ein Test-Mailing in [Smart Campaigns](docId\:R5uUa03fN0LjqmSAh30Ol).
3. Klicken Sie auf **Execute**. Wenn die Aktivierung erfolgreich war, erhalten Sie den Statuscode 200.

### Webhooks aktivieren

**Kontext:** Um Ereignisdaten in Echtzeit zu exportieren, müssen Sie den entsprechenden Webhook aktivieren.

**Voraussetzungen:** Sie sehen die Optimizely Campaign [REST API Website](https://api.campaign.episerver.net/apidoc/).

1. Öffnen Sie die Operation [Activate a webhook](https://api.campaign.episerver.net/apidoc/index.html#/Webhooks/activateWebhook) und klicken Sie auf **Try it out**.
2. Geben Sie in den folgenden Pflichtfeldern die entsprechenden Informationen ein:
   - **clientId**. Ihre Mandanten-ID. Die Mandanten-ID finden Sie im Optimizely Campaign [Menü](docId\:PmNPgvNucBrAG5Rw8f41f) unter **Verwaltung** > **API-Übersicht** > **REST-API**.
   - **webhookId**. Webhook-ID. Die Webhook-ID können Sie mit der Operation [Get information about all webhooks](docId\:Q3OmaLo1pTgGU5NRWzsRn) abfragen.
3. Klicken Sie auf **Execute**. Wenn die Aktivierung erfolgreich war, erhalten Sie den Statuscode 200.

### Webhooks deaktivieren

**Kontext:** Wenn Sie keine Ereignisdaten mehr exportieren möchten, müssen Sie den Webhook deaktivieren. Der Webhook existiert weiterhin und Sie können ihn später reaktivieren.

**Voraussetzungen:** Sie sehen die Optimizely Campaign [REST API Website](https://api.campaign.episerver.net/apidoc/).

1. Öffnen Sie die Operation [Deactivate a webhook](https://api.campaign.episerver.net/apidoc/index.html#/Webhooks/deactivateWebhook) und klicken Sie auf **Try it out**.
2. Geben Sie in den folgenden Pflichtfeldern die entsprechenden Informationen ein:
   - **clientId**. Ihre Mandanten-ID. Die Mandanten-ID finden Sie im Optimizely Campaign [Menü](docId\:PmNPgvNucBrAG5Rw8f41f) unter **Verwaltung** > **API-Übersicht** > **REST-API**.
   - **webhookId**. Webhook-ID. Die Webhook-ID können Sie mit der Operation [Get information about all webhooks](docId\:Q3OmaLo1pTgGU5NRWzsRn) abfragen.
3. Klicken Sie auf **Execute**.

### Webhooks löschen

**Kontext:** Wenn Sie beispielsweise einen Webhook nicht mehr benötigen oder neue Webhooks erstellen wollen, aber das Erstellungslimit pro Mandant erreicht ist, können Sie Webhooks löschen.

**Voraussetzungen:** Sie sehen die Optimizely Campaign [REST API Website](https://api.campaign.episerver.net/apidoc/).

:::hint{type="info"}
**Note**

Sie können nur deaktivierte Webhooks löschen. Siehe [Webhook deaktivieren](docId\:Q3OmaLo1pTgGU5NRWzsRn).
:::

1. Öffnen Sie die Operation [Delete a webhook](https://api.campaign.episerver.net/apidoc/index.html#/Webhooks/deleteWebhook) und klicken Sie auf **Try it out**.
2. Geben Sie in den folgenden Pflichtfeldern die entsprechenden Informationen ein:
   - **clientId**. Ihre Mandanten-ID. Die Mandanten-ID finden Sie im Optimizely Campaign [Menü](docId\:PmNPgvNucBrAG5Rw8f41f) unter **Verwaltung** > **API-Übersicht** > **REST-API**.
   - **webhookId**. Webhook-ID. Die Webhook-ID können Sie mit der Operation [Get information about all webhooks](docId\:Q3OmaLo1pTgGU5NRWzsRn) abfragen.
3. Klicken Sie auf **Execute**.

## Ereignisdaten

### Allgemeines

Sobald ein Empfänger eine Aktion ausführt, sendet Optimizely Campaign eine HTTP-POST-Anfrage mit den entsprechenden Ereignisdaten an die Ziel-URL. Die Ereignisdaten werden in Datenpaketen (Listen) bestehend aus jeweils maximal 100 Ereignissen versendet.

Die JSON-Payload des Webhook enthält in der Variablen *attempt* die Nummer des aktuellen Übermittlungsversuchs.

:::hint{type="info"}
**Note**

Nach erfolgreichem Datenempfang muss die Ziel-URL den HTTP-Statuscode 200 zurückgeben. Andernfalls wird der Export alle 10 Sekunden wiederholt. Wenn nach drei Tagen ab Erstellung des Ereignisses keine Daten zugestellt werden können, wird das Ereignis verworfen.
:::

Die folgenden Abschnitte zeigen Beispieldaten für verschiedene Webhooks. Einige Zeilen sind grün markiert, weil sie immer in der Webhook-Payload enthalten sind, die übrigen Zeilen werden durch den Typ des Webhooks bestimmt.

### Beispieldaten für Öffnungen

```json
[{
{
"type":"open",
"clientId":123456789001,
"created":1564590054000,
"mediaTypesToAddresses": { "EMAIL":"john.smith@example.com" },
"mailId":"3P5W8B4-3P5W0LI-BSLXEC",
"recipientId":"john.smith@example.com",
"subscriptionId":1234567,
"userListId":123456789003,
"attempt":2,
"remoteAddress":"10.420.3.42",
"mailingId":123456789004,
"device":"desktop",
"operatingSystem":"Windows 10",
"browser":"Firefox 64.1",
},  {
"type":"open",
"clientId":123456789001,
"created":1564590054000,
"mediaTypesToAddresses": { "EMAIL":"john.smith@example.com" },
"mailId":"4P6W8B4-4P6W0LI-BSLXEC",
"recipientId":"john.smith@example.com",
"subscriptionId":1234567,
"userListId":123456789003,
"attempt":5,
"remoteAddress":"10.420.3.42",
"mailingId":123456789004,
"device":"desktop",
"operatingSystem":"Windows 10",
"browser":"Firefox 64.1",
}]
```

### Beispieldaten für Klicks

```json
{
"type":"click",
"clientId":10180860001,
"created":1617108763000,
"mediaTypesToAddresses": { "EMAIL":"john.smith@example.com" },
"mailId":"4P6W8B4-4P6W0LI-BSLXEC",
"recipientId":"john.smith@example.com",
"subscriptionId":10227900201,
"userListId":123456789003,
"attempt":5,
"link":"https://www.optimizely.com",
"mailingId":10230355206,
"remoteAddress":"10.420.3.42",
"linkId":10180855027,
"device":"desktop",
"browser":"Safari 13.1",
"operatingSystem":"Mac 10.13",
}
```

### Beispieldaten für versendete Nachrichten

```json
{
"type":"sent",
"clientId":10180860001,
"created":1617108575391,
"mediaTypesToAddresses": { "EMAIL":"john.smith@example.com" },
"mailId":"4P6W8B4-4P6W0LI-BSLXEC",
"recipientId":"john.smith@example.com",
"subscriptionId":10227900201,
"userListId":10180860004,
"attempt":1,
"mailingType":"campaign",
"id":"0a673110-17883138caf-178832ea49f-2690c03e51f4cc26",
"mailingId":10230355206,
"mediaType":"EMAIL",
"mailingName":"Welcome",
"created":1617108575391,
}
```

### Beispieldaten für Bounces

```json
{
"type":"bounce",
"clientId":10180860001,
"created":1617108575391,
"mediaTypesToAddresses": { "EMAIL":"john.smith@example.com" },
"mailId":"4P6W8B4-4P6W0LI-BSLXEC",
"recipientId":"john.smith@example.com",
"subscriptionId":10227900201,
"userListId":10180860004,
"attempt":1,
"id":"0a673102-178d27b2c8c-178d2cac0e4-c7420699923845e",
"mailingId":10230355206,
"category":"softbounce",
"mediaType":"EMAIL",
"reason":"other",
"thresholdExceeded":false,
}
```

:::hint{type="info"}
**Tip**

Der Parameter `"category"` gibt die Bounce-Kategorie an; `"softbounce"` oder `"hardbounce"`. Der Parameter `"reason"` gibt den Bounce-Grund an; Spam (`"spam-related"`) oder alle anderen (`"other"`). Der Parameter `"thresholdExceeded"` gibt an, ob der Empfänger das Bounce-Limit überschritten hat.
:::

### Beispieldaten für Abbestellungen

```json
{
"type":"unsubscribe",
"clientId":10180860001,
"created":1617108763000,
"mediaTypesToAddresses": { "EMAIL":"john.smith@example.com" },
"mailId":"4P6W7B7-4P5W0LI-BALXEC",
"recipientId":"john.smith@example.com",
"subscriptionId":10237984200,
"userListId":10180860009,
"attempt":2,
"reason":"Unsubscribe via REST API",
"id":"0acb3115-17aa6042099-17aaa1c69bf-6efb42209c0b1",
"mailingId":10230355205,
"mediaType":"EMAIL"
}
```

### Beispieldaten für Spam-Beschwerden

```json
{
"type":"spamcomplaint",
"clientId":10180860001,
"created":1617108763000,
"mediaTypesToAddresses": { "EMAIL":"john.smith@example.com" },
"mailId":"4P6W7B7-4P5W0LI-BALXEC",
"recipientId":"john.smith@example.com",
"subscriptionId":10237984200,
"userListId":10180860009,
"attempt":2,
"mailingType": "campaign",
"providerName": "AOL",
"id": "0a0a3742-17k7f11690c-13c82b66689-63eb542f53667a61",
"mailingId": 365704742069
}
```

###  

### Beispieldaten für single Opt-In und confirmed Opt-In

```json
{
"type":"singleoptin",
"clientId":10180860001,
"created":1617108763000,
"mediaTypesToAddresses": { "EMAIL":"john.smith@example.com" },
"mailId":"4P6W7B7-4P5W0LI-BALXEC",
"recipientId":"john.smith@example.com",
"subscriptionId":10237984200,
"userListId":10180860009,
"attempt":2,
optinProcessId: 123456,
id: "abcdef",
mediaType: "EMAIL"
}
```

### Beispieldaten für double Opt-In

```json
{
"type":"doubleoptin",
"clientId":10180860001,
"created":1617108763000,
"mediaTypesToAddresses": { "EMAIL":"john.smith@example.com" },
"mailId":"4P6W7B7-4P5W0LI-BALXEC",
"recipientId":"john.smith@example.com",
"subscriptionId":10237984200,
"userListId":10180860009,
"attempt":2,
optinProcessId: 123456,
id: abcdef,
mediaType: EMAIL,
mailingId: 123456,
mailingType: "abcdef"
mailingName: "abcdef"
}
```

### Beispieldaten für Hinzufügen eines Empfängers zu Sperrliste

```json
{
"type":"blocklist",
"clientId":10180860001,
"created":1617108763000,
"mediaTypesToAddresses": { "EMAIL":"john.smith@example.com" },
"mailId":"4P6W7B7-4P5W0LI-BALXEC",
"recipientId":"john.smith@example.com",
"subscriptionId":10237984200,
"userListId":10180860009,
"attempt":2
"reason": "abc"
}
```

### Beispieldaten für Archivierung

```json
{
"type":"archived",
"clientId":10180860001,
"created":1617108763000,
"mediaTypesToAddresses": { "EMAIL":"john.smith@example.com" },
"mailId":"4P6W7B7-4P5W0LI-BALXEC",
"recipientId":"john.smith@example.com",
"subscriptionId":10237984200,
"userListId":10180860009,
"attempt":2,
"id": "123456",
"mailingId": 123456,
"mailingType": "abcdef",
"mailingName": "abcdef",
"mediaType": "EMAIL"
}
```

### Beispieldaten für Verwerfen aufgrund eines Sperrlisteneintrags

```json
{
"type":"filteredbyblocklist",
"clientId":10180860001,
"created":1617108763000,
"mediaTypesToAddresses": { "EMAIL":"john.smith@example.com" },
"mailId":"4P6W7B7-4P5W0LI-BALXEC",
"recipientId":"john.smith@example.com",
"subscriptionId":10237984200,
"userListId":10180860009,
"attempt":2,
mailingId: 123456
}
```

##  
