> ## 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.

# Byg strategier

> Opret, konfigurer og administrer strategier fra Aftersell-dashboardet — helt uden kode.

<div id="overview">
  ## Oversigt
</div>

Aftersell-dashboardet tilbyder en visuel grænseflade til at bygge og administrere strategier. Du kan oprette strategier, definere targetingregler med triggere, tildele produkter til anbefaling og konfigurere catch all-adfærd — alt sammen uden at skrive kode.

Denne guide gennemgår hele processen med at oprette en strategi i brugergrænsefladen.

***

<div id="navigating-to-strategies">
  ## Naviger til Strategies
</div>

1. Log ind i Aftersell.
2. Klik på **Strategies** i venstre sidebar-navigation.
3. Du ser en liste over dine eksisterende strategier eller en tom tilstand, der opfordrer dig til at oprette din første.

***

<div id="creating-a-new-strategy">
  ## Opret en ny strategi
</div>

1. Klik på **Add Strategy**.
2. Du føres til strategieditoren, hvor du kan tilføje regler.

<Tip>
  Klik på **blyantikonet** øverst til venstre i strategieditoren for at give din strategi et beskrivende navn. Et tydeligt navn gør det nemmere at identificere strategier i dashboardet senere.
</Tip>

***

<div id="adding-rules">
  ## Tilføj regler
</div>

Hver strategi indeholder en eller flere **regler**. En regel består af:

* **Triggere** — "hvornår" — kriterier, der skal opfyldes, for at reglen matcher.
* **Handlinger** — "så" — den oplevelse, der returneres, når reglen matcher.

<div id="defining-triggers">
  ### Definér triggere
</div>

