Zum Inhalt springen
Doku

Workflows aus Triggern und Schritten aufbauen, ausführen und ihre Durchläufe prüfen.

Basis-URLhttps://api.emailit.com/v2AuthentifizierungFehlerRate Limits

Automatisierung erstellen

Erstellt eine Automatisierung im Status draft aus einem Graphen von Schritten und Verbindungen. Erfordert einen API-Schlüssel mit dem Scope full. Automatisierungen sind in der Beta.

Die Automatisierung tut nichts, bis Sie sie starten. Jeder Durchlauf kostet beim Start 3 Credits, und jede E-Mail, die send_email oder forward_email sendet, kostet einen weiteren Credit. In einem nicht verifizierten Workspace können diese Aktionen nur an die E-Mail-Adressen der Konten von Workspace-Mitgliedern senden.

POST/automations

Body-Parameter

contextstringerforderlich
Worum es in jedem Durchlauf geht: contact, email oder event. Der Kontext bestimmt, welche Trigger und Aktionen Sie verwenden können, und lässt sich später nicht ändern. Siehe Kontexte.
namestringerforderlich
Name der Automatisierung, bis zu 191 Zeichen.
descriptionstring | null
Optionale Beschreibung.
settingsobject
Regeln für Durchläufe. Siehe Einstellungen.
stepsobject[]erforderlich
Die Trigger- und Aktionsschritte, mindestens ein Trigger. Siehe Schritte.
connectionsobject[]erforderlich
Die Kanten zwischen den Schritten. Übergeben Sie [] für einen Graphen, der nur aus einem Trigger besteht. Siehe Verbindungen.

Einstellungen

on_step_failurestringStandardwert: stop
stop markiert den Durchlauf als failed, wenn ein Schritt fehlschlägt. skip protokolliert den fehlgeschlagenen Schritt und lässt den Rest des Durchlaufs zu Ende laufen.
allow_reentrybooleanStandardwert: true
false überspringt einen Trigger, wenn derselbe Kontakt (oder dieselbe E-Mail) in dieser Automatisierung bereits einen laufenden Durchlauf hat.
max_concurrent_runsintegerStandardwert: 0
Maximale Anzahl gleichzeitiger Durchläufe im Status running. 0 bedeutet kein Limit.
cooldown_secondsintegerStandardwert: 0
Überspringt einen Trigger, wenn derselbe Kontakt (oder dieselbe E-Mail) innerhalb dieser Anzahl von Sekunden einen Durchlauf in dieser Automatisierung gestartet hat.

Schritte

keystringerforderlich
Ihre Kennung für den Schritt, eindeutig innerhalb der Automatisierung, zum Beispiel welcome_email. Verbindungen, Schrittstatistiken und Aktualisierungen verweisen über diesen Schlüssel auf Schritte.
typestringerforderlich
trigger oder action.
triggerstring
Name des Triggers, erforderlich, wenn type den Wert trigger hat. Siehe Trigger.
actionstring
Name der Aktion, erforderlich, wenn type den Wert action hat. Siehe Aktionen.
configobject
Einstellungen für den Trigger oder die Aktion.

Verbindungen

fromstringerforderlich
Schlüssel des Schritts, an dem die Kante beginnt.
tostringerforderlich
Schlüssel des nächsten Schritts.
branchstringStandardwert: default
Welches Ergebnis des Schritts in from dieser Kante folgt. Schritte vom Typ condition verwenden yes und no, Schritte vom Typ experiment die Schlüssel der Varianten. Alle anderen Schritte verwenden default.

Kontexte

Kontext Ein Durchlauf betrifft Trigger Regeln
contact Einen Kontakt. send_email geht an diesen Kontakt. contact.*, system.* Ein oder mehrere Trigger. Sie müssen alle mit derselben ersten Aktion verbunden sein.
email Eine E-Mail (gesendet oder empfangen). email.*, system.* Ein oder mehrere Trigger. Sie müssen alle mit derselben ersten Aktion verbunden sein.
event Nur den Payload des Triggers. event.*, system.* Genau ein Trigger.

Jede Aktion muss von einem Trigger aus erreichbar sein. Ein Durchlauf beginnt bei der Aktion, die mit dem ausgelösten Trigger verbunden ist, und folgt den Verbindungen:

  • condition folgt je nach Ergebnis nur der Kante, deren branch yes oder no ist.
  • experiment folgt den Kanten der gewählten Variante. Wenn dieser Pfad endet, setzt sich der Durchlauf an den default-Kanten des Experiment-Schritts fort.
  • wait verzögert den nächsten Schritt.
  • Alle anderen Aktionen folgen ihren default-Kanten. Ein Schritt mit mehreren ausgehenden Kanten führt sie alle aus.

Ein Durchlauf ist completed, wenn keine Schritte mehr übrig sind, failed, wenn ein Schritt fehlschlägt (mit on_step_failure: "stop"), und canceled, wenn Sie die Automatisierung stoppen.

Trigger

Trigger Kontext Wird ausgelöst, wenn
contact.added_to_audience contact Ein Kontakt eine Kontaktliste abonniert, auch bei erneuter Anmeldung.
contact.removed_from_audience contact Ein Abonnent aus einer Kontaktliste gelöscht wird.
contact.updated contact Ein Kontakt aktualisiert wird.
contact.loaded_email contact Ein Empfänger, der ein Kontakt im Workspace ist, eine E-Mail öffnet.
contact.clicked_in_email contact Ein Empfänger, der ein Kontakt im Workspace ist, auf einen getrackten Link klickt.
contact.date_anniversary contact Täglich um 00:00 UTC, für Kontakte, deren eigenes Datumsfeld (YYYY-MM-DD) den heutigen Monat und Tag enthält.
contact.on_date contact Täglich um 00:00 UTC, für Kontakte, deren eigenes Datumsfeld dem heutigen Datum entspricht.
contact.visits_url, contact.on_purchase, contact.on_event contact Werden akzeptiert, aber Emailit löst sie noch nicht aus.
email.received email Eine eingehende E-Mail eintrifft.
email.delivered, email.bounced, email.complained, email.loaded, email.clicked, email.failed, email.suppressed, email.canceled email Das gleichnamige E-Mail-Event eintritt.
event.<name> event Jeder Name, der mit event. beginnt. Emailit löst noch keine event.*-Events aus; starten Sie Event-Automatisierungen mit system.manual.
system.manual alle Sie Durchlauf auslösen aufrufen.
system.schedule alle Wird akzeptiert, aber Emailit löst geplante Trigger noch nicht aus.

