> For the complete documentation index, see [llms.txt](https://docs.enginsight.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.enginsight.com/docs/knowledge-base/alarme/wie-erstelle-ich-fur-enginsight-alarme-eigene-webhook-payloads-mit-dynamischen-platzhaltern.md).

# Wie erstelle ich für Enginsight Alarme eigene Webhook-Payloads mit dynamischen Platzhaltern?

Webhooks bieten dir die Möglichkeit, Alarme mit Drittanbieter-Anwendungen zu verknüpfen, um Benachrichtigungen auch außerhalb der Enginsight Plattform, z.B. in einem Messenger oder externen Ticketsystem, erhalten zu können.

Dabei sendet Enginsight eine HTTP-Anfrage (typischerweise POST) an die angegebene Webhook-URL und übermittelt darin einen Payload, also einen spezifischen Inhalt, im JSON-Format.

{% hint style="success" icon="lightbulb-exclamation" %}
Mehr Informationen, wie du in der Enginsight Plattform einen Webhook erstellst, findest du im Enginsight Handbuch: [Webhook hinzufügen](https://docs.enginsight.com/docs/manual/bedienung-der-plattform/alarme-beta/webhooks-beta/webhook-hinzufugen-beta).&#x20;
{% endhint %}

***

## Benutzerdefinierte Payloads mit dynamischen Platzhaltern

Du hast beim Hinzufügen eines Webhooks in der Enginsight Plattform die Möglichkeit, einen benutzerdefinierten Payload anzugeben, in dem du dynamische Platzhalter verwenden kannst.&#x20;

Beim Auslösen eines Alarms, für den ein Webhook definiert wurde, ersetzt Enginsight diese Platzhalter mit den tatsächlichen Werten, bevor die HTTP-Anfrage an die angegebene Webhook-URL gesendet wird.

### Verfügbare Platzhalter

Enginsight stellt folgende Platzhalter zur Verfügung:

<table><thead><tr><th width="353.01953125">Platzhalter</th><th width="89.0390625">Daten-Typ</th><th>Beschreibung</th></tr></thead><tbody><tr><td><code>alert_id</code></td><td>String</td><td>Eindeutige Kennung des Alarms</td></tr><tr><td><code>alert_name</code></td><td>String</td><td>Bezeichnung des Alarms</td></tr><tr><td><code>alert_severity</code></td><td>String</td><td>Kritikalität des Alarms</td></tr><tr><td><code>issue_id</code></td><td>String</td><td>Eindeutige Kennung des Vorkommnisses (Auffälligkeit / Issue oder Vorfall / Incident), das durch den Alarm ausgelöst wurde</td></tr><tr><td><code>organisation_id</code></td><td>String</td><td>Eindeutige Kennung der Organisation, die der Alarm betrifft</td></tr><tr><td><code>organisation_name</code></td><td>String</td><td>Name der Organisation, die der Alarm betrifft</td></tr><tr><td><code>platform</code></td><td>String</td><td>URL, unter der die Enginsight Plattform aufgerufen werden kann</td></tr><tr><td><code>reference_conditions[x].groups['key']</code></td><td>String</td><td><p>Wert eines Felds in einem <a href="https://docs.enginsight.com/docs/manual/bedienung-der-plattform/siem/workflows">SIEM-Workflow</a>:</p><ul><li><code>x</code> muss ein Integer-Wert sein</li><li><code>'key'</code> muss dem Feldnamen entsprechen, wie er im Workflow angegeben ist, z.B. <code>'gen.username'</code></li></ul><div data-gb-custom-block data-tag="hint" data-style="warning" class="hint hint-warning"><p><strong>Bitte beachte</strong>: Dieser Platzhalter ist ausschließlich für die <a href="https://docs.enginsight.com/docs/manual/bedienung-der-plattform/alarme-beta/ubersicht-beta/alarm-hinzufugen-beta#schritt-1-alarmart">Alarmart</a> <strong>Workflow (SIEM)</strong> verfügbar.</p></div></td></tr><tr><td><code>reference_displayName</code></td><td>String</td><td>Anzeigename des Objekts, für das der Alarm gilt</td></tr><tr><td><code>reference_id</code></td><td>String</td><td>Eindeutige Kennung des Objekts, für das der Alarm gilt</td></tr><tr><td><code>reference_severity</code></td><td>String</td><td><p>Schweregrad eines SIEM-Workflows</p><div data-gb-custom-block data-tag="hint" data-style="warning" class="hint hint-warning"><p><strong>Bitte beachte</strong>: Dieser Platzhalter ist ausschließlich für die <a href="https://docs.enginsight.com/docs/manual/bedienung-der-plattform/alarme-beta/ubersicht-beta/alarm-hinzufugen-beta#schritt-1-alarmart">Alarmart</a> <strong>Workflow (SIEM)</strong> verfügbar.</p></div></td></tr><tr><td><code>reference_type</code></td><td>String</td><td>Art des Objekts, für das der Alarm gilt</td></tr></tbody></table>

***

### Struktur eines Payloads mit Platzhaltern

Es müssen folgende Bedingungen erfüllt sein, damit Enginsight verwendete Platzhalter korrekt ersetzen und die HTTP-Anfrage an die Webhook-URL senden kann:

* Der Payload muss in gültigem JSON vorliegen.
* Platzhalter müssen in doppelte geschweifte Klammern `{{...}}` gesetzt werden, z.B. `{{alert_severity}}`.
* Wenn dein Zielsystem Strings erwartet, müssen die Platzhalter zusätzlich in doppelte Anführungszeichen `"{{...}}"` gesetzt werden, z.B. `"{{alert_severity}}"`.
* Wenn dein Zielsystem Zahlen oder Boolesche Werte erwartet, müssen die doppelten Anführungszeichen nur dann gesetzt werden, wenn dein Zielsystem zusätzlich auch Strings akzeptiert.

Die Namen der JSON-Keys selbst sind frei wählbar.

***

### Beispiele für benutzerdefinierte Payloads

In den folgenden Beispiel-Payloads gehen wir davon aus, dass du ein externes Ticketsystem verwendest. Dieses erwartet beim Erstellen eines Tickets für einen in der Enginsight Plattform ausgelösten Alarm den Wert **severity**.

Dies bedeutet, dass du in deinen benutzerdefinierten Payloads den Platzhalter `{{alert_severity}}` verwenden musst, um die Dringlichkeit eines ausgelösten Alarms mitzugeben oder den Platzhalter `{{reference_severity}}`, um den Schwergrad eines SIEM-Workflows mitzugeben.

#### Beispiel 1: Angabe der Kritikalität eines Alarms als eigenes Key-Value-Paar

<pre><code>{ 
<strong>"severity": "{{alert_severity}}", 
</strong>"alert_id": "{{alert_id}}", 
"title": "{{alert_name}}" 
}
</code></pre>

#### Beispiel 2: Angabe der Kritikalität eines Alarms innerhalb eines benutzerdefinierten Texts

<pre><code>{ 
"issue_id": "{{issue_id}}", 
<strong>"description": "Der Alarm {{alert_name}} hat den Schweregrad {{alert_severity}}." 
</strong>}
</code></pre>

#### Beispiel 3: Angabe des Schweregrades eines SIEM-Workflows&#x20;

<pre><code>{
"title": "{{alert_name}}",
<strong>"severity": "{{reference_severity}}",
</strong>"username": "{{reference_conditions[0].groups['gen.username']}}",
"hostname": "{{reference_conditions[0].groups['gen.hostname']}}"
}
</code></pre>

***

## Standard-Templates für Webhook-Payloads

Wenn du keinen vollständig benutzerdefinierten Payload angeben möchtest, kannst du auch eines der Standard-Templates nutzen und JSON-Keys sowie dynamische Platzhalter entsprechend ergänzen.

{% hint style="success" icon="lightbulb-exclamation" %}
Mehr Informationen, welche Standard-Templates für Webhook-Payloads es gibt, findest du in der Knowledge Base: [Welche Standard-Templates für Webhook-Payloads gibt es bei Enginsight Alarmen?](/docs/knowledge-base/alarme/welche-standard-templates-fur-webhook-payloads-gibt-es-bei-enginsight-alarmen.md)
{% endhint %}

***
