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

# Webhook-Trigger

> Empfange HTTP POST-Anfragen, um Workflows zu triggern und mit externen Systemen zu integrieren.

<img src="https://mintcdn.com/langdock-34/cWyoB3RsITQmAUnM/images/workflows/nodes/triggers/webhook.jpg?fit=max&auto=format&n=cWyoB3RsITQmAUnM&q=85&s=59fa2f909d21ba6c53862a17a72b743b" alt="Webhook Trigger" width="1920" height="903" data-path="images/workflows/nodes/triggers/webhook.jpg" />

## Überblick

Der Webhook-Trigger stellt einen HTTP-Endpoint bereit, den externe Systeme aufrufen können, um deinen Workflow zu starten. Er ist die Brücke zwischen Langdock Workflows und jedem externen Service oder jeder Anwendung, die HTTP-Anfragen senden kann.

<Info>
  **Am besten für**: Echtzeit-Integrationen, externe System-Events, API-gesteuerte Workflows und Verbindung von Services ohne native Integrationen.
</Info>

## Wann du den Webhook-Trigger verwenden solltest

**Perfekt für:**

* Empfangen von Events von externen Services (GitHub, Stripe, eigene Apps)
* Echtzeit-Datenverarbeitung von externen Systemen
* Erstellen benutzerdefinierter Integrationen
* Verbinden von Services, die Webhooks unterstützen (einschließlich anderer Workflows)
* API-gesteuerte Workflows, die von anderen Systemen initiiert werden

**Nicht ideal für:**

* Benutzerbezogene Datenerfassung (verwende Formular-Trigger)
* Geplante wiederkehrende Aufgaben (verwende geplanten Trigger)
* Native Integrations-Events (verwende Integrations-Trigger)

## Konfiguration

### Basis-Einrichtung

<img src="https://mintcdn.com/langdock-34/fKWXz5ObOaiDCf6X/images/workflows/screenshots/WebhookTrigger.png?fit=max&auto=format&n=fKWXz5ObOaiDCf6X&q=85&s=0056901638949096158ac2214fe6a308" alt="Webhook Trigger" width="1964" height="1034" data-path="images/workflows/screenshots/WebhookTrigger.png" />

Wenn du einen Webhook-Trigger hinzufügst, erhältst du automatisch:

* **Eindeutige Webhook-URL**: Ein sicherer Endpoint zum Empfangen von Anfragen
* **Webhook-ID**: Kennung für deinen Webhook

### Sicherheitsoptionen

Mit der Einstellung **Authentifizierungsmethode** legst du fest, wie dein Webhook gesichert wird. Wenn du eine Methode auswählst, wird automatisch ein Secret generiert. Das Secret bleibt erhalten, wenn du zwischen Methoden wechselst – so geht dein konfigurierter Schlüssel nicht versehentlich verloren.

| Methode                     | Funktionsweise                                                                                                                                                   |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Keine Authentifizierung** | Der Webhook ist öffentlich zugänglich – jeder mit der URL kann ihn triggern. Geeignet für Tests und Anwendungsfälle mit geringem Sicherheitsbedarf.              |
| **Header**                  | Das Secret wird über den HTTP-Header `X-Webhook-Secret` übermittelt. Die Webhook-URL bleibt dabei sauber; die UI zeigt einen curl-Beispielbefehl mit dem Header. |
| **Query-Parameter**         | Das Secret wird als `?secret=...` an die URL angehängt. Dies ist das bisherige Verhalten und wird weiterhin vollständig unterstützt.                             |

Wenn eine Authentifizierungsmethode ausgewählt ist, ist ein Secret erforderlich. Wird das Secret-Feld leer gelassen, erscheint eine Validierungswarnung.

**Best Practice:** Verwende immer ein Secret für Produktions-Webhooks, um unbefugten Zugriff zu verhindern. Header-basierte Authentifizierung ist zu bevorzugen, da Secrets so nicht in Server-Logs oder dem Browser-Verlauf auftauchen.

<Note>
  Bestehende Webhooks mit einem Query-Parameter-Secret funktionieren weiterhin ohne Änderungen. Das Feld für die Authentifizierungsmethode ist optional – wenn es nicht gesetzt ist, bleibt das bisherige Verhalten automatisch erhalten.
</Note>

## Wie es funktioniert

1. Externes System sendet HTTP POST-Anfrage an Webhook-URL
2. Webhook validiert Secret (falls konfiguriert, über `X-Webhook-Secret`-Header oder `?secret=`-Query-Parameter)
3. Request-Payload wird geparst (JSON-Body und Query-Parameter)
4. Workflow wird zur Ausführung eingereiht
5. Webhook antwortet sofort mit 202 Accepted
6. Workflow verarbeitet asynchron im Hintergrund

<Note>
  Webhooks verarbeiten immer asynchron. Der Webhook antwortet sofort mit 202 Accepted, während der Workflow im Hintergrund läuft.
</Note>

## Anfragen an deinen Webhook senden

### Basis-Anfrage

