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

# Strategien erstellen

> Erstelle, konfiguriere und verwalte Strategien direkt im Aftersell-Dashboard — ganz ohne Code.

<div id="overview">
  ## Überblick
</div>

Das Aftersell-Dashboard bietet eine visuelle Oberfläche zum Erstellen und Verwalten von Strategien. Du kannst Strategien anlegen, Targeting-Regeln mit Triggern definieren, zu empfehlende Produkte zuweisen und das Catch-all-Verhalten konfigurieren — alles ohne eine einzige Zeile Code.

Diese Anleitung führt dich Schritt für Schritt durch das Erstellen einer Strategie in der Oberfläche.

***

<div id="navigating-to-strategies">
  ## Zu den Strategien navigieren
</div>

1. Melde dich bei Aftersell an.
2. Klicke in der linken Seitenleiste auf **Strategies**.
3. Du siehst eine Liste deiner bestehenden Strategien oder eine leere Ansicht, die dich auffordert, deine erste Strategie zu erstellen.

***

<div id="creating-a-new-strategy">
  ## Eine neue Strategie erstellen
</div>

1. Klicke auf **Add Strategy**.
2. Du gelangst in den Strategie-Editor, in dem du Regeln hinzufügen kannst.

<Tip>
  Klicke auf das **Stiftsymbol** oben links im Strategie-Editor, um deiner Strategie einen aussagekräftigen Namen zu geben. Ein klarer Name erleichtert es dir später, Strategien im Dashboard zu identifizieren.
</Tip>

***

<div id="adding-rules">
  ## Regeln hinzufügen
</div>

Jede Strategie enthält eine oder mehrere **Regeln**. Eine Regel besteht aus:

* **Triggern** — dem „Wann“ — Kriterien, die erfüllt sein müssen, damit die Regel zutrifft.
* **Aktionen** — dem „Dann“ — der Experience, die zurückgegeben wird, wenn die Regel zutrifft.

<div id="defining-triggers">
  ### Trigger definieren
</div>

