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

# Workflow-Aktionen

> Erfahren Sie mehr über die in Twenty-Workflows verfügbaren Aktionen.

export const VimeoEmbed = ({videoId, title = 'Video'}) => <div style={{
  padding: '69.01% 0 0 0',
  position: 'relative',
  margin: '32px 0px',
  borderRadius: '16px',
  overflow: 'hidden',
  border: '2px solid black'
}}>
    <iframe src={`https://player.vimeo.com/video/${videoId}?autoplay=1&loop=1&autopause=0&background=1&app_id=58479`} frameBorder="0" allow="autoplay; fullscreen; picture-in-picture; clipboard-write" style={{
  position: 'absolute',
  top: 0,
  left: 0,
  width: '100%',
  height: '100%',
  transform: 'scale(1.1)'
}} title={title} />
  </div>;

## Über Aktionen

Aktionen definieren, was nach dem Auslösen passiert. Sie können mehrere Aktionen verketten, um komplexe Automatisierungen zu erstellen.

<Tip>
  * Verwenden Sie die Variablenauswahl (klicken Sie auf das Symbol `(x+)`), um verfügbare Daten aus vorherigen Schritten zu durchsuchen
  * Bewegen Sie den Mauszeiger über ein beliebiges Eingabefeld, um zu sehen, aus welchem Schritt eine Variable stammt — hilfreich, wenn dasselbe Feld (z. B. ID) in mehreren vorherigen Schritten vorhanden ist
  * Geben Sie jeder Aktion einen aussagekräftigen Namen, um die Wartung zu erleichtern
</Tip>

## Datensatz-Aktionen

<img src="https://mintcdn.com/twenty/ZVHVYG6uDKpO6cME/images/user-guide/workflows/workflow_actions.png?fit=max&auto=format&n=ZVHVYG6uDKpO6cME&q=85&s=76371d6cc755528643859025c3fad709" style={{width:'100%'}} width="1596" height="2268" data-path="images/user-guide/workflows/workflow_actions.png" />

### Einen Datensatz erstellen

Fügt einem ausgewählten Objekt einen neuen Datensatz hinzu.

**Konfiguration**:

* Wählen Sie das Zielobjekt aus
* Füllen Sie die erforderlichen und optionalen Felder aus
* Verwenden Sie Daten aus vorherigen Schritten oder geben Sie Werte manuell ein, um Felder auszufüllen

**Ausgabe**: Die neu erstellten Datensatzdaten stehen in nachfolgenden Schritten zur Verfügung.

### Datensatz aktualisieren

Ändert einen bestehenden Datensatz in einem ausgewählten Objekt.

<img src="https://mintcdn.com/twenty/ZVHVYG6uDKpO6cME/images/user-guide/workflows/update_record.png?fit=max&auto=format&n=ZVHVYG6uDKpO6cME&q=85&s=779714633fc4472e6fd67a3de73f1323" style={{width:'100%'}} width="1584" height="1120" data-path="images/user-guide/workflows/update_record.png" />

**Konfiguration**:

* Wählen Sie das Zielobjekt aus
* Wählen Sie den spezifischen Datensatz zum Aktualisieren aus.
  * Sie können entweder einen festen Datensatz auswählen, indem Sie das Dropdown-Menü verwenden, das alle verfügbaren Datensätze anzeigt.
  * Oder Sie lassen den Datensatz dynamisch auswählen, indem Sie einen in einem vorherigen Schritt gefundenen Datensatz über `(x+)` angeben. In diesem Schritt können Sie den Datensatz nicht anhand verschiedener Kriterien suchen. Wenn Sie den Datensatz noch nicht identifiziert haben, fügen Sie vor diesem Schritt `Update Record` einen Schritt `Search Record` hinzu.
* Wählen Sie zu ändernde Felder aus und geben Sie neue Werte ein

**Ausgabe**: Die aktualisierten Datensatzdaten stehen in nachfolgenden Schritten zur Verfügung.

### Datensatz löschen

Entfernt einen Datensatz aus einem ausgewählten Objekt.

**Konfiguration**:

* Wählen Sie das Zielobjekt aus
* Wählen Sie den spezifischen Datensatz zum Löschen aus

**Ausgabe**: Die gelöschten Datensatzdaten stehen in nachfolgenden Schritten zur Verfügung.

### Datensätze durchsuchen

Findet Datensätze innerhalb eines ausgewählten Objekts mittels Filterkonditionen.