```bash theme={null}
# Ohne Authentifizierung
curl -X POST https://app.langdock.com/api/hooks/workflows/DEINE_WORKFLOW_ID \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'

# Header-Authentifizierung (empfohlen)
curl -X POST https://app.langdock.com/api/hooks/workflows/DEINE_WORKFLOW_ID \
  -H "Content-Type: application/json" \
  -H "X-Webhook-Secret: DEIN_SECRET" \
  -d '{"key": "value"}'

# Query-Parameter-Authentifizierung (bisheriges Verhalten)
curl -X POST "https://app.langdock.com/api/hooks/workflows/DEINE_WORKFLOW_ID?secret=DEIN_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

## Beispiel-Anwendungsfälle

### GitHub Webhook-Integration

```text theme={null}
Webhook-Trigger (GitHub Push-Events)
→ Agent: Analysiere Commit-Nachrichten
→ Condition: Prüfe, ob Dokumentation aktualisiert wurde
  → Ja: Regeneriere Docs
  → Nein: Fortfahren
→ Benachrichtigung: Sende Deployment-Status
```

**GitHub Webhook-Konfiguration:**

* URL: Deine Webhook-URL
* Events: Push, Pull Request
* Content-Type: application/json

### Stripe-Zahlungs-Webhook

```text theme={null}
Webhook-Trigger (Stripe Events)
→ Code: Validiere Stripe-Signatur
→ Condition: Prüfe Event-Typ
  → payment_succeeded: Aktualisiere Benutzer-Account
  → payment_failed: Sende Retry-Benachrichtigung
  → subscription_canceled: Deaktiviere Zugriff
```

### Benutzerdefinierte Anwendungs-Integration

```text theme={null}
Webhook-Trigger
→ Code: Validiere und transformiere Daten
→ HTTP Request: Reichere Daten von externer API an
→ Agent: Analysiere und kategorisiere
→ Action: Erstelle Datensatz im CRM
```

### Slack-Command-Integration

```text theme={null}
Webhook-Trigger (von Slack Slash-Command)
→ Agent: Verarbeite natürlichsprachlichen Befehl
→ HTTP Request: Führe Aktion in externem System aus
→ HTTP Response: Sende Ergebnis zurück zu Slack
```

## Auf Webhook-Daten zugreifen

Webhook-Daten sind getrennt in `body` (JSON-Payload) und `query` (URL-Parameter):

### Request-Body

Greife auf JSON-Payload-Felder zu:

```handlebars theme={null}
{{trigger.output.body.user_id}}
{{trigger.output.body.event_type}}
{{trigger.output.body.data.amount}}
```

### Query-Parameter

Greife auf URL-Query-Parameter zu:

```handlebars theme={null}
{{trigger.output.query.param_name}}
```

### Beispiel

Für eine Anfrage wie:

```
POST /api/hooks/workflows/abc123?source=github
Body: {"event": "push", "repo": "my-repo"}
```

Greife auf die Daten zu:

```handlebars theme={null}
Source: {{trigger.output.query.source}}
Event: {{trigger.output.body.event}}
Repo: {{trigger.output.body.repo}}
```

## Response-Codes

| Code | Bedeutung         | Wann es passiert                          |
| ---- | ----------------- | ----------------------------------------- |
| 202  | Accepted          | Workflow erfolgreich eingereiht           |
| 400  | Bad Request       | Ungültige Workflow-ID, Format oder Secret |
| 404  | Not Found         | Workflow nicht gefunden                   |
| 429  | Too Many Requests | Rate-Limit oder Ausgabenlimit erreicht    |
| 500  | Server Error      | Interner Fehler bei Webhook-Verarbeitung  |

## Nächste Schritte

<CardGroup cols={2}>
  <Card title="Integrations-Trigger" icon="grid-2-plus" href="/de/using-langdock/workflows/nodes/triggers/integration-trigger">
    Verwende native Integrations-Events
  </Card>

  <Card title="HTTP-Request-Node" icon="globe" href="/de/using-langdock/workflows/nodes/http-request-node">
    Stelle Anfragen an externe APIs
  </Card>

  <Card title="Code-Node" icon="code" href="/de/using-langdock/workflows/nodes/code-node">
    Validiere und transformiere Webhook-Daten
  </Card>

  <Card title="Erste Schritte" icon="rocket" href="/de/using-langdock/workflows/getting-started">
    Erstelle deinen ersten Workflow
  </Card>
</CardGroup>

## FAQ

<AccordionGroup>
  <Accordion title="Wie löse ich einen Workflow aus einem externen Dienst aus?">
    Nutze einen Webhook-Trigger, wenn ein externer Dienst einen Workflow über eine HTTP-Anfrage starten soll. Konfiguriere den externen Dienst so, dass er die Webhook-URL des Workflows mit der erwarteten Methode, den Headern und dem Payload aufruft.
  </Accordion>

  <Accordion title="Was sollte ich prüfen, wenn ein Webhook-Trigger nicht auslöst?">
    Prüfe die Webhook-URL, die Request-Methode, Anforderungen an Authentifizierung oder Signierung, die Struktur des Payloads und ob der externe Dienst die Anfrage tatsächlich gesendet hat. Stelle außerdem sicher, dass der Workflow aktiv ist und alle Pflichtfelder im eingehenden Payload vorhanden sind.
  </Accordion>
</AccordionGroup>