Felder in config für Trigger:

audience_idstring
Für contact.added_to_audience und contact.removed_from_audience: nur für diese Kontaktliste (aud_…) auslösen.
date_fieldstring
Für contact.date_anniversary und contact.on_date: der Schlüssel des eigenen Felds, das das Datum enthält, zum Beispiel birthday.
filterobject

Nur auslösen, wenn das Event passt: { "match": "all", "rules": [{ "field": "subject", "operator": "contains", "value": "Invoice" }] }. match ist all (Standardwert) oder any. field ist ein Pfad mit Punkten in das object des Events, zum Beispiel to oder email.subject; ein vorangestelltes payload. wird ignoriert.

Operatoren: equals, not_equals, contains, not_contains, starts_with, ends_with, greater_than, less_than, in, not_in, is_set, is_not_set. Jeder Operator außer is_set und is_not_set braucht einen value; in und not_in erwarten ein Array.

Aktionen

Aktion Kontext Konfiguration
send_email alle type (erforderlich, template), template_id (erforderlich: eine tem_-ID oder der Alias einer veröffentlichten Vorlage), from, subject, reply_to, to
forward_email email, event to (erforderlich), from, subject, email_id
wait alle seconds (erforderlich, 0 bis 2.592.000, also 30 Tage)
condition alle filter (erforderlich, siehe unten)
experiment alle variants (erforderlich), control
call_webhook alle url (erforderlich), method, headers, body
run_automation alle automation_id (erforderlich)
end alle Keine
add_to_audience contact audience_id (erforderlich)
remove_from_audience contact audience_id (erforderlich)
edit_contact contact fields (erforderlich)
add_to_suppressions email, event type, reason, email
remove_from_suppressions email, event email
create_contact email, event email, first_name, audience_id
  • send_email sendet die Vorlage. from ist standardmäßig der Absender der Vorlage und muss auf einer verifizierten Versanddomain liegen. subject überschreibt den Betreff der Vorlage. reply_to ist eine Adresse oder ein Array von Adressen. Im Kontext contact geht die E-Mail an den Kontakt des Durchlaufs; in den Kontexten email und event setzen Sie to.
  • forward_email leitet die E-Mail des Durchlaufs (oder die E-Mail in email_id) an to weiter. from ist standardmäßig der ursprüngliche Absender und subject standardmäßig Fwd: <original subject>.
  • condition erwartet { "match": "all" | "any", "rules": [...] } mit denselben Operatoren wie Trigger-Filter. Felder ohne Präfix beziehen sich auf den Kontakt des Durchlaufs (first_name, custom_fields.plan) oder auf die E-Mail (rcpt_to, subject); stellen Sie einem Feld contact., email., payload. oder meta. voran, um es eindeutig anzugeben. Der Schritt wird mit yes oder no fortgesetzt.
  • experiment wählt eine der variants (einschließlich control), jeweils { "key": "a", "weight": 50 }, zufällig nach Gewichtung aus und setzt den Durchlauf auf dem Zweig fort, der nach dem gewählten Schlüssel benannt ist.
  • call_webhook sendet eine HTTP-Anfrage (Standardmethode POST, JSON als Content-Type) und protokolliert die Statusklasse (2xx, 4xx, 5xx) oder timeout oder network_error. Eine Antwort außerhalb von 2xx lässt den Schritt nicht fehlschlagen.
  • run_automation startet einen Durchlauf einer anderen laufenden Automatisierung mit dem Payload dieses Durchlaufs. Der aktuelle Durchlauf läuft weiter.
  • edit_contact erwartet fields: [{ "key": "first_name", "value": "Ada" }]. Die Schlüssel email, first_name, last_name und unsubscribed aktualisieren den Kontakt; jeder andere Schlüssel setzt ein eigenes Feld.
  • add_to_suppressions sperrt die Adresse des Durchlaufs (Standardwert für type: recipient, für reason: automation). remove_from_suppressions hebt die Sperrung auf. Im Kontext event übergeben Sie email.
  • create_contact erstellt den Kontakt (oder findet den vorhandenen) und meldet ihn optional bei audience_id an. Im Kontext email ist email standardmäßig der Empfänger der E-Mail.

String-Werte in jeder Aktionskonfiguration können Platzhalter enthalten, die Emailit beim Ausführen des Schritts füllt: {{contact.email}}, {{email.mail_from}}, {{payload.object.subject}} oder {{meta.source_event_id}}, zum Beispiel "to": "{{email.mail_from}}". Vorlagen, die send_email sendet, rendern außerdem die Felder des Kontakts direkt, etwa {{ first_name }}.

Rückgabe

Gibt 201 Created mit der Automatisierung in data zurück, einschließlich der ID jedes Schritts (aus_…) und der Verbindungen. status ist draft.

Beim Erstellen wird die Struktur des Graphen geprüft: Trigger- und Aktionsnamen für den Kontext, eindeutige Schlüssel, gültige Verbindungen, Erreichbarkeit und ob jede Absenderadresse from in send_email eine verifizierte Versanddomain verwendet. Nicht geprüft wird, ob jede Aktionskonfiguration vollständig ist; das übernimmt Automatisierung aktualisieren. Fehler geben 400 mit errors zurück, nach Feldpfad gegliedert.

