# Trigger von Automatisierungen

> Referenz aller Trigger von Automatisierungen nach Kontext, mit ihren Optionen und Filtern, dem, was sie auslöst, und den Trigger-Kennungen für die API.

Ein Trigger legt fest, wann eine Automatisierung einen Durchlauf startet. Diese Seite listet alle Trigger auf, die in jedem [Kontext](/de/docs/automations/#contexts) verfügbar sind, was sie auslöst, ihre Optionen und die Kennung, die Sie in der API dafür verwenden.

## So funktionieren Trigger

- **Ein Trigger pro Automatisierung in der Weboberfläche.** Wählen Sie den Trigger auf der Arbeitsfläche aus und ändern Sie ihn mit **Trigger type**. Per API können Contact- und Email-Automatisierungen mehrere Trigger haben, sofern alle mit demselben ersten Schritt verbunden sind. Event-Automatisierungen haben genau einen.
- **Die Automatisierung muss laufen.** Trigger in Automatisierungen, die Entwürfe, pausiert oder gestoppt sind, werden ignoriert. Events aus der Zeit, bevor Sie eine Automatisierung starten, starten auch später keine Durchläufe.
- **Durchläufe starten innerhalb von Sekunden.** Emailit holt neue Events alle paar Sekunden ab.

### Filter

Der Trigger Contact updated und alle E-Mail-Trigger nehmen unter **Filter events (optional)** einen optionalen Filter an. Jede Regel vergleicht ein Feld des Events mit einem Wert:

- **Operatoren:** **Equals**, **Not equals**, **Contains**, **Not contains**, **Greater than**, **Less than**, **Is set**, **Is not set**, **In**, **Not in**, **Starts with** und **Ends with**. **Greater than** und **Less than** vergleichen Zahlen. Die übrigen vergleichen Text und beachten die Groß-/Kleinschreibung.
- **Abgleichmodus:** **All rules match** oder **Any rule matches**.

Per API ist ein Filter `{ "match": "all", "rules": [{ "field": "...", "operator": "equals", "value": "..." }] }` in `config.filter` des Triggers, wobei `match` auf `all` oder `any` steht. Felder sind Pfade in das Objekt des Events, zum Beispiel `to` oder `link.url`.

## Kontakt-Trigger

| Trigger | API-Kennung | Optionen | Startet einen Durchlauf, wenn |
| --- | --- | --- | --- |
| **Added to audience** | `contact.added_to_audience` | **Audience**. Leer lassen für jede Kontaktliste. | ein Kontakt der Kontaktliste beitritt oder nach einer Abmeldung wieder hinzugefügt wird. |
| **Removed from audience** | `contact.removed_from_audience` | **Audience**. Leer lassen für jede Kontaktliste. | die Mitgliedschaft eines Kontakts in der Kontaktliste gelöscht wird. |
| **Contact updated** | `contact.updated` | Optionaler Filter | sich E-Mail-Adresse, Namen, eigene Felder oder Marketing-Status eines Kontakts ändern. |
| **Date anniversary** | `contact.date_anniversary` | **Date field** | einmal im Jahr, an Monat und Tag, die in einem eigenen Feld vom Typ Datum gespeichert sind. |

### Added to audience

Löst aus, wenn jemand einer Kontaktliste hinzugefügt wird: in der Weboberfläche (**Add subscriber**, **Add to audience**, **Add contact** mit Kontaktlisten), per API ([Abonnent hinzufügen](/de/docs/api-reference/audiences/subscribers/add/) oder [Kontakt erstellen](/de/docs/api-reference/contacts/create/) mit `audiences`) oder mit der Massenaktion **Add to audience**. Auch das erneute Hinzufügen einer abgemeldeten Person löst ihn aus.

Er löst nicht aus für Kontakte, die durch einen [Dateiimport](/de/docs/contacts/import-export/), eine Anmeldung über die [Anmelde-URL](/de/docs/audiences/subscribe-url/) oder den Schritt **Add to audience** oder **Create contact** einer anderen Automatisierung hinzugefügt werden, und auch das erneute Einschalten von **Subscribed** bei einem bestehenden Abonnenten zählt nicht.

### Removed from audience

Löst aus, wenn ein Abonnent gelöscht wird: **Delete** auf der Seite der Kontaktliste, **Remove from audience**, [Abonnent löschen](/de/docs/api-reference/audiences/subscribers/delete/) oder eine Kontaktaktualisierung, deren Liste `audiences` die Kontaktliste nicht mehr enthält. Das Löschen eines Kontakts löst ihn einmal für jede Kontaktliste aus, auf der der Kontakt war. Eine Abmeldung löst ihn nicht aus, weil die Person auf der Kontaktliste bleibt.

### Contact updated

Löst aus, wann immer ein Kontakt in der Weboberfläche oder per API aktualisiert wird, einschließlich der Massenaktionen **Unsubscribe** und **Resubscribe**. Der Filter kann die aktuellen Werte von **Email**, **First name**, **Last name**, **Unsubscribed** und den eigenen Feldern prüfen sowie deren vorherige Werte, die als **Previous email**, **Previous first name** und so weiter aufgeführt sind. Vorherige Werte gibt es nur für die Felder, die sich geändert haben.

Um zum Beispiel darauf zu reagieren, dass ein Kontakt in den Tarif `pro` wechselt, fügen Sie mit **All rules match** zwei Regeln hinzu: `custom_fields.plan` **Equals** `pro` und **Previous plan** (`previous.custom_fields.plan`) **Not equals** `pro`.

### Date anniversary

Wählen Sie ein **Date field**, also ein [eigenes Feld](/de/docs/contacts/custom-fields/) vom Typ Datum, etwa einen Geburtstag. Einmal täglich startet Emailit einen Durchlauf für jeden Kontakt, dessen Datum Monat und Tag von heute hat, in UTC. Das Jahr spielt keine Rolle: Ein Kontakt mit `1990-04-12` erhält jedes Jahr am 12. April einen Durchlauf. Jede Automatisierung verarbeitet bis zu 10.000 Kontakte pro Tag.

> **Datumsfeld per API setzen:** In der aktuellen Beta liest die tägliche Prüfung die Einstellung `date_field` des Triggers, die die Auswahl **Date field** in der Weboberfläche noch nicht setzt. Wenn Ihre Jahrestags-Automatisierung keine Durchläufe startet, setzen Sie die Einstellung mit [Automatisierung aktualisieren](/de/docs/api-reference/automations/update/): Geben Sie dem Trigger `"config": { "date_field": "birthday" }` mit dem Schlüssel des eigenen Felds ohne Präfix.

### Kontakt-Trigger nur per API

| API-Kennung | Startet einen Durchlauf, wenn |
| --- | --- |
| `contact.loaded_email` | ein Kontakt eine getrackte E-Mail lädt, die an seine Adresse gesendet wurde. |
| `contact.clicked_in_email` | ein Kontakt auf einen getrackten Link in einer E-Mail klickt, die an seine Adresse gesendet wurde. |
| `contact.on_date` | das in `config.date_field` festgelegte Datumsfeld eines Kontakts dem heutigen Datum in UTC entspricht. Löst einmal aus, nicht jedes Jahr. |

Die API akzeptiert außerdem `contact.visits_url`, `contact.on_purchase` und `contact.on_event`, aber noch löst nichts sie aus.

## E-Mail-Trigger

E-Mail-Trigger lösen bei E-Mails in Ihrem Workspace aus: alles, was Sie per API oder SMTP senden, E-Mails aus Kampagnen und Automatisierungen sowie eingehende E-Mails bei **Email received**. Jeder Durchlauf betrifft eine E-Mail.

| Trigger | API-Kennung | Startet einen Durchlauf, wenn | Filterfelder |
| --- | --- | --- | --- |
| **Email delivered** | `email.delivered` | der Server des Empfängers die E-Mail angenommen hat. | From, To, Subject, Status |
| **Email bounced** | `email.bounced` | die E-Mail dauerhaft fehlgeschlagen ist. | From, To, Subject, Status |
| **Email failed** | `email.failed` | die E-Mail wegen eines Fehlers nicht gesendet werden konnte. | From, To, Subject, Status |
| **Email suppressed** | `email.suppressed` | die E-Mail nicht gesendet wurde, weil der Empfänger gesperrt ist. | From, To, Subject, Status |
| **Email complained** | `email.complained` | der Empfänger die E-Mail als Spam gemeldet hat. | From, To, Subject, Status |
| **Email received** | `email.received` | eine eingehende E-Mail angekommen ist. Siehe [Eingehende E-Mails](/de/docs/inbound/). | From, To, Subject |
| **Email loaded** | `email.loaded` | der Empfänger eine getrackte E-Mail geladen hat. | Recipient, Sender, Subject, IP address, User agent |
| **Email clicked** | `email.clicked` | der Empfänger auf einen getrackten Link geklickt hat. | Recipient, Sender, Subject, Link URL, IP address, User agent |

Der Editor listet außerdem **Email accepted**, **Email scheduled**, **Email attempted** und **Email rejected** auf. Automatisierungen mit diesen Triggern lassen sich noch nicht speichern, wählen Sie daher einen der Trigger oben. Per API können Sie außerdem `email.canceled` verwenden, das auslöst, wenn eine geplante oder in der Warteschlange stehende E-Mail storniert wird.

> **Schleifen vermeiden:** Auch E-Mails, die Automatisierungen senden, lösen E-Mail-Trigger aus. Eine Automatisierung, die bei jedem Bounce eine E-Mail sendet, würde auch für ihre eigene Benachrichtigung laufen, wenn diese bounct. Fügen Sie einen Filter hinzu, zum Beispiel **To** **Not equals** Ihre Benachrichtigungsadresse, damit sich eine Automatisierung nicht selbst auslösen kann.

## Event-Trigger

Event-Automatisierungen lassen sich vorerst nur per API erstellen.

| Trigger | API-Kennung | Startet einen Durchlauf, wenn |
| --- | --- | --- |
| **Manual trigger** | `system.manual` | Sie [Durchlauf auslösen](/de/docs/api-reference/automations/trigger/) aufrufen. |
| Schedule | `system.schedule` | Reserviert. Noch löst nichts ihn aus, rufen Sie daher stattdessen den Trigger-Endpunkt aus Ihrem eigenen Scheduler auf, etwa einem Cronjob. |

### Manual trigger

Rufen Sie den Trigger-Endpunkt einer laufenden Automatisierung auf, optional mit einem Objekt `payload`:

```bash
curl https://api.emailit.com/v2/automations/aut_3Mv8Xq2nKp5Lt/trigger \
  -X POST \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "payload": { "email": "ada@example.com", "plan": "pro" } }'
```

Der Endpunkt gibt `{ "message": "Automation trigger dispatched." }` zurück, oder `422`, wenn die Automatisierung nicht läuft. Schritte können den Payload als `{{payload.email}}`, `{{payload.plan}}` und so weiter lesen. Emailit ergänzt den Payload um `automation_id`.

> **Ein Aufruf erreicht jede manuelle Automatisierung:** In der aktuellen Beta startet ein Aufruf des Trigger-Endpunkts einen Durchlauf in jeder laufenden Automatisierung des Workspace, deren Trigger **Manual trigger** ist, nicht nur in der aus der URL. Wenn Sie mehrere haben, lassen Sie jede zuerst mit einem Schritt **Condition** auf `payload.automation_id` ihre eigene ID prüfen.

`system.manual` funktioniert auch als Trigger in Contact- und Email-Automatisierungen, die per API erstellt wurden. Geben Sie `contact_id` (eine `con_`-ID) oder `email_id` im Payload an, um die Automatisierung für diesen Kontakt oder diese E-Mail auszuführen.

## Für Schritte verfügbare Daten

Schritteinstellungen, etwa der Empfänger von **Send email** oder die Werte von **Edit contact**, können Platzhalter enthalten, die für jeden Durchlauf ausgefüllt werden:

| Platzhalter | Enthält |
| --- | --- |
| `{{contact.<field>}}` | Den Kontakt des Durchlaufs in Contact-Automatisierungen, zum Beispiel `{{contact.email}}` oder `{{contact.custom_fields.plan}}`. |
| `{{email.<field>}}` | Die E-Mail des Durchlaufs in Email-Automatisierungen, zum Beispiel `{{email.rcpt_to}}` oder `{{email.subject}}`. |
| `{{payload.}}` | Das Event, das den Durchlauf gestartet hat. Bei Events im Webhook-Format liegen die Daten des Events unter `payload.object`, zum Beispiel `{{payload.object.to}}`. Bei manuellen Triggern ist es Ihr `payload`. |
| `{{meta.}}` | Zusätzliche Daten, die Emailit zum Durchlauf speichert. |

E-Mail-Vorlagen, die **Send email** sendet, verwenden [Temple](/de/docs/templates/temple/) mit denselben Daten. Siehe [Schritte](/de/docs/automations/steps/#send-email).

## Siehe auch

  - [Schritte](/de/docs/automations/steps/): Was ein Durchlauf tun kann, sobald er gestartet ist.
  - [Webhook-Event-Typen](/de/docs/webhooks/event-types/): Die Events hinter Kontakt- und E-Mail-Triggern.

---
Quelle: https://emailit.com/de/docs/automations/triggers/