**Konfiguration**:

* Wählen Sie das Objekt aus, das Sie durchsuchen möchten.
* Legen Sie Filterkriterien fest, um Ergebnisse einzugrenzen.
* Konfigurieren Sie Sortierung und Begrenzungen.

**Ausgabe**: Gibt passende Datensätze zurück, die in nachfolgenden Schritten verwendet werden können.

<Note>
  **Limit**: Search Records gibt maximal **200 Datensätze** zurück. Wenn Sie mehr verarbeiten müssen, fügen Sie spezifische Filter hinzu, um die Ergebnisse zu reduzieren, oder verwenden Sie geplante Workflows, um stapelweise zu verarbeiten.
</Note>

**Best Practice**: Verwenden Sie [Verzweigungen](/l/de/user-guide/workflows/capabilities/workflow-branches) nach dem Durchsuchen von Datensätzen, um "gefunden" vs "nicht gefunden" Szenarien zu behandeln.

### Datensatz einfügen oder aktualisieren

Erstellt einen neuen Datensatz oder aktualisiert einen vorhandenen anhand von Übereinstimmungskriterien. Das ist hilfreich, wenn Sie nicht sicher sind, ob ein Datensatz bereits vorhanden ist.

<img src="https://mintcdn.com/twenty/ZVHVYG6uDKpO6cME/images/user-guide/workflows/upsert_double_identifier.png?fit=max&auto=format&n=ZVHVYG6uDKpO6cME&q=85&s=f9e702ec5b631af03515d9e8af633216" style={{width:'100%'}} width="2908" height="2288" data-path="images/user-guide/workflows/upsert_double_identifier.png" />

**Konfiguration**:

* Wählen Sie das Zielobjekt aus
* Beachten Sie, welche Felder für den Abgleich verwendet werden können: E-Mail für Personen, Domain für Unternehmen, ID für beliebige Objekte oder jedes Feld, das als eindeutig markiert ist. Unten müssen Sie mindestens eines davon ausfüllen.
* Füllen Sie die Feldwerte aus. Vergessen Sie nicht, mindestens einen der eindeutigen Bezeichner auszufüllen.

<Note>
  **Der Abgleich funktioniert in der Regel noch besser, wenn Sie nur einen eindeutigen Bezeichner hinzufügen.** Beispielsweise werden im untenstehenden Screenshot Unternehmen anhand ihrer Domain abgeglichen. Die ID ist nicht unbedingt erforderlich.
</Note>

<img src="https://mintcdn.com/twenty/ZVHVYG6uDKpO6cME/images/user-guide/workflows/upsert_simple_identifier.png?fit=max&auto=format&n=ZVHVYG6uDKpO6cME&q=85&s=8bd8daf7e4a064c529337d77f0d17b19" style={{width:'100%'}} width="2924" height="2308" data-path="images/user-guide/workflows/upsert_simple_identifier.png" />

* Verwenden Sie Daten aus vorherigen Schritten, um Felder zu füllen

**So funktioniert**:

1. Sucht nach einem Datensatz, der Ihren Kriterien entspricht
2. Wenn gefunden → Aktualisiere den vorhandenen Eintrag
3. Wenn nicht gefunden → Erstelle einen neuen Datensatz

**Ausgabe**: Die erstellten oder aktualisierten Datensatzdaten sind für die Verwendung in folgenden Schritten verfügbar.

## Flow-Aktionen

### Iterator

**Schleppt sich durch ein Array von Datensätzen** aus einem vorherigen Schritt, so dass du Aktionen auf jedem Datensatz einzeln ausführen kannst.

**Konfiguration**:

* Wählen Sie das Array von Datensätzen aus einem vorherigen Schritt aus (z. B. Ergebnisse aus Search Records, aus einem manuellen Auslöser mit Bulk-Verfügbarkeit, aus einem Code-Node). Wenn ein Code- oder Logikfunktions-Schritt ein Top-Level-Array zurückgibt, wählen Sie die Option **Whole list**, um über die gesamte Ausgabe zu iterieren.
* Definieren Sie die Aktionen, die für jeden Datensatz in der Schleife ausgeführt werden sollen.

<Note>
  - Sie können mehrere Aktionen innerhalb eines Iterators hinzufügen.
  - Wenn Sie Zweige innerhalb eines Iterators verwenden, stellen Sie sicher, dass sich der letzte Schritt jedes Zweiges mit dem Iterator verbindet, um die Schleife zu schließen.