POST/automations
Terminal
curl -X POST https://api.emailit.com/v2/automations \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Welcome series",
    "context": "contact",
    "description": "Welcome new subscribers, then nudge free users a day later.",
    "settings": { "allow_reentry": false },
    "steps": [
      {
        "key": "joined",
        "type": "trigger",
        "trigger": "contact.added_to_audience",
        "config": { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV" }
      },
      {
        "key": "welcome_email",
        "type": "action",
        "action": "send_email",
        "config": { "type": "template", "template_id": "welcome", "from": "Acme <hello@acme.com>" }
      },
      {
        "key": "wait_1_day",
        "type": "action",
        "action": "wait",
        "config": { "seconds": 86400 }
      },
      {
        "key": "is_free_user",
        "type": "action",
        "action": "condition",
        "config": {
          "filter": {
            "match": "all",
            "rules": [{ "field": "custom_fields.plan", "operator": "is_not_set" }]
          }
        }
      },
      {
        "key": "upgrade_tips",
        "type": "action",
        "action": "send_email",
        "config": { "type": "template", "template_id": "getting-started-tips" }
      },
      { "key": "done", "type": "action", "action": "end" }
    ],
    "connections": [
      { "from": "joined", "to": "welcome_email" },
      { "from": "welcome_email", "to": "wait_1_day" },
      { "from": "wait_1_day", "to": "is_free_user" },
      { "from": "is_free_user", "to": "upgrade_tips", "branch": "yes" },
      { "from": "is_free_user", "to": "done", "branch": "no" }
    ]
  }'
JSON
{
  "data": {
    "id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    "context": "contact",
    "name": "Welcome series",
    "description": "Welcome new subscribers, then nudge free users a day later.",
    "status": "draft",
    "settings": { "allow_reentry": false },
    "last_triggered_at": null,
    "published_at": null,
    "created_at": "2026-10-01T09:41:05.318274+00:00",
    "updated_at": "2026-10-01T09:41:05.318274+00:00",
    "steps": [
      {
        "id": "aus_3ZqpuxjmL1szZ8og6uGL1mT6QEJ",
        "key": "joined",
        "type": "trigger",
        "trigger": "contact.added_to_audience",
        "action": null,
        "config": { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV" }
      },
      {
        "id": "aus_3V5TZIXXak1SSmGcOmzPOeFaguQ",
        "key": "welcome_email",
        "type": "action",
        "trigger": null,
        "action": "send_email",
        "config": { "type": "template", "template_id": "welcome", "from": "Acme <hello@acme.com>" }
      },
      {
        "id": "aus_3vM0ORwEXCQcyS7rylfQBQEXjVk",
        "key": "wait_1_day",
        "type": "action",
        "trigger": null,
        "action": "wait",
        "config": { "seconds": 86400 }
      },
      {
        "id": "aus_3HOgOzxaXBgVRpLFtpvJNo4vd5c",
        "key": "is_free_user",
        "type": "action",
        "trigger": null,
        "action": "condition",
        "config": {
          "filter": {
            "match": "all",
            "rules": [{ "field": "custom_fields.plan", "operator": "is_not_set" }]
          }
        }
      },
      {
        "id": "aus_3gCI5SWMPFVhOSawR6nz8sF55wp",
        "key": "upgrade_tips",
        "type": "action",
        "trigger": null,
        "action": "send_email",
        "config": { "type": "template", "template_id": "getting-started-tips" }
      },
      {
        "id": "aus_3Pq7Wd2LxN8cVt5RmK0sHy4BfJe",
        "key": "done",
        "type": "action",
        "trigger": null,
        "action": "end",
        "config": {}
      }
    ],
    "connections": [
      { "from": "joined", "to": "welcome_email", "branch": "default" },
      { "from": "welcome_email", "to": "wait_1_day", "branch": "default" },
      { "from": "wait_1_day", "to": "is_free_user", "branch": "default" },
      { "from": "is_free_user", "to": "upgrade_tips", "branch": "yes" },
      { "from": "is_free_user", "to": "done", "branch": "no" }
    ]
  },
  "message": "Automation was successfully created.",
  "notify": true
}

Automatisierung abrufen

Ruft eine Automatisierung mit ihrem vollständigen Graphen ab. Erfordert einen API-Schlüssel mit dem Scope full.

GET/automations/{id}

Pfadparameter

idstringerforderlich
Die ID der Automatisierung (aut_…).

Rückgabe

Gibt die Automatisierung in data zurück.

idstring
ID der Automatisierung mit dem Präfix aut_.
contextstring
contact, email oder event.
namestring
Name der Automatisierung.
descriptionstring | null
Optionale Beschreibung.
statusstring
draft, running, paused, stopped oder archived.
settingsobject
Regeln für Durchläufe: on_step_failure, allow_reentry, max_concurrent_runs, cooldown_seconds. Leer, wenn Sie keine festgelegt haben.
last_triggered_atstring | null
Zeitpunkt, zu dem die Automatisierung zuletzt einen Durchlauf gestartet hat.
published_atstring | null
Zeitpunkt, zu dem die Automatisierung zum ersten Mal gestartet wurde.
stepsobject[]
Für jeden Schritt id (aus_…), key, type, trigger, action und config. Details zu Durchläufen verweisen über id auf Schritte, Statistiken über key.
connectionsobject[]
Für jede Kante die Schrittschlüssel from und to sowie ihr branch.

Was jeder Trigger, jede Aktion und jede Einstellung bedeutet, erfahren Sie unter Automatisierung erstellen. Gibt 404 zurück, wenn die Automatisierung nicht existiert oder gelöscht wurde.

GET/automations/{id}
Terminal
curl https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "data": {
    "id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    "context": "contact",
    "name": "Welcome series",
    "description": "Welcome new subscribers, then nudge free users a day later.",
    "status": "running",
    "settings": { "allow_reentry": false },
    "last_triggered_at": "2026-10-03T14:12:40.551870+00:00",
    "published_at": "2026-10-01T10:00:02.204118+00:00",
    "created_at": "2026-10-01T09:41:05.318274+00:00",
    "updated_at": "2026-10-03T14:12:40.551870+00:00",
    "steps": [
      {
        "id": "aus_3ZqpuxjmL1szZ8og6uGL1mT6QEJ",
        "key": "joined",
        "type": "trigger",
        "trigger": "contact.added_to_audience",
        "action": null,
        "config": { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV" }
      },
      {
        "id": "aus_3V5TZIXXak1SSmGcOmzPOeFaguQ",
        "key": "welcome_email",
        "type": "action",
        "trigger": null,
        "action": "send_email",
        "config": { "type": "template", "template_id": "welcome", "from": "Acme <hello@acme.com>" }
      },
      {
        "id": "aus_3vM0ORwEXCQcyS7rylfQBQEXjVk",
        "key": "wait_1_day",
        "type": "action",
        "trigger": null,
        "action": "wait",
        "config": { "seconds": 86400 }
      }
    ],
    "connections": [
      { "from": "joined", "to": "welcome_email", "branch": "default" },
      { "from": "welcome_email", "to": "wait_1_day", "branch": "default" }
    ]
  }
}

Automatisierung aktualisieren

Aktualisiert Name, Beschreibung, Einstellungen oder Graphen einer Automatisierung. Erfordert einen API-Schlüssel mit dem Scope full. Der Kontext lässt sich nicht ändern.

Um den Graphen zu ändern, senden Sie steps und connections zusammen; sie ersetzen den aktuellen Graphen. Schritte, deren key bereits existiert, behalten ihre ID und ihren Durchlaufverlauf, Schritte, die Sie weglassen, werden gelöscht, und neue Schlüssel werden hinzugefügt. Anders als beim Erstellen wird beim Aktualisieren auch die Konfiguration jeder Aktion validiert (zum Beispiel braucht send_email die Felder type und template_id und wait das Feld seconds).

Pausieren Sie die Automatisierung, bevor Sie den Graphen einer laufenden Automatisierung ändern, und starten Sie sie dann erneut, damit die neuen Trigger wirksam werden.

POST/automations/{id}

Pfadparameter

idstringerforderlich
Die ID der Automatisierung (aut_…).

Body-Parameter

namestring
Name, bis zu 191 Zeichen.
descriptionstring
Beschreibung.
settingsobject
Ersetzt alle Einstellungen: on_step_failure, allow_reentry, max_concurrent_runs, cooldown_seconds. Siehe Einstellungen.
stepsobject[]
Die vollständige Liste der Schritte. Erforderlich, wenn Sie connections senden. Siehe Schritte.
connectionsobject[]
Die vollständige Liste der Verbindungen. Erforderlich, wenn Sie steps senden. Siehe Verbindungen.

Rückgabe

Gibt die aktualisierte Automatisierung in data zurück, mit message und notify. Gibt bei fehlgeschlagener Validierung 400 mit errors nach Feldpfad zurück und 404, wenn die Automatisierung nicht existiert.

POST/automations/{id}
Terminal
curl -X POST https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Welcome series (v2)",
    "settings": { "allow_reentry": false, "on_step_failure": "skip" }
  }'