Triggere afgør, hvornår en regel udløses. Du kan kombinere op til fem triggere i en enkelt regel. Én **AND**/**OR**-omskifter gælder for hele betingelsessættet: med **AND** skal alle triggere matche; med **OR** er det nok, at én trigger matcher. Tilgængelige triggertyper omfatter:

<div id="product-triggers">
  #### Produkttriggere
</div>

Målret baseret på produkterne i konteksten (kundens kurv, den netop gennemførte ordre eller det produkt, der vises):

* **Specific product(s)** — matcher specifikke Shopify-produkter efter ID
* **Collection** — matcher produkter, der tilhører specifikke kollektioner
* **Tag(s)** — matcher produkter med specifikke tags (f.eks. "sale", "summer")
* **Title** — matcher produkttitlen
* **Vendor** — matcher leverandør-/brandnavnet
* **Type** — matcher produkttypefeltet (f.eks. "Apparel", "Electronics")
* **Handle** — matcher produktets URL-slug
* **Metafield** — matcher på brugerdefinerede metafield-namespace/nøgle/værdi-par
* **Selling plan** — matcher "subscription"- eller "one-time"-produkter. Evalueres kun, når request-konteksten leverer en selling plan for produktet — Aftersells checkout- og post-purchase-upsell-flader sender ikke dette, så triggeren matcher ikke der, medmindre en brugerdefineret integration leverer den eksplicit

<div id="customer-triggers">
  #### Kundetriggere
</div>

Målret baseret på, hvem kunden er:

* **Customer tag** — f.eks. "VIP", "loyalty-gold"
* **Country code** — faktureringsland
* **Province code** — faktureringsprovins/-stat
* **Locale** — kundens locale (f.eks. "en-US")
* **Accepts marketing** — status for tilmelding til markedsføring
* **Order count** — antal tidligere ordrer
* **Total spent** — samlet forbrug i kundens levetid

<div id="cart-triggers">
  #### Kurvtriggere
</div>

Målret baseret på kurvens samlede tilstand:

* **Cart subtotal** — f.eks. subtotal større end \$50
* **Item count** — samlet antal varer i kurven
* **Line count** — antal forskellige linjeelementer
* **Cart attribute** — brugerdefinerede kurvattributter sat via Shopifys cart-API
* **Cart note** — kurvens notefelt

<div id="location-triggers">
  #### Lokationstriggere
</div>

Målret baseret på, hvor kunden får varerne sendt hen, og butikkens valuta:

* **Shipping country** — leveringsland
* **Shipping province** — leveringsprovins/-stat
* **Shipping method** — valgt leveringsmetode
* **Store currency** — den aktive butiksvalutakode

<div id="marketing-triggers">
  #### Marketingtriggere
</div>

Målret baseret på den side-URL, kunden ankom til:

* **URL** — matcher en delstreng af landings-URL'en, så du kan målrette en specifik kampagne eller kanal ved at matche en parameter indlejret i URL'en (f.eks. `utm_source=newsletter`)

<div id="time-triggers">
  #### Tidstriggere
</div>

Målret baseret på, hvornår requesten evalueres, i butikkens tid:

* **Day of week** — den aktuelle dag
* **Hour of day** — den aktuelle time

<div id="dynamic-triggers">
  #### Dynamiske triggere
</div>

* **Always match** — en trigger uden betingelse, der altid udløses. Brug den til at få en regel til at køre på hver request (dette adskiller sig fra [Catch all](#configuring-a-catch-all) på strateginiveau, som kun udløses, når ingen anden regel matcher).

<Note>
  Ikke alle triggere udfyldes på alle flader. Checkout sender for eksempel kun produkt- og kurvkontekst — kunde-, lokations- og marketingtriggere matcher ikke der. Se guiderne [Implementering af strategier](/da/aftersell/implementing_strategies_post_purchase_upsells) for, hvad hver flade sender.
</Note>

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

Hver trigger bruger en **operator** til at definere, hvordan værdien matches. Hvilke operatorer der er tilgængelige, afhænger af triggertypen.

| Operator                     | Beskrivelse                                                                                                                                 |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| **Equals**                   | Matcher, når feltet er nøjagtigt den værdi, du angiver — f.eks. vendor equals "Nike".                                                       |
| **Does not equal**           | Matcher, når feltet er alt andet end den værdi, du angiver — nyttigt til at udelukke en bestemt produkttype eller leverandør.               |
| **Contains any**             | Matcher, når et felt med flere værdier indeholder mindst én værdi fra din liste — f.eks. et produkt, der tilhører en af flere kollektioner. |
| **Does not contain any**     | Matcher, når et felt med flere værdier ikke indeholder nogen af værdierne i din liste — f.eks. udeluk produkter tagget "final-sale".        |
| **Contains all**             | Matcher, når et felt med flere værdier indeholder alle værdier i din liste — f.eks. skal et produkt have både tagget "sale" og "summer".    |
| **Does not contain all**     | Matcher, når et felt med flere værdier mangler mindst én af værdierne i din liste.                                                          |
| **Contains**                 | Matcher, når et tekstfelt indeholder din værdi som delstreng — f.eks. titel indeholder "Gift".                                              |
| **Does not contain**         | Matcher, når et tekstfelt ikke indeholder din værdi.                                                                                        |
| **Greater than**             | Matcher, når et numerisk felt overstiger din værdi — f.eks. kurvens subtotal er større end \$75.                                            |
| **Less than**                | Matcher, når et numerisk felt er under din værdi — f.eks. ordreantal er mindre end 2 (førstegangskøbere).                                   |
| **Greater than or equal to** | Matcher, når et numerisk felt når eller overstiger din værdi — f.eks. samlet forbrug er mindst \$500.                                       |
| **Less than or equal to**    | Matcher, når et numerisk felt er på eller under din værdi — f.eks. antal varer i kurven er højst 3.                                         |

Ikke alle operatorer er tilgængelige for alle triggere:

* **Listeoperatorer** (**Contains any / all** og deres negationer) gælder for felter med flere værdier som tags, kollektioner, kundetags og specifikke produkter.
* **Tekstoperatorer** (**Equals**, **Contains** og deres negationer) gælder for tekstfelter med én værdi som titel, leverandør, handle, locale, land og URL.
* **Numeriske operatorer** gælder for felter som kurvens subtotal, vareantal, linjeantal, ordreantal, samlet forbrug og time på dagen. Numeriske operatorer har ingen "does not"-varianter.
* Nogle få felter understøtter kun **Equals** og **Does not equal** — selling plan, day of week og accepts marketing.

<div id="defining-actions">
  ### Definér handlinger
</div>

Handlinger skaber den oplevelse, du vil levere til kunden. Det er her, du beslutter, hvilke produkter der skal vises, hvordan de skal vises, og eventuelle yderligere data, der skal sendes med. En regel kan have flere handlinger konfigureret sammen for at bygge hele oplevelsen.

Pr. regel bidrager alle konfigurerede handlinger til én samlet pulje. For eksempel returnerer en regel med en handling for specifikke produkter, en kollektionshandling og en tag-baseret handling produkter fra alle tre kilder samlet. Hvis et produkt matcher flere kilder, deduplikeres det.

<div id="product-actions">
  #### Produkthandlinger
</div>

De samme produktattributter, der er tilgængelige på trigger-siden, er også tilgængelige, når du definerer handlinger. Du kan returnere produkter baseret på:

* **Specific products** — håndplukket enkeltprodukter fra dit Shopify-katalog.
* **Collection** — returnér alle produkter, der tilhører en bestemt kollektion.
* **Product attributes** — returnér produkter, der matcher kriterier som tags, leverandør, produkttype eller metafields — de samme attributtyper, der bruges i triggere.

<div id="dynamic-actions">
  #### Dynamiske handlinger
</div>

Dynamiske handlinger ændrer, hvad der returneres, baseret på realtidssignaler i stedet for en fast produktliste. Tilgængelige dynamiske handlingstyper omfatter:

* **Most popular** — din butiks bedst performende produkter efter salgsvolumen, enten i hele butikken eller afgrænset til en kollektion.
* **Recently purchased** — produkter, der for nylig er købt i hele butikken.
* **Inherit from when** — genbrug reglens egne triggere ("when"-delen) som produktvælger, så de returnerede produkter matcher de samme kriterier, som reglen blev udløst på.
* **AI Recommendations** — personaliserede forslag genereret af Aftersells anbefalingsmodel.

<div id="filtering-actions">
  #### Filtreringshandlinger
</div>

Når produktpuljen er samlet, kan du konfigurere, hvor mange produkter der returneres, og i hvilken rækkefølge:

* **Sort** — styr, hvilke produkter der vælges:
  * **Random** — et tilfældigt udvalg.
  * **Price: high → low** — de dyreste produkter returneres først.
  * **Price: low → high** — de billigste produkter returneres først.
* **Amount/Limit** — angiv det maksimale antal produkter, der skal returneres.

<Info>
  Sortering anvendes først, derefter Amount/Limit. Hvis din sortering for eksempel er sat til **Random**, randomiseres hele produktpuljen, før grænsen anvendes — så du altid får et tilfældigt udsnit, ikke de samme produkter i tilfældig rækkefølge.
</Info>

<div id="key-value-actions">
  #### Nøgle-værdi-handlinger
</div>

Du kan valgfrit knytte nøgle-værdi-par til en regel. Når reglen matcher, returneres disse i `meta.data` i API-svaret sammen med produktresultaterne. Almindelige anvendelser omfatter:

* Tekst til promoveringsbannere
* Kampagnemærkater til analyseformål

<Note>
  Hvis flere regler matcher og udsender den samme nøgle, vinder værdien fra den første matchende regel — senere regler kan ikke tilsidesætte den.
</Note>

***

<div id="rule-priority-and-evaluation-order">
  ## Regelprioritet og evalueringsrækkefølge
</div>

Regler i en strategi evalueres i hierarkiske, sekventielle trin. Trin 1 evalueres først og så videre. Du kan ændre rækkefølgen af regler ved at trække og slippe dem i strategieditoren. Evalueringsmotoren:

1. Evaluerer hver regels triggere mod den leverede kontekst.
2. Indsamler produkter fra alle matchende regler.
3. Deduplikerer og begrænser resultatet til det konfigurerede maksimum (standard: 20 produkter).

***

<div id="configuring-a-catch-all">
  ## Konfigurer en Catch all
</div>

Catch all er en særlig regel, der fungerer som det sidste trin i hver strategievaluering. Den har ingen trigger; den udløses automatisk, hvis ingen anden regel i strategien matcher den aktuelle request.

Når den er aktiveret, sikrer Catch all, at din anbefalingsplads aldrig er tom. Dens handling kan konfigureres med alle de samme handlingstyper, som er tilgængelige for almindelige regler — specifikke produkter, kollektioner, dynamiske handlinger osv.

* **Aktivér/deaktivér** — slå Catch all-reglen til eller fra for strategien. Når den er deaktiveret, returnerer requests, der ikke matcher nogen regler, et tomt resultat.
* **Konfigurer handlinger** — definér, hvad der skal returneres, med enhver kombination af tilgængelige handlingstyper, ligesom med enhver anden regel.

Når Catch all udløses, angiver API-svaret `resolution.fallbackUsed: true`.

***

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

Globale filtre fjerner produkter fra valgmulighederne på tværs af alle regler i en strategi. Du får adgang til dem via **filterikonet** ved siden af strateginavnet øverst til venstre i strategieditoren.

Tilgængelige globale filtre:

* **Exclude out of stock** — udeluk automatisk alle produkter, der i øjeblikket ikke kan købes.
* **Exclude input products** — udeluk det eller de produkter, der udløste reglen (f.eks. det produkt, en kunde aktuelt ser på en produktside), så du aldrig anbefaler det samme produkt, kunden allerede kigger på.
* **Exclude by product tag** — udeluk produkter med specifikke tags.
* **Exclude by metafield** — udeluk produkter, der matcher et specifikt metafield-namespace/nøgle/værdi.
* **Exclude by product ID** — udeluk specifikke produkter efter ID.
* **Require stock at location** — behold kun produkter, der har tilgængeligt lager på en valgt lokation (kræver læsetilladelser til lager og lokationer).

***

<div id="validation-and-error-states">
  ## Validering og fejltilstande
</div>

En strategi kan ikke gemmes, hvis en regel er ufuldstændig. Hver regel skal have mindst én betingelse (eller **Always match**-triggeren) og mindst én handling; hvis en af delene mangler, vises fejl direkte på den pågældende regel med fremhævning af, hvad der skal løses.

For at rydde fejlen og gemme strategien skal du enten:

* **Fuldføre reglen** — tilføj den manglende trigger og/eller handling.
* **Slette reglen** — fjern den helt, hvis den ikke længere er nødvendig.

Strategieditoren tillader ikke at gemme, før alle regler er gyldige.
