op deze pagina: vind gebruiksklare verpersoonlijkingsrecepten voor data, series, koorden, voorwaardelijke logica, en de randgevallen van PQL die u direct in uw inhoud van Adobe Journey Optimizer kunt kopiëren.
Deze pagina biedt gebruiksklare personalisatiepatronen voor de meest gebruikte gevallen in Adobe Journey Optimizer. Alle voorbeelden gebruiken de syntaxis van de verpersoonlijkingsredacteur en kunnen direct in e-mail, SMS, of drukinhoud worden gekopieerd.
Voor een volledige verwijzing van beschikbare functies, zie de functies van de Helper , functies van de Datum/tijd , functies van het Koord , en functies van de Serie .
Datum- en tijdrecepten date-time-recipes
Recipe 1 — De huidige datum weergeven in een leesbare indeling recipe-current-date
Gebruik formatDate met getCurrentZonedDateTime() om de datum van vandaag in om het even welke formaat terug te geven:
{%= formatDate(getCurrentZonedDateTime(), "MMMM dd, yyyy") %}
Uitvoer (voorbeeld): April 11, 2026
Gemeenschappelijke formaatpatronen:
"dd/MM/yyyy"11/04/2026"MM/dd/yyyy"04/11/2026"EEEE, MMMM dd"Saturday, April 11"yyyy-MM-dd"2026-04-11y (kalenderjaar) in plaats van Y (week gebaseerd jaar) om onverwachte resultaten te voorkomen bij de grenzen van het jaar. Zie patroonkarakters voor de volledige verwijzing.Recipe 2 — Aftellen tot een vervaldatum of gebeurtenisdatum recipe-countdown
Gebruik dateDiff om het aantal dagen te berekenen dat resteert tot een kenmerk voor een profieldatum en het vervolgens dynamisch weer te geven:
Uitvoer (voorbeeld): Your reward points expire in 7 days. Use them before they're gone!
Recipe 3 — X dagen vóór een dynamische einddatum recipe-days-before
Als u een datum wilt berekenen die X dagen vóór een profielkenmerk ligt (bijvoorbeeld om te verwijzen in inhoud of onderwerpregel), gebruikt u addDays met een negatieve verschuiving:
{%= formatDate(addDays(stringToDate(profile.subscription.endDate), -7), "MMMM dd, yyyy") %}
Uitvoer (voorbeeld): April 04, 2026 (7 dagen vóór 11 april)
Als u ook een vaste tijd van de dag wilt instellen (bijvoorbeeld 9.00 uur), combineert u met setHours :
{%= formatDate(setHours(addDays(stringToDate(profile.subscription.endDate), -7), 9), "dd/MM/yyyy HH:mm") %}
Recipe 4 — Toon huidige tijd als HH :MM slechts recipe-time-only
Gebruik extractHours en extractMinutes om alleen het tijdgedeelte weer te geven, met een voorloopnul voor minuten:
Uitvoer (voorbeeld): Your appointment is at 14:05.
Recipe 5 — Detect weekend vs. weekdag recipe-weekend
Gebruik dayOfWeek om de inhoud aan te passen op basis van de dag. De functie retourneert 1 (maandag) tot en met 7 (zondag). Gebruik de enkele operator = (syntaxis van PQL, niet == ):
dayOfWeek() is voor het aanpassen van inhoud die op de dag wordt gebaseerd. Voor het verpletteren van profielen verschillend in een reis die op de dag van de week wordt gebaseerd, gebruik de ingebouwde voorwaarde van de Tijd → Dag van de week optie in de activiteit van de reisvoorwaarde. Leer meer Array- en lusrecepten array-recipes
Recipe 6 — Alle items van een profielarray weergeven recipe-list-items
Gebruik {{#each}} om een profielarray te doorlopen en elk item te renderen. Deze optie is alleen beschikbaar in de verpersoonlijkingseditor (e-mail, SMS, push):
Uitvoer (voorbeeld):
- Running shoes: 89€
- Water bottle: 15€
- Gym bag: 45€
{{#each}} wordt niet ondersteund in de activiteit van de reisvoorwaarde. Voor serie het filtreren in voorwaarden, gebruik functies van het inzamelingsbeheer .Recipe 7 — Toon de bovenste N-items van een array op prijs recipe-first-n
Gebruik topN om de bovenste N-items op een numeriek veld te sorteren en op te halen. Aangezien topN een PQL-functie is, moet u de functie eerst met {% let %} aan een variabele toewijzen en daarna met {{#each}} herhalen:
topN(profile.orders, price, 3) sorteert orders op price in aflopende volgorde en retourneert de bovenste 3. De eerste 3 items worden niet gewoon in de oorspronkelijke arrayvolgorde geretourneerd.Of gebruik head om alleen het ene bovenste item op te halen:
{%= head(profile.purchases.recentItems).name %}
Recipe 8 — Inhoud voorwaardelijk renderen per arrayitem recipe-conditional-loop
Gebruik {%#if%} inside {{#each}} om alleen uitvoer te renderen voor overeenkomende items. Definieer een lusalias met as |order| zodat de beoordelaar van PQL de kenmerkverwijzing in de voorwaarde kan oplossen:
this.status werkt in Handlebars-expressies, maar wordt niet opgelost door de PQL-beoordelaar in {%#if%} . Een benoemde lusalias gebruiken (bijvoorbeeld order ) maakt het kenmerk beschikbaar voor zowel de context Handlebars als PQL.Reacties voor tekenreeks en opmaak string-recipes
Recipe 9 — Clean a string with replaceAll and reuse it recipe-replaceall-reuse
replaceAll retourneert een nieuwe waarde. De oorspronkelijke waarde wordt hierdoor niet gewijzigd. Gebruik {% let %} om het resultaat op te slaan en er meerdere keren naar te verwijzen zonder de functieaanroep te herhalen:
Uitvoer (voorbeeld):
Hi John,
Your exclusive code is: WELCOME-JOHN
Recipe 10 — Dubbelciteer een waarde in JSON-uitvoer recipe-json-quotes
Als u een letterlijk dubbel aanhalingsteken in een tekenreeks wilt opnemen (bijvoorbeeld het genereren van JSON voor een aangepaste lading), laat u dit item ontsnappen met een backslash (\"):
Uitvoer: { "greeting": "Hello \"John\"" }
Recipe 11 — Een datumcomponent opmaken in hoofdletters recipe-uppercase-date
Combineer formatDate met upperCase om maand- of dagnamen in hoofdletters weer te geven:
{%= upperCase(formatDate(getCurrentZonedDateTime(), "MMMM")) %}
Uitvoer (voorbeeld): APRIL
Voor een datumtekenreeks in hoofdletters:
{%= upperCase(formatDate(profile.person.birthDateTime, "EEEE MMMM dd yyyy")) %}
Uitvoer (voorbeeld): WEDNESDAY JANUARY 01 2020
Voorwaardelijke logische recepten conditional-recipes
Recipe 12 — IF/ELSEIF/ELSE in gepersonaliseerde inhoud recipe-if-elseif
Gebruik {%#if%} , {%else if%} en {%else%} voor voorwaardelijke logica met meerdere vertakkingen. Dit patroon werkt in e-mailinhoud en fragmenten:
Recipe 13 — Null-safe kenmerkweergave recipe-null-safe
Gebruik een voorwaardelijke fallback om te voorkomen dat lege waarden worden weergegeven wanneer een profielkenmerk null is of ontbreekt:
Of inline met een ternair patroon met isEmpty :
PQL-recepten voor kleine letters pql-edge-cases
Recipe 14 — Reference a hyphenated attribute key recipe-hyphenated-key
Als de veldnaam van het XDM-schema afbreekstreepjes bevat (bijvoorbeeld order-total , event-type ), plaatst u het afbreekstreepje op de achtergrond in een PQL-expressie om te voorkomen dat het afbreekstreepje wordt geïnterpreteerd als een aftrekoperator:
{%= profile.events.`order-total` > 100 %}
{%= ... %}). Zij worden niet toegelaten in gewone Handlebars interpolatie ({{...}}). Als u een afgebroken veldwaarde rechtstreeks wilt renderen, evalueert u deze via een PQL-expressie of slaat u deze waarde eerst met {% let %} op in een variabele.Recipe 15 — Reference a numeric event ID in a context attribute recipe-numeric-event-id
Bij gebruik van een gebeurtenis van de reiscontext waarvan de id een numerieke tekenreeks is (bijvoorbeeld 1697323153), plaatst u de id op de achtergrond en gebruikt u {% let %} met toDateTime() en formatDate() :
Uitvoer (voorbeeld): Your appointment: 18/03/2026 14:30
Recipe 16 — Type dwang: een tekenreeksveld vergelijken met een getal recipe-type-coercion
PQL wordt sterk getypeerd. Wanneer een profielveld wordt opgeslagen als een tekenreeks, maar u moet het numeriek vergelijken, moet u het eerst omzetten met stringToNumber() :
{%= stringToNumber(profile.loyalty.pointsBalance) > 500 %}
Voor Booleaanse velden die zijn opgeslagen als tekenreeksen:
{%= toBool(profile.consents.email.val) = true %}