JSON
{
  "data": {
    "id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    "context": "contact",
    "name": "Welcome series (v2)",
    "description": "Welcome new subscribers, then nudge free users a day later.",
    "status": "paused",
    "settings": { "allow_reentry": false, "on_step_failure": "skip" },
    "last_triggered_at": "2026-10-03T14:12:40.551870+00:00",
    "published_at": "2026-10-01T10:00:02.204118+00:00",
    "created_at": "2026-10-01T09:41:05.318274+00:00",
    "updated_at": "2026-10-04T08:15:22.730115+00:00",
    "steps": [
      {
        "id": "aus_3ZqpuxjmL1szZ8og6uGL1mT6QEJ",
        "key": "joined",
        "type": "trigger",
        "trigger": "contact.added_to_audience",
        "action": null,
        "config": { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV" }
      },
      {
        "id": "aus_3V5TZIXXak1SSmGcOmzPOeFaguQ",
        "key": "welcome_email",
        "type": "action",
        "trigger": null,
        "action": "send_email",
        "config": { "type": "template", "template_id": "welcome", "from": "Acme <hello@acme.com>" }
      }
    ],
    "connections": [
      { "from": "joined", "to": "welcome_email", "branch": "default" }
    ]
  },
  "message": "Automation was successfully updated.",
  "notify": true
}

Automatisierungen auflisten

Gibt die Automatisierungen des Workspaces zurück, die neuesten zuerst, ohne ihre Schritte und Verbindungen. Erfordert einen API-Schlüssel mit dem Scope full. Gelöschte Automatisierungen werden nicht aufgelistet.

GET/automations

Query-Parameter

pageintegerStandardwert: 1
Seitennummer, beginnend bei 1.
per_pageintegerStandardwert: 25
Automatisierungen pro Seite, von 1 bis 100.
filter[context]string
Nur Automatisierungen mit diesem Kontext: contact, email oder event.
filter[status]string
Nur Automatisierungen mit diesem Status: draft, running, paused, stopped oder archived.
filter[name]string
Abgleich mit einem Teil des Namens, ohne Beachtung der Groß-/Kleinschreibung.
sortstringStandardwert: created_at
Sortierfeld: name, created_at, updated_at oder last_triggered_at.
orderstringStandardwert: desc
Sortierrichtung: asc oder desc.

Sie können auch die allgemeinen Filter der Form key.condition=value auf name, status, context und created_at verwenden, zusammen mit match. Siehe Filtern.

Rückgabe

dataobject[]
Die Automatisierungen auf dieser Seite: id, context, name, description, status, settings, last_triggered_at, published_at, created_at, updated_at. settings ist in dieser Liste immer ein leeres Objekt; rufen Sie die Automatisierung ab, um es zu lesen.
total_recordsinteger
Anzahl der passenden Automatisierungen.
per_pageinteger
Verwendete Seitengröße.
current_pageinteger
Die Nummer dieser Seite.
total_pagesinteger
Anzahl der Seiten.
GET/automations
Terminal
curl -G https://api.emailit.com/v2/automations \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  --data-urlencode "filter[status]=running" \
  -d sort=last_triggered_at \
  -d per_page=50
JSON
{
  "data": [
    {
      "id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
      "context": "contact",
      "name": "Welcome series",
      "description": "Welcome new subscribers, then nudge free users a day later.",
      "status": "running",
      "settings": {},
      "last_triggered_at": "2026-10-03T14:12:40.551870+00:00",
      "published_at": "2026-10-01T10:00:02.204118+00:00",
      "created_at": "2026-10-01T09:41:05.318274+00:00",
      "updated_at": "2026-10-03T14:12:40.551870+00:00"
    }
  ],
  "total_records": 1,
  "per_page": 50,
  "current_page": 1,
  "total_pages": 1
}

Automatisierung löschen

Löscht eine Automatisierung. Sie verschwindet aus Listen und reagiert nicht mehr auf Trigger. Erfordert einen API-Schlüssel mit dem Scope full.

Bereits laufende Durchläufe werden nicht abgebrochen. Um sie abzubrechen, stoppen Sie die Automatisierung, bevor Sie sie löschen.

DELETE/automations/{id}

Pfadparameter

idstringerforderlich
Die ID der Automatisierung (aut_…).

Rückgabe

Gibt eine message zurück, die das Löschen bestätigt. Gibt 404 zurück, wenn die Automatisierung nicht existiert oder bereits gelöscht wurde.

DELETE/automations/{id}
Terminal
curl -X DELETE https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "message": "Automation was deleted successfully.",
  "notify": true
}