Trigger bestimmen, wann eine Regel ausgelöst wird. Du kannst bis zu fünf Trigger in einer einzigen Regel kombinieren. Ein **AND**/**OR**-Umschalter gilt für den gesamten Bedingungssatz: Bei **AND** muss jeder Trigger zutreffen; bei **OR** genügt es, wenn ein einziger Trigger zutrifft. Verfügbare Trigger-Typen sind unter anderem:

<div id="product-triggers">
  #### Produkt-Trigger
</div>

Ziele auf Basis der Produkte im Kontext (der Warenkorb des Käufers, die gerade abgeschlossene Bestellung oder das gerade betrachtete Produkt):

* **Specific product(s)** — trifft auf bestimmte Shopify-Produkte anhand ihrer ID zu
* **Collection** — trifft auf Produkte zu, die zu bestimmten Kollektionen gehören
* **Tag(s)** — trifft auf Produkte mit bestimmten Tags zu (z. B. „sale“, „summer“)
* **Title** — trifft auf den Produkttitel zu
* **Vendor** — trifft auf den Anbieter-/Markennamen zu
* **Type** — trifft auf das Produkttyp-Feld zu (z. B. „Apparel“, „Electronics“)
* **Handle** — trifft auf den URL-Slug des Produkts zu
* **Metafield** — trifft auf benutzerdefinierte Metafeld-Kombinationen aus Namespace/Key/Value zu
* **Selling plan** — trifft auf „subscription“- oder „one-time“-Produkte zu. Wird nur ausgewertet, wenn der Anfragekontext einen Selling Plan für das Produkt mitliefert — Aftersells Checkout- und Post-Purchase-Upsell-Oberflächen senden diesen nicht, daher trifft der Trigger dort nicht zu, es sei denn, eine benutzerdefinierte Integration liefert ihn explizit mit

<div id="customer-triggers">
  #### Kunden-Trigger
</div>

Ziele darauf ab, wer der Käufer ist:

* **Customer tag** — z. B. „VIP“, „loyalty-gold“
* **Country code** — Rechnungsland
* **Province code** — Provinz/Bundesland der Rechnungsadresse
* **Locale** — Kunden-Locale (z. B. „en-US“)
* **Accepts marketing** — Marketing-Opt-in-Status
* **Order count** — Anzahl früherer Bestellungen
* **Total spent** — Gesamtausgaben (Lifetime)

<div id="cart-triggers">
  #### Warenkorb-Trigger
</div>

Ziele auf den Gesamtzustand des Warenkorbs ab:

* **Cart subtotal** — z. B. Zwischensumme größer als \$50
* **Item count** — Gesamtanzahl der Artikel im Warenkorb
* **Line count** — Anzahl unterschiedlicher Positionen
* **Cart attribute** — benutzerdefinierte Warenkorbattribute, die über Shopifys Cart-API gesetzt wurden
* **Cart note** — das Feld für die Warenkorb-Notiz

<div id="location-triggers">
  #### Standort-Trigger
</div>

Ziele darauf ab, wohin der Käufer liefern lässt, sowie auf die Shop-Währung:

* **Shipping country** — Lieferland
* **Shipping province** — Provinz/Bundesland der Lieferadresse
* **Shipping method** — ausgewählte Versandmethode
* **Store currency** — der aktive Währungscode des Shops

<div id="marketing-triggers">
  #### Marketing-Trigger
</div>

Ziele auf die Seiten-URL ab, über die der Käufer gekommen ist:

* **URL** — trifft auf einen Teilstring der Landing-URL zu, sodass du eine bestimmte Kampagne oder einen Kanal anvisieren kannst, indem du einen in der URL eingebetteten Parameter abgleichst (z. B. `utm_source=newsletter`)

<div id="time-triggers">
  #### Zeit-Trigger
</div>

Ziele darauf ab, wann die Anfrage ausgewertet wird — in der Zeitzone des Shops:

* **Day of week** — der aktuelle Tag
* **Hour of day** — die aktuelle Stunde

<div id="dynamic-triggers">
  #### Dynamische Trigger
</div>

* **Always match** — ein Trigger ohne Bedingung, der immer auslöst. Verwende ihn, damit eine Regel bei jeder Anfrage ausgeführt wird (dies unterscheidet sich vom [Catch-all](#configuring-a-catch-all) auf Strategie-Ebene, das nur auslöst, wenn keine andere Regel zutrifft).

<Note>
  Nicht jeder Trigger wird auf jeder Oberfläche mit Daten befüllt. Der Checkout sendet beispielsweise nur Produkt- und Warenkorbkontext — Kunden-, Standort- und Marketing-Trigger treffen dort nicht zu. In den Anleitungen unter [Strategien implementieren](/de/aftersell/implementing_strategies_post_purchase_upsells) findest du, was jede Oberfläche sendet.
</Note>

<div id="operators">
  #### Operatoren
</div>

Jeder Trigger verwendet einen **Operator**, der definiert, wie der Wert abgeglichen wird. Welche Operatoren verfügbar sind, hängt vom Trigger-Typ ab.

| Operator                     | Beschreibung                                                                                                                                                        |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Equals**                   | Trifft zu, wenn das Feld exakt dem von dir angegebenen Wert entspricht — z. B. Vendor equals „Nike“.                                                                |
| **Does not equal**           | Trifft zu, wenn das Feld einen anderen als den angegebenen Wert hat — nützlich, um einen bestimmten Produkttyp oder Anbieter auszuschließen.                        |
| **Contains any**             | Trifft zu, wenn ein Mehrfachwert-Feld mindestens einen Wert aus deiner Liste enthält — z. B. wenn ein Produkt zu mindestens einer von mehreren Kollektionen gehört. |
| **Does not contain any**     | Trifft zu, wenn ein Mehrfachwert-Feld keinen der Werte aus deiner Liste enthält — z. B. um Produkte mit dem Tag „final-sale“ auszuschließen.                        |
| **Contains all**             | Trifft zu, wenn ein Mehrfachwert-Feld jeden Wert aus deiner Liste enthält — z. B. muss ein Produkt sowohl den Tag „sale“ als auch „summer“ haben.                   |
| **Does not contain all**     | Trifft zu, wenn in einem Mehrfachwert-Feld mindestens einer der Werte aus deiner Liste fehlt.                                                                       |
| **Contains**                 | Trifft zu, wenn ein Textfeld deinen Wert als Teilstring enthält — z. B. Title contains „Gift“.                                                                      |
| **Does not contain**         | Trifft zu, wenn ein Textfeld deinen Wert nicht enthält.                                                                                                             |
| **Greater than**             | Trifft zu, wenn ein numerisches Feld deinen Wert überschreitet — z. B. Warenkorb-Zwischensumme größer als \$75.                                                     |
| **Less than**                | Trifft zu, wenn ein numerisches Feld unter deinem Wert liegt — z. B. Order count kleiner als 2 (Erstkäufer).                                                        |
| **Greater than or equal to** | Trifft zu, wenn ein numerisches Feld deinen Wert erreicht oder überschreitet — z. B. Total spent mindestens \$500.                                                  |
| **Less than or equal to**    | Trifft zu, wenn ein numerisches Feld deinen Wert erreicht oder unterschreitet — z. B. maximal 3 Artikel im Warenkorb.                                               |

Nicht jeder Operator ist für jeden Trigger verfügbar:

* **Listen-Operatoren** (**Contains any / all** und ihre Verneinungen) gelten für Mehrfachwert-Felder wie Tags, Kollektionen, Kunden-Tags und bestimmte Produkte.
* **Text-Operatoren** (**Equals**, **Contains** und ihre Verneinungen) gelten für Einzelwert-Textfelder wie Title, Vendor, Handle, Locale, Country und URL.
* **Numerische Operatoren** gelten für Felder wie Warenkorb-Zwischensumme, Artikelanzahl, Positionsanzahl, Bestellanzahl, Gesamtausgaben und Stunde des Tages. Numerische Operatoren haben keine „does not“-Varianten.
* Einige wenige Felder unterstützen nur **Equals** und **Does not equal** — Selling plan, Day of week und Accepts marketing.

<div id="defining-actions">
  ### Aktionen definieren
</div>

Aktionen erzeugen die Experience, die du dem Kunden ausliefern möchtest. Hier entscheidest du, welche Produkte angezeigt werden, wie sie angezeigt werden und welche zusätzlichen Daten mitgeliefert werden. Eine Regel kann mehrere Aktionen enthalten, die gemeinsam die vollständige Experience bilden.

Pro Regel fließen alle konfigurierten Aktionen in einen gemeinsamen Pool ein. Eine Regel mit einer Aktion für bestimmte Produkte, einer Kollektions-Aktion und einer Tag-basierten Aktion gibt zum Beispiel Produkte aus allen drei Quellen zusammen zurück. Wenn ein Produkt mehreren Quellen entspricht, wird es dedupliziert.

<div id="product-actions">
  #### Produkt-Aktionen
</div>

Dieselben Produktattribute, die auf der Trigger-Seite verfügbar sind, stehen auch beim Definieren von Aktionen zur Verfügung. Du kannst Produkte zurückgeben lassen basierend auf:

* **Bestimmten Produkten** — wähle einzelne Produkte aus deinem Shopify-Katalog von Hand aus.
* **Kollektion** — gib alle Produkte einer bestimmten Kollektion zurück.
* **Produktattributen** — gib Produkte zurück, die Kriterien wie Tags, Vendor, Produkttyp oder Metafeldern entsprechen — dieselben Attributtypen wie bei Triggern.

<div id="dynamic-actions">
  #### Dynamische Aktionen
</div>

Dynamische Aktionen ändern das Ergebnis auf Basis von Echtzeit-Signalen statt einer festen Produktliste. Verfügbare dynamische Aktionstypen sind unter anderem:

* **Most popular** — die umsatzstärksten Produkte deines Shops nach Verkaufsvolumen, entweder shopweit oder auf eine Kollektion begrenzt.
* **Recently purchased** — Produkte, die kürzlich im Shop gekauft wurden.
* **Inherit from when** — verwende die Trigger der Regel (das „Wann“) als Produktauswahl wieder, sodass die zurückgegebenen Produkte denselben Kriterien entsprechen, aufgrund derer die Regel ausgelöst wurde.
* **AI Recommendations** — personalisierte Vorschläge, die von Aftersells Empfehlungsmodell generiert werden.

<div id="filtering-actions">
  #### Filter-Aktionen
</div>

Sobald der Produktpool zusammengestellt ist, kannst du konfigurieren, wie viele Produkte in welcher Reihenfolge zurückgegeben werden:

* **Sort** — steuere, welche Produkte ausgewählt werden:
  * **Random** — eine zufällige Auswahl.
  * **Price: high → low** — die teuersten Produkte werden zuerst zurückgegeben.
  * **Price: low → high** — die günstigsten Produkte werden zuerst zurückgegeben.
* **Amount/Limit** — lege die maximale Anzahl zurückzugebender Produkte fest.

<Info>
  Zuerst wird Sort angewendet, dann Amount/Limit. Wenn deine Sortierung zum Beispiel auf **Random** steht, wird der gesamte Produktpool zufällig gemischt, bevor das Limit angewendet wird — du erhältst also immer einen zufälligen Ausschnitt, nicht dieselben Produkte in zufälliger Reihenfolge.
</Info>

<div id="key-value-actions">
  #### Key-Value-Aktionen
</div>

Optional kannst du einer Regel Key-Value-Paare anhängen. Wenn die Regel zutrifft, werden diese in `meta.data` in der API-Antwort zusammen mit den Produktergebnissen zurückgegeben. Häufige Anwendungsfälle sind:

* Text für Werbebanner
* Kampagnen-Labels für Analytics

<Note>
  Wenn mehrere Regeln zutreffen und denselben Key ausgeben, gewinnt der Wert der ersten zutreffenden Regel — spätere Regeln können ihn nicht überschreiben.
</Note>

***

<div id="rule-priority-and-evaluation-order">
  ## Regelpriorität und Auswertungsreihenfolge
</div>

Regeln innerhalb einer Strategie werden in hierarchischen, sequenziellen Steps ausgewertet. Step 1 wird zuerst ausgewertet und so weiter. Du kannst Regeln per Drag-and-drop im Strategie-Editor neu anordnen. Die Auswertungs-Engine:

1. Wertet die Trigger jeder Regel anhand des übergebenen Kontexts aus.
2. Sammelt Produkte aus allen zutreffenden Regeln.
3. Dedupliziert und begrenzt das Ergebnis auf das konfigurierte Maximum (Standard: 20 Produkte).

***

<div id="configuring-a-catch-all">
  ## Ein Catch-all konfigurieren
</div>

Das Catch-all ist eine spezielle Regel, die als letzter Schritt jeder Strategie-Auswertung fungiert. Sie hat keinen Trigger und wird automatisch ausgelöst, wenn keine andere Regel der Strategie auf die aktuelle Anfrage zutrifft.

Wenn es aktiviert ist, stellt das Catch-all sicher, dass dein Empfehlungsplatz nie leer bleibt. Seine Aktion kann mit denselben Aktionstypen konfiguriert werden, die auch regulären Regeln zur Verfügung stehen — bestimmte Produkte, Kollektionen, dynamische Aktionen usw.

* **Aktivieren/Deaktivieren** — schalte die Catch-all-Regel für die Strategie ein oder aus. Wenn sie deaktiviert ist, geben Anfragen, auf die keine Regel zutrifft, ein leeres Ergebnis zurück.
* **Aktionen konfigurieren** — definiere, was zurückgegeben wird, mit einer beliebigen Kombination verfügbarer Aktionstypen, genau wie bei jeder anderen Regel.

Wenn das Catch-all ausgelöst wird, enthält die API-Antwort `resolution.fallbackUsed: true`.

***

<div id="global-filters">
  ## Globale Filter
</div>

Globale Filter entfernen Produkte aus der Auswahlberechtigung über alle Regeln einer Strategie hinweg. Du erreichst sie über das **Filtersymbol** neben dem Strategienamen oben links im Strategie-Editor.

Verfügbare globale Filter:

* **Exclude out of stock** — schließe automatisch jedes Produkt aus, das aktuell nicht zum Kauf verfügbar ist.
* **Exclude input products** — schließe das Produkt bzw. die Produkte aus, die die Regel ausgelöst haben (z. B. das Produkt, das ein Käufer gerade auf einer Produktdetailseite betrachtet), damit du nie genau das Produkt empfiehlst, das sich der Käufer bereits ansieht.
* **Exclude by product tag** — schließe Produkte mit bestimmten Tags aus.
* **Exclude by metafield** — schließe Produkte aus, die einer bestimmten Metafeld-Kombination aus Namespace/Key/Value entsprechen.
* **Exclude by product ID** — schließe bestimmte Produkte anhand ihrer ID aus.
* **Require stock at location** — behalte nur Produkte, die an einem ausgewählten Standort verfügbaren Bestand haben (erfordert Leseberechtigungen für Inventar und Standorte).

***

<div id="validation-and-error-states">
  ## Validierung und Fehlerzustände
</div>

Eine Strategie kann nicht gespeichert werden, wenn eine Regel unvollständig ist. Jede Regel benötigt mindestens eine Bedingung (oder den Trigger **Always match**) und mindestens eine Aktion; fehlt eines von beiden, erscheinen Fehler direkt an der betreffenden Regel und zeigen, was behoben werden muss.

Um den Fehler zu beheben und die Strategie zu speichern, kannst du entweder:

* **Die Regel vervollständigen** — füge den fehlenden Trigger und/oder die fehlende Aktion hinzu.
* **Die Regel löschen** — entferne sie vollständig, wenn sie nicht mehr benötigt wird.

Der Strategie-Editor lässt das Speichern erst zu, wenn alle Regeln gültig sind.