</Note>

* Zugriff auf `Aktuelle Item` Felder: Um Felder aus dem aktuell verarbeiteten Datensatz zu verwenden, klicke auf den **Iterator** Schritt, dann wähle **Aktuelles Iterator**. Die Liste der verfügbaren Felder aus diesem Datensatz wird angezeigt und kann für die Verwendung in folgenden Aktionen ausgewählt werden. Sie können auch **Use the whole item** auswählen, um das gesamte aktuelle Element an einen nachgelagerten Schritt zu übergeben.

<VimeoEmbed videoId="1146577247" title="Video-Demo" />

### Filter

Filtert Datensätze basierend auf bestimmten Bedingungen, so dass nur Datensätze, die die Kriterien erfüllen, durchlaufen können.

**Konfiguration**:

* Datensatz zum filtern auswählen
* Definieren Sie Filterbedingungen und Kriterien
* Konfigurieren Sie, welche Datensätze in nachfolgende Schritte übergehen sollen

<Note>
  1. **Ausgabe**: Filterknoten geben keine Daten zurück – sie fungieren als Tore. Wenn die Bedingungen erfüllt sind, geht der Workflow weiter. Wenn nicht, stoppt der Workflow an diesem Zweig.
  2. Der "IS"-Operator kann mit numerischen Feldern verwendet werden. Es spielt als "EQUAL".
</Note>

### Verzögerung

Behebt Workflow-Ausführung für eine bestimmte Dauer oder bis zu einem bestimmten Datum/Zeitpunkt.

**Verzögerungstypen**:

| Typ                 | Beschreibung                                                     |
| ------------------- | ---------------------------------------------------------------- |
| **Dauer**           | Warte auf eine bestimmte Zeit (Tage, Stunden, Minuten, Sekunden) |
| **Geplantes Datum** | Warten Sie bis zu einem bestimmten Datum und Zeit                |

**Konfiguration für Dauern**:

* Tage, Stunden, Minuten und/oder Sekunden festlegen
* Mehrere Einheiten kombinieren (z. B. 2 Tage und 4 Stunden)

**Konfiguration für geplantes Datum**:

* Datum und Uhrzeit auswählen
* Kann ein Datumsfeld aus einem vorherigen Schritt referenzieren (z.B. 3 Tage nach einer Besprechung)

**Anwendungsfälle**:

* Warten Sie 24 Stunden bevor Sie eine Nachfass-E-Mail senden
* Pause bis zum Enddatum einer Gelegenheit
* Aufgaben für Geschäftszeiten planen

<Note>
  Das geplante Datum kann nicht in der Vergangenheit sein. Wenn ein Datumsfeld aus einem vorherigen Schritt verwendet wird und das Datum bereits abgelaufen ist, wird der Workflow fehlschlagen.
</Note>

**Limits & Credits**:

* **Kein maximales Zeitlimit** - Du kannst Verzögerungen von Minuten, Tage, Wochen oder länger einstellen
* **1 Credits verbraucht** wenn der Delay Knoten ausgeführt wird, unabhängig von der Dauer
* **Kein Guthaben verbraucht** während des Wartens - eine 5-minütige Verzögerung kostet dasselbe wie eine 5-tägige Verzögerung

## Kommunikationsaktionen

### E-Mail senden

Sendet eine E-Mail aus Ihrem Workflow. Dies ist ideal für vordefinierte Gruppenmails. E-Mails werden so aussehen, wie sie von Ihrem Postfach gesendet werden.
Nicht geeignet für Newsletter (die eine umfassendere Formatierung erfordern) oder für automatisierte E-Mail-Sequenzen.

**Voraussetzungen**: Fügen Sie ein E-Mail-Konto unter Einstellungen → Konten hinzu

**Konfiguration**:

* Wählen Sie das Absender-E-Mail-Konto

<Note>
  Sie können nur E-Mails aus Postfächern versenden, die mit Ihrem eigenen Konto synchronisiert wurden. Das Versenden von Postfächern anderer Teammitglieder (z. B. die E-Mail des Kontoinhabers) ist auf der Roadmap.
</Note>

Für alle folgenden Schritte können Sie Variablen aus früheren Schritten zur Personalisierung referenzieren.

* E-Mail-Adresse des Empfängers eingeben.

<Note>
  Im Moment ist nur ein Empfänger möglich.
</Note>