Automatisierung starten

Setzt den Status der Automatisierung auf running. Ab dann starten passende Trigger Durchläufe; Events, die vor dem Start eingetreten sind, nicht. Erfordert einen API-Schlüssel mit dem Scope full.

Sie können eine Automatisierung im Status draft, paused oder stopped starten. Der erste Start setzt published_at.

Beim Starten wird der Graph nicht erneut validiert. Wenn Sie die Automatisierung mit Automatisierung erstellen angelegt haben, das nur die Struktur prüft, stellen Sie sicher, dass jede Aktionskonfiguration vollständig ist, oder senden Sie den Graphen einmal über Automatisierung aktualisieren, das ihn vollständig validiert. Ein Schritt mit unvollständiger Konfiguration schlägt fehl, wenn ein Durchlauf ihn erreicht.

POST/automations/{id}/start

Pfadparameter

idstringerforderlich
Die ID der Automatisierung (aut_…).

Rückgabe

Gibt die Automatisierung in data zurück, mit status auf running. Gibt 404 zurück, wenn die Automatisierung nicht existiert.

POST/automations/{id}/start
Terminal
curl -X POST https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/start \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "data": {
    "id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    "context": "contact",
    "name": "Welcome series",
    "description": "Welcome new subscribers, then nudge free users a day later.",
    "status": "running",
    "settings": { "allow_reentry": false },
    "last_triggered_at": null,
    "published_at": "2026-10-01T10:00:02.204118+00:00",
    "created_at": "2026-10-01T09:41:05.318274+00:00",
    "updated_at": "2026-10-01T10:00:02.204118+00:00",
    "steps": [
      {
        "id": "aus_3ZqpuxjmL1szZ8og6uGL1mT6QEJ",
        "key": "joined",
        "type": "trigger",
        "trigger": "contact.added_to_audience",
        "action": null,
        "config": { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV" }
      },
      {
        "id": "aus_3V5TZIXXak1SSmGcOmzPOeFaguQ",
        "key": "welcome_email",
        "type": "action",
        "trigger": null,
        "action": "send_email",
        "config": { "type": "template", "template_id": "welcome", "from": "Acme <hello@acme.com>" }
      }
    ],
    "connections": [
      { "from": "joined", "to": "welcome_email", "branch": "default" }
    ]
  },
  "message": "Automation was successfully started.",
  "notify": true
}

Automatisierung pausieren

Setzt den Status der Automatisierung auf paused. Ihre Trigger starten keine neuen Durchläufe mehr, aber bereits laufende Durchläufe laufen weiter, auch solche, die in einem wait-Schritt warten. Erfordert einen API-Schlüssel mit dem Scope full.

Um auch laufende Durchläufe abzubrechen, stoppen Sie die Automatisierung stattdessen. Starten Sie sie erneut, damit Trigger wieder Durchläufe auslösen.

POST/automations/{id}/pause

Pfadparameter

idstringerforderlich
Die ID der Automatisierung (aut_…).

Rückgabe

Gibt die Automatisierung in data zurück, mit status auf paused. Gibt 404 zurück, wenn die Automatisierung nicht existiert.

