# Event-Streaming-Integration

<Aside type="caution" icon="setting" title="Unterstützung durch Entwickler erforderlich">
 Sie benötigen Hilfe von Ihrem Entwicklungsteam, um die Integration einzurichten. Bitte teilen Sie diese Anleitung mit ihnen.
</Aside>

## Integrationsübersicht

### Integrationstyp

**Quelle:** Daten werden von Pushwoosh an Ihr System über HTTP oder gRPC basierend auf konfigurierten Event-Auslösern gesendet.

### Wie funktioniert die Integration?

Pushwoosh übermittelt Kommunikations-Event-Daten (z. B. Push-/E-Mail-Aktivitäten) an einen vom Client definierten Endpunkt. Die Daten werden in Batch-Streams in geplanten Intervallen oder bei Erreichen einer minimalen Batch-Größe gesendet.

Daten werden nur gesendet, wenn sie mit den ausgewählten Events, Plattformen und optionalen Filtern (Kampagnen-/Nachrichtencodes, Live-Aktivität) übereinstimmen. Der Client-Endpunkt muss bereit sein, die Daten zu empfangen und optional mit einem Status zu antworten.

### Glossar

**Endpunkt-URL**: Serverseitiger Endpunkt, der den Empfang von Anfragen ermöglicht. Der Client kann bei Bedarf einen Port angeben.

Beispiele:

* `https://clientdomainname.com/webhook_endpoint`  
* `https://clientdomainname.com:8081/webhook_endpoint`

### Liste der synchronisierten Entitäten

* Ereignisse der Kommunikationsstatistik (z. B. Push gesendet, E-Mail zugestellt)

### Anwendungsfälle

* **Echtzeit-Engagement-Tracking**

Überwachen Sie Benutzerinteraktionen wie gesendete Push-Nachrichten, geöffnete E-Mails oder zugestellte Nachrichten in Echtzeit, um eine sofortige Einsicht in die Kampagnenleistung zu erhalten.

* **Integration externer Analysen**

Streamen Sie Events an Analyseplattformen von Drittanbietern für zentralisierte Berichterstattung und Analyse.

* **Automatisierte Benutzer-Workflows**

Lösen Sie Aktionen in externen Systemen (wie CRMs oder Marketing-Automatisierungstools) basierend auf dem Nutzerverhalten aus, z. B. senden Sie eine Follow-up-Nachricht, wenn ein Nutzer eine E-Mail öffnet.

## Einrichten der Integration

Um die Integration einzurichten:

1. Gehen Sie in Ihrem Pushwoosh-Konto zu **Einstellungen > Drittanbieter-Integrationen**, suchen Sie die **Event-Streaming-Integration** und klicken Sie auf **Konfigurieren**.

![Event-Streaming-Integration konfigurieren](/integrations-event-streaming-integration-1.webp)

2. Füllen Sie in dem sich öffnenden Fenster die erforderlichen Felder aus.

![Die erforderlichen Felder ausfüllen](/integrations-event-streaming-integration-2.webp)

#### Endpunkt-URL eingeben

 Geben Sie im Feld **Endpunkt-URL** die vollständige URL ein, an die Events gesendet werden sollen, einschließlich Protokoll und Port, falls zutreffend. 
 
 **Beispiel**

* `https://clientdomainname.com/webhook_endpoint`   
* `https://clientdomainname.com:8081/webhook\_endpoint` 


#### Events auswählen

   
Wählen Sie aus dem Dropdown-Menü **Events** mindestens ein Event aus. Wenn keines ausgewählt ist, schlägt die Validierung fehl. Die Liste der Events wird vom Backend verwaltet und kann sich im Laufe der Zeit ändern.

#### Anmeldeinformationen für die Autorisierung bereitstellen

Wenn Ihr Server dies erfordert, geben Sie den vollständigen Wert für den `Authorization`-Header in das Feld **Autorisierung** ein.

Beispiele:

* `Bearer your_token_here`  
    
* `Basic base64encoded_credentials`

<Aside>Der Wert wird **unverändert** in den `Authorization`-Header (HTTP) oder die gRPC-Metadaten eingefügt. Stellen Sie sicher, dass zwischen dem Authentifizierungsschema und dem Token ein Leerzeichen steht.</Aside>

#### Transporttyp auswählen

Wählen Sie aus dem Dropdown-Menü **Transporttyp** das Übertragungsprotokoll für die Event-Übertragung: **HTTP** oder **gRPC**. Jedes hat ein spezifisches Verhalten und eine spezifische Konfiguration.

##### HTTP

Mit dem **HTTP**-Transporttyp sendet Pushwoosh Daten in Batches basierend auf einer der folgenden Bedingungen:

* Mindestens 100 Events sind zum Senden bereit, oder

* Eine Stunde ist seit der letzten Übertragung vergangen.

Nach dem Senden der Daten wird die Verbindung geschlossen, sobald eine erfolgreiche Antwort empfangen wird.

Wenn der Server mit einem **5xx-Fehler** antwortet, wird Pushwoosh die Anfrage gemäß der definierten Wiederholungsrichtlinie erneut versuchen.

**Wiederholungsmechanismus**