* Betreffzeile festlegen.
* Nachrichtentext verfassen. Sie können Links formatieren, nummerierte Liste, Aufzählungspunkte erstellen und Anhänge hinzufügen.

<Note>
  Das Hinzufügen von HTML-Signaturen ist im Moment nicht möglich.
</Note>

### Formular

Fordert während der Workflow-Ausführung ein Formular an, um Benutzereingaben zu sammeln. Die Antworten können dann in folgenden Schritten verwendet werden, um Datensätze zu erstellen, E-Mails zu senden oder jede andere Aktion basierend auf der Eingabe auszuführen.

<Warning>
  **Formulare sind nur für manuelle Trigger konzipiert**. Bei Workflows mit anderen Triggern (Datensatz erstellt, aktualisiert, etc.) sind Formulare nur über die Workflow-Ausführungsoberfläche zugänglich, was nicht das erwartete Benutzererlebnis ist. Ein Benachrichtigungszentrum wird im Jahr 2026 eingeführt, um die Unterstützung von Formularen in automatisierten Workflows zu verbessern.
</Warning>

**Konfiguration**:

* Konfigurieren Sie die Felder, die Benutzer ausfüllen sollen. Für jedes Feld wählen
  * ein Typ unter Text, Nummer, Datum, gegebener Datensatz, ein Auswahlfeld. Wählen Sie Felder aus allen Objekten verfügbar.
  * ein Label
  * ein Standardwert unter `Platzhalter` (optional)
* Formulartitel bearbeiten

**Ausgabe**: Formularantworten sind für nachfolgende Schritte verfügbar.

**Beispiel**: Der "Quick Lead"-Workflow ist standardmäßig in allen Arbeitsbereichen verfügbar, die überall im Kommandomenü `Cmd + K` verfügbar sind.

**So füllen Sie das Formular aus**:

* Löse deinen manuellen Workflow aus dem Kommandomenü `Cmd K` aus
* Füllen Sie das Formular aus, das im Seitenfenster angezeigt wird, und klicken Sie auf "Absenden".

<Note>
  Die Felder können nicht obligatorisch gemacht werden.
</Note>

<VimeoEmbed videoId="1147277989" title="Video-Demo" />

## Integrationsaktionen

### Code

Führt benutzerdefiniertes JavaScript in Ihrem Workflow aus.

Im Hintergrund wird jede Code-Aktion von ihrer eigenen **Logikfunktion** unterstützt – einer serverseitigen TypeScript-Funktion, die auf der Twenty-Plattform ausgeführt wird. Wenn Sie eine Code-Aktion hinzufügen, erstellt Twenty eine dedizierte Logikfunktion für diesen Schritt und stellt deren Editor inline bereit, sodass der von Ihnen geschriebene Code zusammen mit dem Workflow gespeichert wird.

**Konfiguration**:

* Greifen Sie auf Variablen aus vorherigen Schritten zu. Sie können die Namen der Variablen dynamisch bearbeiten.

<VimeoEmbed videoId="1147281795" title="Video-Demo" />

* Schreiben Sie JavaScript-Code im Editor
* Variablen zurückgeben, um sie in nachfolgenden Schritten zu verwenden
* Code direkt im Schritt testen

<Note>
  Wenn Sie externe API-Schlüssel in Ihrem Code verwenden müssen, müssen Sie diese direkt in den Funktionskörper eingeben. Sie können API-Schlüssel nicht an anderer Stelle konfigurieren und sie dann in der Logikfunktion referenzieren.
</Note>

<Tip>
  **Mit Arrays arbeiten?** Arrays von externen Systemen oder vorherigen Schritten können als Zeichenketten verwendet werden. Siehe [Wie man Arrays in Code-Aktionen behandelt](/l/de/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions) für die Lösung.
</Tip>

<Tip>
  Klicken Sie auf das quadratische Symbol oben rechts im Code-Editor, um es im Vollbildmodus anzuzeigen – hilfreich, da die Standardbreite des Editors begrenzt ist.
</Tip>

#### Eine Logikfunktion in mehreren Workflows wiederverwenden

Die Inline-Code-Aktion ist ideal für einmalige Logik, aber der darin enthaltene Code gehört zu genau diesem einen Schritt. Wenn Sie dieselbe Logik über mehrere Workflows hinweg teilen oder sie als versionierten Quellcode in einer App pflegen möchten, definieren Sie eine **wiederverwendbare Logikfunktion**, anstatt Code in jede Code-Aktion zu kopieren und einzufügen.