POST/automations/{id}/pause
Terminal
curl -X POST https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/pause \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "data": {
    "id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    "context": "contact",
    "name": "Welcome series",
    "description": "Welcome new subscribers, then nudge free users a day later.",
    "status": "paused",
    "settings": { "allow_reentry": false },
    "last_triggered_at": "2026-10-03T14:12:40.551870+00:00",
    "published_at": "2026-10-01T10:00:02.204118+00:00",
    "created_at": "2026-10-01T09:41:05.318274+00:00",
    "updated_at": "2026-10-04T08:10:51.004732+00:00",
    "steps": [
      {
        "id": "aus_3ZqpuxjmL1szZ8og6uGL1mT6QEJ",
        "key": "joined",
        "type": "trigger",
        "trigger": "contact.added_to_audience",
        "action": null,
        "config": { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV" }
      },
      {
        "id": "aus_3V5TZIXXak1SSmGcOmzPOeFaguQ",
        "key": "welcome_email",
        "type": "action",
        "trigger": null,
        "action": "send_email",
        "config": { "type": "template", "template_id": "welcome", "from": "Acme <hello@acme.com>" }
      }
    ],
    "connections": [
      { "from": "joined", "to": "welcome_email", "branch": "default" }
    ]
  },
  "message": "Automation was successfully paused.",
  "notify": true
}

Automatisierung stoppen

Setzt den Status der Automatisierung auf stopped und bricht jeden Durchlauf ab, der noch running ist; diese Durchläufe erhalten den Status canceled, und ihre restlichen Schritte werden nicht ausgeführt. Erfordert einen API-Schlüssel mit dem Scope full.

Stoppen ist nur per API möglich. Um laufende Durchläufe weiterlaufen zu lassen, pausieren Sie die Automatisierung stattdessen. Sie können eine gestoppte Automatisierung erneut starten; neue Durchläufe beginnen dann von vorn.

POST/automations/{id}/stop

Pfadparameter

idstringerforderlich
Die ID der Automatisierung (aut_…).

Rückgabe

Gibt die Automatisierung in data zurück, mit status auf stopped. Gibt 404 zurück, wenn die Automatisierung nicht existiert.

POST/automations/{id}/stop
Terminal
curl -X POST https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/stop \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "data": {
    "id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    "context": "contact",
    "name": "Welcome series",
    "description": "Welcome new subscribers, then nudge free users a day later.",
    "status": "stopped",
    "settings": { "allow_reentry": false },
    "last_triggered_at": "2026-10-03T14:12:40.551870+00:00",
    "published_at": "2026-10-01T10:00:02.204118+00:00",
    "created_at": "2026-10-01T09:41:05.318274+00:00",
    "updated_at": "2026-10-05T16:45:09.882301+00:00",
    "steps": [
      {
        "id": "aus_3ZqpuxjmL1szZ8og6uGL1mT6QEJ",
        "key": "joined",
        "type": "trigger",
        "trigger": "contact.added_to_audience",
        "action": null,
        "config": { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV" }
      },
      {
        "id": "aus_3V5TZIXXak1SSmGcOmzPOeFaguQ",
        "key": "welcome_email",
        "type": "action",
        "trigger": null,
        "action": "send_email",
        "config": { "type": "template", "template_id": "welcome", "from": "Acme <hello@acme.com>" }
      }
    ],
    "connections": [
      { "from": "joined", "to": "welcome_email", "branch": "default" }
    ]
  },
  "message": "Automation was successfully stopped.",
  "notify": true
}

Durchlauf auslösen

Löst den Trigger system.manual mit einem Payload Ihrer Wahl aus. Die Automatisierung muss running sein und einen Trigger-Schritt system.manual haben, sonst startet kein Durchlauf. Erfordert einen API-Schlüssel mit dem Scope full. Manuelle Trigger sind nur per API verfügbar.

Der Durchlauf startet asynchron und kostet wie jeder andere Durchlauf 3 Credits. Sie finden ihn über Durchläufe auflisten.

POST/automations/{id}/trigger

Pfadparameter

idstringerforderlich
Die ID der Automatisierung (aut_…).

Body-Parameter

payloadobject

Daten für den Durchlauf. Emailit ergänzt automation_id und speichert das Ergebnis als payload des Durchlaufs. Schritte können ihn mit Platzhaltern wie {{payload.order_id}} und in Bedingungen wie payload.plan lesen.

Worum es im Durchlauf geht, hängt vom Kontext der Automatisierung ab:

  • contact: Übergeben Sie contact_id (con_…). Kontaktaktionen und send_email verwenden diesen Kontakt.
  • email: Übergeben Sie email_id (em_…). E-Mail-Aktionen verwenden diese E-Mail.
  • event: beliebige Daten. Setzen Sie to oder email in den Aktionskonfigurationen, zum Beispiel "to": "{{payload.customer_email}}".

Rückgabe

Gibt 200 mit einer message zurück, sobald der Trigger in die Warteschlange gestellt ist. Gibt 422 zurück, wenn die Automatisierung nicht running ist, und 404, wenn sie nicht existiert.

POST/automations/{id}/trigger
Terminal
curl -X POST https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/trigger \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "payload": {
      "contact_id": "con_3munwNLaXKUARc6ff9wPtxKVq4A",
      "plan": "pro",
      "order_id": "ord_1042"
    }
  }'
JSON
{
  "message": "Automation trigger dispatched."
}

Durchläufe auflisten

Gibt die Durchläufe einer Automatisierung zurück, die neuesten zuerst. Jeder Durchlauf ist ein Durchgang durch den Graphen, gestartet von einem Trigger. Erfordert einen API-Schlüssel mit dem Scope full.

GET/automations/{id}/runs

Pfadparameter

idstringerforderlich
Die ID der Automatisierung (aut_…).

Query-Parameter

pageintegerStandardwert: 1
Seitennummer, beginnend bei 1.
per_pageintegerStandardwert: 25
Durchläufe pro Seite, von 1 bis 100.
filter[status]string
Nur Durchläufe mit diesem Status: running, completed, failed oder canceled.

Sie können auch mit key.condition=value auf status, event und created_at filtern (zum Beispiel created_at.after=2026-10-01) und mit order und direction nach denselben Schlüsseln sortieren. Siehe Filtern.