| Versuch | Verzögerung |
| :---- | :---- |
| 1. | 1 Sekunde |
| 2. | 3 Sekunden nach dem 1. Versuch |
| 3. | 8 Sekunden nach dem 2. Versuch |

Wenn alle Wiederholungsversuche fehlschlagen, wird die Anfrage verworfen.

**Timeout**

Das Standard-Timeout für eine Anfrage beträgt **30 Sekunden**. Dies kann auf Anfrage über den Support angepasst werden.

<LinkCard  
  title="Beispiel ansehen" 
  href="/webhook_request_batch.json" 
  target="_blank"
  rel="noopener noreferrer"
/>

##### gRPC

Der gRPC-Transporttyp verwendet **bidirektionales Streaming** zur Datenübertragung. Erfahren Sie mehr in der [gRPC-Dokumentation](https://grpc.io/docs/what-is-grpc/core-concepts/#bidirectional-streaming-rpc).

Ein Stream wird geöffnet, wenn eine der folgenden Bedingungen erfüllt ist:
* Mindestens 1.000 Events sind zur Zustellung bereit
* Eine Stunde ist seit dem letzten Öffnen eines Streams vergangen

Der Stream wird geschlossen, nachdem die Events gesendet wurden. Dadurch wird sichergestellt, dass nicht für jedes einzelne Event in kurzer Zeit ein neuer Stream geöffnet wird.

<LinkCard  
  title="Protobuf-Spezifikation ansehen" 
  href="/webhook.proto" 
/>

**Wiederholungsmechanismus**  
Jedes Event enthält eine eindeutige `uuid`. Wenn ein Event fehlschlägt:

1. Die Antwort muss einen `status` enthalten, der **nicht gleich** `"Success"` ist  
2. Die ursprüngliche `uuid` aus der Anfrage muss enthalten sein

Pushwoosh wird die Zustellung basierend auf dieser Antwort erneut versuchen.

**Verbindungseinstellungen** 

Erweiterte Optionen wie **TLS**, **Keep-Alive** oder **Wiederholungsrichtlinien** werden manuell über den Support konfiguriert und erfordern möglicherweise die Einbeziehung der Entwicklung.

### Plattformen auswählen

Wählen Sie im Abschnitt **Plattformen** mindestens eine Plattform aus, um das Event-Streaming zu aktivieren.

![Mindestens eine Plattform auswählen](/integrations-event-streaming-integration-3.webp)

Unterstützte Plattformen umfassen:

* iOS, Android, macOS, Windows, Amazon, Safari  
* Chrome, Firefox, Internet Explorer, Baidu, Huawei  
* Email, SMS, Line, Xiaomi, WhatsApp

### Erweiterte Filter konfigurieren

Verfeinern Sie im Abschnitt **Erweiterte Filter** die Kriterien für die Event-Zustellung mithilfe von Filtern:

* **Live-Aktivitäts-Events:** Aktivieren Sie diese Option, um Live-Aktivitäts-Events zu empfangen. Diese Events enthalten nur Metadaten, einschließlich `live_activity_id`.  
    
* **Kampagnenfilter:** Nach Kampagnencode filtern. Nur Events, die mit diesen Kampagnen verknüpft sind, werden zugestellt.  
    
* **Nachrichtenfilter:** Nach Nachrichtencode filtern. Nur Events, die mit diesen Nachrichten verknüpft sind, werden zugestellt.

![Erweiterte Filter einstellen](/integrations-event-streaming-integration-4.webp)

Nachdem Sie alle erforderlichen Felder ausgefüllt haben, klicken Sie auf die Schaltfläche **Anwenden**, um Ihre Integration zu speichern und zu aktivieren.
<Aside>Konfigurationsänderungen werden **innerhalb von 15 Minuten** nach dem Absenden wirksam.</Aside>


<Aside type="tip">
Für erweiterte Einstellungen wie benutzerdefinierte Timeouts oder gRPC-Konfigurationen [kontaktieren Sie bitte den Support](https://help.pushwoosh.com/hc/en-us/requests/new).
</Aside>


## Anfragedetails und Beispiel

|            |                                                   |
|-----------------------|----------------------------------------------------------|
| **Endpunkt**          | `https://exampleclientendpoint.com/webhook_endpoint`     |
| **HTTP-Anfrage**      | `POST`                                                   |
| **Authentifizierung**    | Nein                                                       |
| **Anfragetyp**      | Quelle                                                   |
| **Bedeutung der Anfrage**   | Anfragen an den Webhook-Endpunkt senden                    |
| **Header**           | `Content-Type: application/json`                         |

**Beispiel für den Anfrage-Body**

```
{ 
  "event_name": "Email Opened",
  "message_code": "E682-E6D92B9A-53E24868",
  "campaign_id": 961048,
  "platform": "Email",
  "payload": "Welcome to Headway! 👋",
  "application_code": "XXXXX-XXXXX",
  "hwid": "user@example.com",
  "user_id": "USER_ID",
  "timestamp": 1723799271,
  "journey_title": "",
  "journey_point_title": "5_Welcome_ID_new"
}
```

**Antwort**  
Derzeit werden der Antwortcode und der Body ignoriert.

## Woher wissen Sie, dass die Integration funktioniert?

Sie werden an Ihrem konfigurierten Endpunkt Anfragen von Pushwoosh erhalten.