Eine Logikfunktion wird einmal in einer App definiert (mithilfe des SDK-Befehls `defineLogicFunction`) und durch Hinzufügen von `workflowActionTriggerSettings` im Workflow-Builder verfügbar gemacht. Sobald Ihre App installiert ist, erscheint diese Funktion als eigene Aktion im Workflow-Builder, neben den eingebauten Aktionen. Wenn Sie sie auswählen, werden die von Ihnen deklarierten Eingabefelder angezeigt (mit Variablen-Auswahl, genau wie bei anderen Aktionen) und Ihr geteilter Code wird ausgeführt – kein Inline-JavaScript erforderlich.

|                            | Code-Aktion                                                 | Wiederverwendbare Logikfunktion                                    |
| -------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------ |
| **Wo der Code liegt**      | Inline-Editor, an einen einzelnen Workflow-Schritt gebunden | In einer App definiert, im Versionskontrollsystem versioniert      |
| **Wiederverwendung**       | Pro Schritt kopiert und eingefügt                           | Als Aktion in jedem Workflow hinzugefügt                           |
| **Eingaben**               | Variablen, die im Editor verdrahtet werden                  | Felder, die aus Ihrem deklarierten Eingabe-Schema gerendert werden |
| **Am besten geeignet für** | Schnelle, Workflow-spezifische Logik                        | Gemeinsam genutzte Logik, die in mehreren Workflows verwendet wird |

Beide laufen auf derselben Logikfunktions-Laufzeit, sodass eine Code-Aktion, die Sie inline prototypisiert haben, später mit minimalen Änderungen in eine wiederverwendbare Logikfunktion überführt werden kann.

<Tip>
  Die entwicklerorientierte Referenz zur Definition von Logikfunktionen und deren Bereitstellung im Workflow-Builder finden Sie unter [Logic Functions](/l/de/developers/extend/apps/logic/logic-functions) – insbesondere im Abschnitt **Exposing a function as an AI tool or workflow action** und bei `workflowActionTriggerSettings`.
</Tip>

### HTTP-Anfrage

Sendet eine Anfrage an eine externe API als Teil Ihres Workflows.

<img src="https://mintcdn.com/twenty/ZVHVYG6uDKpO6cME/images/user-guide/workflows/http_action.png?fit=max&auto=format&n=ZVHVYG6uDKpO6cME&q=85&s=5dbab86e7023e617fe37b8fc6e3da7a3" style={{width:'100%'}} width="1568" height="1968" data-path="images/user-guide/workflows/http_action.png" />

**Konfiguration**:

* Geben Sie die API-Endpunkt-URL ein. Die Verwendung von Parametern aus früheren Schritten ist möglich.
* Wählen Sie die HTTP-Methode aus (GET, POST, PUT, PATCH, DELETE)
* Erforderliche Header und Werte hinzufügen
* Beispielantwort zur Strukturvorschau bereitstellen

## KI-Aktionen

### AI Agent - demnächst

Führt einen KI-Agent innerhalb Ihres Workflows aus, um intelligente Aufgaben auszuführen.

**Konfiguration**:

* **Agent**: Wähle einen vorhandenen KI-Agent oder verwende den Standardmakler
* **Anfrage**: Schreibe die Anweisung für den KI-Agent
* Referenzvariablen von vorherigen Schritten in der Promption

**Was KI Agenten tun können**:

* Daten analysieren und zusammenfassen
* Einträge klassifizieren oder kategorisieren
* Textinhalt generieren
* Entscheidungen auf Basis von Daten treffen
* Interagiere mit deinen CRM-Daten mithilfe von Tools

**Ausgabe**: Die Antwort des KI-Agenten ist verfügbar für die Verwendung in folgenden Schritten. Wenn der Agent ein strukturiertes Ausgabeschema hat, folgt die Antwort diesem Format.

<Note>
  AI Agent-Aktionen verbrauchen Workflow-Credits basierend auf dem verwendeten KI-Modell. Siehe [Workflow Credits](/l/de/user-guide/workflows/capabilities/workflow-credits) für Details.
</Note>

<Note>
  Die AI-Agenten respektieren die rollenbasierten Genehmigungen. Sie können Agenten unter **Einstellungen → Mitglieder → Rollen** bestimmte Rollen zuweisen, um zu steuern, auf welche Daten sie zugreifen können. Siehe [Permissions](/l/de/user-guide/permissions-access/capabilities/permissions) für Details.
</Note>