Rückgabe

dataobject[]
Die Durchläufe auf dieser Seite. Siehe die Felder unten.
total_records, per_page, current_page, total_pagesinteger
Angaben zur Paginierung.

Jeder Durchlauf hat:

idstring
ID des Durchlaufs mit dem Präfix aur_.
automation_idstring
Die Automatisierung (aut_…).
contact_idstring | null
Der Kontakt des Durchlaufs (con_…) im Kontext contact.
email_idstring | null
Die E-Mail des Durchlaufs (em_…) im Kontext email.
event_idstring | null
ID des auslösenden Events, wenn der Trigger-Payload eine enthält.
eventstring
Der Trigger, der den Durchlauf gestartet hat, zum Beispiel contact.added_to_audience oder system.manual.
payloadobject
In dieser Liste immer ein leeres Objekt. Rufen Sie den Durchlauf ab, um seinen Trigger-Payload zu lesen.
metaobject
In dieser Liste immer ein leeres Objekt. Rufen Sie den Durchlauf ab, um seine Metadaten zu lesen, etwa failure_reason.
statusstring
running, completed, failed oder canceled (die Automatisierung wurde gestoppt).
started_at, completed_at, created_at, updated_atstring | null
Zeitstempel in UTC.
GET/automations/{id}/runs
Terminal
curl -G https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/runs \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  --data-urlencode "filter[status]=failed"
JSON
{
  "data": [
    {
      "id": "aur_3q6GdFk2eRSG093grI0v9e6REu8",
      "automation_id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
      "contact_id": "con_3munwNLaXKUARc6ff9wPtxKVq4A",
      "email_id": null,
      "event_id": null,
      "event": "contact.added_to_audience",
      "payload": {},
      "meta": {},
      "status": "failed",
      "started_at": "2026-10-03T14:12:40.551870+00:00",
      "completed_at": "2026-10-03T14:12:41.093355+00:00",
      "created_at": "2026-10-03T14:12:40.551870+00:00",
      "updated_at": "2026-10-03T14:12:41.093355+00:00"
    }
  ],
  "total_records": 1,
  "per_page": 25,
  "current_page": 1,
  "total_pages": 1
}

Durchlauf abrufen

Ruft einen Durchlauf einer Automatisierung ab, einschließlich der ausgeführten Schritte. Erfordert einen API-Schlüssel mit dem Scope full.

GET/automations/{id}/runs/{run_id}

Pfadparameter

idstringerforderlich
Die ID der Automatisierung (aut_…).
run_idstringerforderlich
Die ID des Durchlaufs (aur_…).

Rückgabe

Gibt den Durchlauf in data zurück, mit den unter Durchläufe auflisten beschriebenen Feldern sowie dem vollständigen payload, meta und einem Array run_steps.

payloadobject | null
Der Trigger-Payload: die Event-Daten ({ "object": { … } }) oder der Payload, den Sie an Durchlauf auslösen übergeben haben, ergänzt um automation_id.
metaobject | null
source_event_id verknüpft den Durchlauf mit dem Event, das ihn gestartet hat. Fehlgeschlagene Durchläufe können failure_reason enthalten: insufficient_credits (die 3 Credits für den Durchlauf konnten nicht abgebucht werden) oder run_timeout (der Durchlauf war nach 72 Stunden noch running, ohne dass ein Schritt wartete).
run_stepsobject[]

Ein Eintrag pro Schritt, den der Durchlauf erreicht hat:

  • step_id: die ID des Schritts (aus_…). Ordnen Sie sie steps[].id aus Automatisierung abrufen zu.
  • status: running, waiting (ein wait-Schritt, dessen Wartezeit noch nicht abgelaufen ist), completed oder failed.
  • data: das Ergebnis des Schritts. Zum Beispiel gibt send_email { "result": "email_queued", "email_oid": "em_…", "to": "…" } zurück, condition gibt { "result": true, "branch": "yes" } zurück, und fehlgeschlagene Schritte geben { "error": "…" } zurück.
  • started_at, completed_at, created_at.

Gibt 404 zurück, wenn die Automatisierung oder der Durchlauf nicht existiert.

GET/automations/{id}/runs/{run_id}
Terminal
curl https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/runs/aur_3q6GdFk2eRSG093grI0v9e6REu8 \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "data": {
    "id": "aur_3q6GdFk2eRSG093grI0v9e6REu8",
    "automation_id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    "contact_id": "con_3munwNLaXKUARc6ff9wPtxKVq4A",
    "email_id": null,
    "event_id": null,
    "event": "contact.added_to_audience",
    "payload": {
      "object": {
        "id": "sub_3Fh2pQx9LmZr4Wt7Nc0bVd8KsYe",
        "object": "subscriber",
        "subscribed": true,
        "audience": { "id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV", "name": "Newsletter" },
        "contact": { "id": "con_3munwNLaXKUARc6ff9wPtxKVq4A", "email": "ada@example.com" }
      }
    },
    "meta": { "source_event_id": "evt_3Kd8sWq1NzXc5Vb7Mt2LpRy0HgA" },
    "status": "running",
    "started_at": "2026-10-03T14:12:40.551870+00:00",
    "completed_at": null,
    "created_at": "2026-10-03T14:12:40.551870+00:00",
    "updated_at": "2026-10-03T14:12:40.551870+00:00",
    "run_steps": [
      {
        "step_id": "aus_3V5TZIXXak1SSmGcOmzPOeFaguQ",
        "status": "completed",
        "data": {
          "result": "email_queued",
          "outcome": "accepted",
          "email_oid": "em_3Cp8cMgPskzB8tIlgUyNJkpDp9O",
          "to": "ada@example.com"
        },
        "started_at": "2026-10-03T14:12:40.702113+00:00",
        "completed_at": "2026-10-03T14:12:40.918540+00:00",
        "created_at": "2026-10-03T14:12:40.702113+00:00"
      },
      {
        "step_id": "aus_3vM0ORwEXCQcyS7rylfQBQEXjVk",
        "status": "waiting",
        "data": { "status": "waiting", "delayMs": 86400000, "seconds": 86400 },
        "started_at": "2026-10-03T14:12:41.004221+00:00",
        "completed_at": null,
        "created_at": "2026-10-03T14:12:41.004221+00:00"
      }
    ]
  }
}

Statistiken abrufen

Gibt Zählwerte für jeden Schritt einer Automatisierung zurück, nach Schrittschlüssel geordnet. Erfordert einen API-Schlüssel mit dem Scope full.

GET/automations/{id}/stats

Pfadparameter

idstringerforderlich
Die ID der Automatisierung (aut_…).

Query-Parameter

sincestring
Nur Schrittausführungen zählen, die zu oder nach diesem Zeitpunkt erstellt wurden. Datum und Uhrzeit nach RFC 3339, zum Beispiel 2026-10-01T00:00:00Z.
untilstring
Nur Schrittausführungen zählen, die zu oder vor diesem Zeitpunkt erstellt wurden. Datum und Uhrzeit nach RFC 3339.
run_ids[]string
Nur diese Durchläufe zählen (aur_…). Wiederholen Sie den Parameter für mehrere Durchläufe.

Rückgabe

Gibt data zurück, ein Objekt mit einem Eintrag pro Schrittschlüssel. Schritte, die kein Durchlauf erreicht hat, haben total mit dem Wert 0.

totalinteger
Wie oft Durchläufe den Schritt erreicht haben.
by_statusobject
Zählwerte pro Schrittstatus: running, waiting, completed, failed.
by_outcomeobject
Zählwerte pro Ergebnis. send_email und forward_email: accepted, dann der letzte Zustand der E-Mail (delivered, loaded, clicked, bounced, failed, complained, unsubscribed, canceled). condition: matched, not_matched. experiment: der Schlüssel der gewählten Variante. call_webhook: 2xx, 4xx, 5xx, timeout, network_error. Fehlgeschlagene Schritte: error.
funnelobject
Nur für Schritte vom Typ send_email. Kumulierte Zählwerte: accepted umfasst jede E-Mail, die weiter gekommen ist, delivered umfasst geladene und geklickte E-Mails, und loaded umfasst geklickte. bounced, failed, complained und unsubscribed sind einfache Zählwerte.
GET/automations/{id}/stats
Terminal
curl -G https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/stats \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -d since=2026-10-01T00:00:00Z
JSON
{
  "data": {
    "joined": { "total": 0, "by_status": {}, "by_outcome": {} },
    "welcome_email": {
      "total": 412,
      "by_status": { "completed": 409, "failed": 3 },
      "by_outcome": { "delivered": 251, "loaded": 98, "clicked": 41, "bounced": 19, "error": 3 },
      "funnel": {
        "accepted": 390,
        "delivered": 390,
        "loaded": 139,
        "clicked": 41,
        "bounced": 19,
        "failed": 0,
        "complained": 0,
        "unsubscribed": 0
      }
    },
    "wait_1_day": {
      "total": 409,
      "by_status": { "completed": 352, "waiting": 57 },
      "by_outcome": {}
    },
    "is_free_user": {
      "total": 352,
      "by_status": { "completed": 352 },
      "by_outcome": { "matched": 270, "not_matched": 82 }
    },
    "upgrade_tips": {
      "total": 270,
      "by_status": { "completed": 270 },
      "by_outcome": { "accepted": 12, "delivered": 180, "loaded": 61, "clicked": 17 },
      "funnel": {
        "accepted": 270,
        "delivered": 258,
        "loaded": 78,
        "clicked": 17,
        "bounced": 0,
        "failed": 0,
        "complained": 0,
        "unsubscribed": 0
      }
    },
    "done": {
      "total": 82,
      "by_status": { "completed": 82 },
      "by_outcome": {}
    }
  }
}

Schrittstatistiken abrufen

Gibt die Zählwerte für einen Schritt einer Automatisierung zurück. Erfordert einen API-Schlüssel mit dem Scope full. Die Felder sind dieselben wie unter Statistiken abrufen.

GET/automations/{id}/steps/{step_key}/stats

Pfadparameter

idstringerforderlich
Die ID der Automatisierung (aut_…).
step_keystringerforderlich
Der key des Schritts, zum Beispiel welcome_email.

Query-Parameter

sincestring
Nur Schrittausführungen zählen, die zu oder nach diesem Zeitpunkt erstellt wurden. Datum und Uhrzeit nach RFC 3339.
untilstring
Nur Schrittausführungen zählen, die zu oder vor diesem Zeitpunkt erstellt wurden. Datum und Uhrzeit nach RFC 3339.

Rückgabe

Gibt data mit total, by_status, by_outcome und bei Schritten vom Typ send_email mit funnel zurück. Gibt 404 zurück, wenn die Automatisierung oder der Schrittschlüssel nicht existiert.

GET/automations/{id}/steps/{step_key}/stats
Terminal
curl https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/steps/welcome_email/stats \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "data": {
    "total": 412,
    "by_status": { "completed": 409, "failed": 3 },
    "by_outcome": { "delivered": 251, "loaded": 98, "clicked": 41, "bounced": 19, "error": 3 },
    "funnel": {
      "accepted": 390,
      "delivered": 390,
      "loaded": 139,
      "clicked": 41,
      "bounced": 19,
      "failed": 0,
      "complained": 0,
      "unsubscribed": 0
    }
  }
}

War diese Seite hilfreich?

Danke für Ihr Feedback.

Danke, wir lesen jede Nachricht.