Eseguire iterazioni sui dati contestuali personalization-contexts
Scopri come utilizzare la sintassi di iterazione Handlebars per visualizzare elenchi dinamici di dati provenienti da varie origini nei messaggi, inclusi eventi, risposte di azioni personalizzate e altri dati contestuali.
Panoramica overview
Journey Optimizer fornisce l'accesso ai dati contestuali provenienti da più origini durante la personalizzazione dei messaggi. Puoi eseguire iterazioni su array da queste origini utilizzando la sintassi Handlebars nei canali nativi (email, push, SMS) per visualizzare contenuti dinamici come elenchi di prodotti, consigli o altri elementi ripetuti.
Origini di contesto disponibili:
- Eventi: dati da eventi di percorso (eventi di business, eventi unitari)
- Risposte alle azioni personalizzate: dati restituiti da chiamate API esterne tramite azioni personalizzate
- Ricerca set di dati: dati arricchiti recuperati dai set di dati di Adobe Experience Platform
- Proprietà tecniche: metadati di Percorso come ID percorso e identificatori supplementari
- Contesto Percorso: altri dati relativi al percorso accessibili durante l'esecuzione
Questa guida illustra come eseguire iterazioni su array da ciascuna di queste origini nei messaggi e come utilizzare gli array durante la configurazione delle attività di percorso. Inizia con Sintassi di iterazione Handlebars per comprendere le nozioni di base sulla personalizzazione dei messaggi, oppure passa a Utilizza gli array nelle espressioni di Percorso per scoprire come passare i dati degli array alle azioni personalizzate e alle ricerche di set di dati.
Sintassi di iterazione Handlebars syntax
Handlebars fornisce a {{#each}} helper l'iterazione su array. La sintassi di base è:
Punti chiave:
- Sostituisci
arrayPathcon il percorso dei tuoi dati array - Sostituisci
itemcon il nome di variabile desiderato (ad esempioproduct,response,element) - Accedere alle proprietà di ogni elemento utilizzando
{{item.propertyName}} - È possibile nidificare più blocchi
{{#each}}per array multilivello
Iterazione dei dati evento event-data
I dati evento sono disponibili quando il percorso viene attivato da un evento. Ciò è utile per visualizzare i dati acquisiti al momento dell’avvio del percorso, ad esempio il contenuto del carrello, gli elementi dell’ordine o gli invii di moduli.
Percorso contesto per gli eventi
<event_ID>: ID univoco dell'evento configurato nel percorso<fieldPath>: percorso del campo o dell'array nello schema eventi
Esempio: Cart items from an event (Carrelli da un evento)
Se lo schema evento include un array productListItems (formato XDM standard), puoi visualizzare il contenuto del carrello come descritto nell'esempio seguente.
| code language-handlebars |
|---|
|
Esempio: array nidificati negli eventi
Per le strutture nidificate, utilizzare blocchi {{#each}} nidificati.
| code language-handlebars |
|---|
|
Ulteriori informazioni sulla nidificazione in Best practice.
Alterna le risposte di azione personalizzate custom-action-responses
Le risposte all'azione personalizzata contengono dati restituiti da chiamate API esterne. È utile per visualizzare informazioni in tempo reale dai sistemi, ad esempio punti fedeltà, consigli di prodotto, stato dell’inventario o offerte personalizzate.
Percorso contestuale per azioni personalizzate
<actionName>: nome dell'azione personalizzata configurata nel percorso<fieldPath>: percorso del campo o dell'array all'interno del payload di risposta
Esempio: consigli di prodotto da un’API
Per scorrere un array di consigli di prodotti restituiti da un’azione personalizzata e visualizzarli come schede singole nel messaggio, vedi l’esempio seguente.
Risposta API:
| code language-json |
|---|
|
Personalizzazione dei messaggi:
| code language-handlebars |
|---|
|
Esempio: array nidificati da azioni personalizzate
Per scorrere sopra una risposta di azione personalizzata contenente array nidificati (un array di oggetti, in cui ogni oggetto contiene un altro array), vedi l’esempio seguente. Ciò dimostra l'utilizzo di {{#each}} loop nidificati per accedere a più livelli di dati.
Risposta API:
| code language-json |
|---|
|
Personalizzazione dei messaggi:
| code language-handlebars |
|---|
|
Per schemi di nidificazione più complessi, consulta Best practice.
Esempio: vantaggi del livello fedeltà
Per visualizzare i vantaggi dinamici in base allo stato di fedeltà, vedi l’esempio seguente.
Risposta API:
| code language-json |
|---|
|
Personalizzazione dei messaggi:
| code language-handlebars |
|---|
|
Alterna i risultati della ricerca del set di dati dataset-lookup
L'attività di ricerca set di dati ti consente di recuperare dati dai set di dati Adobe Experience Platform durante il runtime di percorso. I dati arricchiti vengono memorizzati come array e possono essere iterati nei messaggi.
Ulteriori informazioni sulla configurazione dell'attività di ricerca del set di dati in questa sezione. La ricerca del set di dati è particolarmente efficace quando viene combinata con i dati dell'evento. Vedere Esempio: dati dell'evento arricchiti con la ricerca del set di dati per un caso d'uso pratico.
Percorso contesto per le ricerche dei set di dati
<activityID>: ID univoco dell'attività di ricerca del set di datientities: array di dati arricchiti recuperati dal set di dati
Esempio: dettagli del prodotto da un set di dati
Se utilizzi un’attività di ricerca del set di dati per recuperare informazioni di prodotto in base agli SKU, vedi l’esempio di seguito.
Configurazione ricerca set di dati:
- Chiavi di ricerca:
list(@event{purchase_event.products.sku}) - Campi da restituire:
["SKU", "category", "price", "name"]
Personalizzazione dei messaggi:
| code language-handlebars |
|---|
|
Esempio: iterazione filtrata con dati del set di dati
Per filtrare i risultati della ricerca del set di dati durante l'iterazione e visualizzare solo gli elementi che corrispondono a criteri specifici (ad esempio, prodotti di una particolare categoria), utilizzare le istruzioni {{#if}} condizionali all'interno del ciclo {{#each}}. Vedi l’esempio seguente.
| code language-handlebars |
|---|
|
Ulteriori informazioni sul filtro condizionale in Best practice.
Esempio: calcolare i totali dalla ricerca del set di dati
Per calcolare e visualizzare i totali mentre si esegue l’iterazione sui risultati della ricerca di set di dati, vedi l’esempio seguente.
| code language-handlebars |
|---|
|
Usa proprietà tecniche del percorso technical-properties
Le proprietà tecniche del percorso consentono di accedere ai metadati sull'esecuzione del percorso, ad esempio l'ID percorso e gli identificatori supplementari. Questi possono essere utili se combinati con pattern di iterazione, in particolare per filtrare gli array in base a specifiche istanze di percorso.
Proprietà tecniche disponibili
Esempio: filtrare gli elementi array utilizzando l’identificatore supplementare
Quando si utilizzano identificatori supplementari in percorsi attivati da eventi con array, è possibile filtrare per visualizzare solo l'elemento rilevante per l'istanza di percorso corrente. Ulteriori informazioni sugli identificatori supplementari in questa guida.
Scenario: un percorso viene attivato con più prenotazioni, ma desideri visualizzare solo le informazioni per la prenotazione specifica (identificata dall'ID supplementare) che ha attivato questa istanza di percorso.
| code language-handlebars |
|---|
|
Esempio: Includi ID percorso per il tracciamento
Per includere l’ID percorso nel messaggio a scopo di tracciamento, vedi l’esempio seguente.
| code language-handlebars |
|---|
|
Combinare più origini di contesto combine-sources
Puoi combinare dati provenienti da origini diverse nello stesso messaggio per creare esperienze avanzate e personalizzate. In questa sezione vengono illustrati esempi pratici di utilizzo congiunto di più origini di contesto.
Origini di contesto che è possibile combinare:
Esempio: articoli del carrello con inventario in tempo reale
Per combinare i dati evento (contenuti del carrello) con i dati azione personalizzati (stato inventario), vedi il campione di seguito.
| code language-handlebars |
|---|
|
Esempio: dati evento arricchiti con la ricerca del set di dati
Per combinare SKU evento con informazioni dettagliate sul prodotto da una ricerca set di dati, vedi l'esempio seguente.
| code language-handlebars |
|---|
|
Esempio: combinare più origini con proprietà tecniche
Per combinare più origini di contesto (dati di profilo, dati di evento, azioni personalizzate e proprietà tecniche) in un singolo messaggio, vedi l’esempio seguente.
| code language-handlebars |
|---|
|
Altri tipi di contesto other-contexts
Mentre questa guida si concentra sull’iterazione rispetto agli array, per la personalizzazione sono disponibili altri tipi di contesto che in genere non richiedono l’iterazione. L’accesso a questi elementi è diretto anziché ripetuto ciclicamente:
- Attributi profilo (
profile.*): singoli campi profilo da Adobe Experience Platform - Tipi di pubblico (
inAudience()): verifiche appartenenza pubblico - Decisioni di offerta: offerte di gestione delle decisioni
- Attributi di destinazione (solo campagne orchestrate): attributi calcolati nell'area di lavoro della campagna
- Token (
context.token): token di sessione o autenticazione
Per informazioni sulla sintassi di personalizzazione completa e sugli esempi che utilizzano queste origini, consulta:
Utilizzare gli array nelle espressioni di Percorso arrays-in-journeys
Mentre le sezioni precedenti si concentrano sull’iterazione degli array nella personalizzazione dei messaggi utilizzando Handlebars, puoi anche lavorare con gli array durante la configurazione delle attività del percorso. Questa sezione spiega come utilizzare i dati array dagli eventi nelle espressioni di Percorso, in particolare quando si trasmettono dati ad azioni personalizzate o si utilizzano array con ricerche di set di dati.
first, all e serializeList. Nel contenuto del messaggio viene utilizzata la sintassi Handlebars con {{#each}} loop.Trasmettere i valori dell’array ai parametri delle azioni personalizzati arrays-to-custom-actions
Durante la configurazione di azioni personalizzate, spesso è necessario estrarre i valori dagli array di eventi e trasmetterli come parametri. Questa sezione descrive i pattern comuni.
Ulteriori informazioni sul passaggio delle raccolte in Trasmettere le raccolte nei parametri delle azioni personalizzate.
Estrarre un singolo valore da un array
Caso d'uso: ottieni un campo specifico da un array di eventi da passare come parametro di query in una richiesta GET.
Scenario di esempio: estrarre il primo SKU con un prezzo maggiore di 0 da un elenco di prodotti.
Esempio di schema evento:
| code language-json |
|---|
|
Configurazione azione personalizzata:
- Nell'azione personalizzata configurare un parametro di query (ad esempio,
sku) con tipostring - Contrassegnalo come
Variableper consentire valori dinamici
Espressione Percorso nel parametro azione:
| code language-javascript |
|---|
|
Spiegazione:
@event{YourEventName}: fa riferimento all'evento di percorso.first(currentEventField.condition): restituisce il primo elemento di matrice che corrisponde alla condizionecurrentEventField: rappresenta ogni elemento nell'array di eventi mentre lo si scorre.SKU: estrae il campo SKU dall'elemento corrispondente- Risultato:
"SKU-1"(stringa adatta al parametro azione)
Ulteriori informazioni sulla funzione first in Funzioni di gestione della raccolta.
Creare un elenco di valori da un array
Caso d'uso: crea un elenco separato da virgole di ID da passare come parametro di query (ad esempio, /products?ids=sku1,sku2,sku3).
Configurazione azione personalizzata:
- Configurare un parametro di query (ad esempio,
ids) con il tipostring - Contrassegna come
Variable
Espressione Percorso:
| code language-javascript |
|---|
|
Spiegazione:
-
.all(currentEventField.condition): restituisce tutti gli elementi matrice che corrispondono alla condizione (restituisce un elenco) -
currentEventField: rappresenta ogni elemento nell'array di eventi mentre lo si scorre -
.SKU: progetta l'elenco in modo da includere solo valori SKU -
serializeList(list, delimiter, addQuotes): unisce l'elenco in una stringa",": Usa la virgola come delimitatoretrue: Aggiungi virgolette intorno a ogni elemento stringa
-
Risultato:
"SKU-1,SKU-3"(adatto a un parametro di query)
Ulteriori informazioni su:
La gestione delle raccolte per le azioni personalizzate è descritta in Trasmettere le raccolte nei parametri delle azioni personalizzate.
Trasmettere un array di oggetti a un’azione personalizzata
Caso d'uso: invia una matrice completa di oggetti nel corpo di una richiesta (per POST o GET con corpo).
Esempio di corpo della richiesta:
| code language-json |
|---|
|
Configurazione azione personalizzata:
- Nel corpo della richiesta, definisci
productscome tipolistObject - Contrassegna come
Variable - Definisci i campi oggetto:
id,name,price,color(ciascuno diventa mappabile)
Configurazione area di lavoro Percorsi:
-
In modalità avanzata, imposta l’espressione della raccolta:
code language-javascript @event{YourEventName.commerce.productListItems.all(currentEventField.priceTotal > 0)} -
Nell’interfaccia utente per la mappatura della raccolta:
- Mappa
id→productListItems.SKU - Mappa
name→productListItems.name - Mappa
price→productListItems.priceTotal - Mappa
color→productListItems.color
- Mappa
Journey Optimizer crea l’array di oggetti che corrispondono alla struttura del payload dell’azione.
| note note |
|---|
| NOTE |
Quando si lavora con array di eventi, utilizzare currentEventField per fare riferimento a ogni elemento. Per le raccolte di origini dati (Adobe Experience Platform), utilizzare currentDataPackField. Per le raccolte di risposte di azioni personalizzate, utilizzare currentActionField. |
Ulteriori informazioni in Trasmettere le raccolte nei parametri delle azioni personalizzate.
Utilizzare gli array con le ricerche dei set di dati arrays-with-dataset-lookup
Quando si utilizza l'attività di ricerca set di dati, è possibile passare una matrice di valori come chiavi di ricerca per recuperare dati arricchiti.
Esempio: cerca i dettagli del prodotto per tutti gli SKU in un array di eventi.
Configurazione ricerca set di dati:
Nel campo delle chiavi di ricerca, utilizzare list() per convertire un percorso di matrice in un elenco:
| code language-javascript |
|---|
|
Viene creato un elenco di tutti i valori SKU da cercare nel set di dati. I risultati sono disponibili come array in context.journey.datasetLookup.<activityID>.entities e possono essere ripetuti nel messaggio (vedi Iterare nei risultati della ricerca del set di dati).
Limitazioni e pattern array-limitations
Tenere presenti queste limitazioni quando si lavora con array in percorsi:
Nessun loop dinamico su array nel flusso di percorso
I percorsi non possono creare loop dinamici in cui un nodo di azione viene eseguito più volte per ogni elemento di un array. Questo è intenzionale per evitare problemi di prestazioni inutili.
Operazione non consentita:
- Eseguire un'azione personalizzata una volta per ogni elemento dell'array in modo dinamico
- Creazione di più rami di percorso in base alla lunghezza dell’array
Modelli consigliati:
-
Invia tutti gli elementi contemporaneamente: passa l'intero array o un elenco serializzato a una singola azione personalizzata che elabora tutti gli elementi. Vedere Creare un elenco di valori da un array.
-
Utilizza aggregazione esterna: chiedi all'API esterna di accettare più ID e restituire risultati combinati in una singola chiamata.
-
Pre-calcolo in AEP: utilizzare attributi calcolati per precalcolare i valori dalle matrici a livello di profilo.
-
Estrazione valore singolo: se è necessario un solo valore, estrarlo utilizzando
firstohead. Vedi Estrarre un singolo valore da un array.
Ulteriori informazioni in Guardrail e limitazioni.
Considerazioni sulle dimensioni della matrice
Gli array di grandi dimensioni possono influire sulle prestazioni del percorso:
- Array di eventi: mantieni i payload degli eventi al di sotto di 50 KB in totale
- Risposte alle azioni personalizzate: i payload di risposta devono essere inferiori a 100 KB
- Risultati ricerca set di dati: limita il numero di chiavi di ricerca ed entità restituite
Esempio completo: array di eventi per azione personalizzata complete-example
Questo è un flusso di lavoro completo che mostra come utilizzare un array di eventi con un’azione personalizzata.
Scenario: quando un utente abbandona il carrello, invia i dati del carrello a un'API di consigli esterna per ottenere suggerimenti personalizzati, quindi visualizzali in un messaggio e-mail.
Passaggio 1: configurare l'azione personalizzata
Crea un’azione personalizzata "GetCartRecommendations":
- Metodo: POST
- URL:
https://api.example.com/recommendations - Corpo richiesta:
| code language-json |
|---|
|
- Contrassegna
cartItemscome tipolistObjecteVariable - Definisci i campi:
sku(stringa),price(numero),quantity(numero intero)
Ulteriori informazioni in Configurare un'azione personalizzata.
Passaggio 2: configurare il payload di risposta
Nell’azione personalizzata, configura la risposta:
| code language-json |
|---|
|
Ulteriori informazioni in Utilizzare le risposte alle chiamate API.
Passaggio 3: esegui l'azione nel percorso
-
Aggiungi l’azione personalizzata dopo l’evento di abbandono del carrello
-
In modalità avanzata per la raccolta
cartItems:code language-javascript @event{cartAbandonment.commerce.productListItems.all(currentEventField.quantity > 0)} -
Mappa i campi della raccolta:
sku→productListItems.SKUprice→productListItems.priceTotalquantity→productListItems.quantity
Passaggio 4: utilizza la risposta nell'e-mail
Nel contenuto dell’e-mail, scorri i consigli:
| code language-handlebars |
|---|
|
Passaggio 5: verifica la configurazione
Prima di eseguire un percorso live, verifica l’azione personalizzata utilizzando la funzione "Send test request" (Invia richiesta di test) nella configurazione dell’azione per verificare la richiesta e i valori generati.
- Usa modalità test percorso
- Attiva con dati evento di esempio che includono un array
productListItems - Verificare che l'azione personalizzata riceva la struttura di array corretta
- Controlla i registri del test delle azioni
- Visualizzare l’anteprima del messaggio e-mail per verificare che entrambi gli array siano visualizzati correttamente
Ulteriori informazioni in Risoluzione dei problemi relativi alle azioni personalizzate.
Best practice best-practices
Segui queste best practice durante l’iterazione di dati contestuali per creare una personalizzazione manutenibile ed performante.
Usa nomi di variabili descrittive
Scegli nomi di variabili che indichino chiaramente ciò su cui stai eseguendo l’iterazione. Questo rende il codice più leggibile e di facile gestione. Ulteriori informazioni sulla sintassi di personalizzazione:
| code language-handlebars |
|---|
|
Frammenti di espressione in cicli
Quando utilizzi frammenti di espressione all'interno di {{#each}} loop, tieni presente che non puoi trasmettere variabili con ambito di loop come parametri di frammento. Tuttavia, i frammenti possono accedere alle variabili globali definite nel contenuto del messaggio all’esterno del frammento.
Schema supportato - Usa variabili globali:
| code language-handlebars |
|---|
|
Il frammento può fare riferimento a globalDiscount perché è definito globalmente nel messaggio.
Non supportato - Passaggio delle variabili di loop:
| code language-handlebars |
|---|
|
Soluzione: includere la logica di personalizzazione direttamente nel ciclo anziché utilizzare un frammento oppure chiamare il frammento all'esterno del ciclo.
Ulteriori informazioni sull'utilizzo di frammenti di espressione all'interno di cicli, inclusi esempi dettagliati e soluzioni alternative.
Gestire gli array vuoti
Utilizzare la clausola {{else}} per fornire contenuto di fallback quando un array è vuoto. Ulteriori informazioni sulle funzioni helper:
| code language-handlebars |
|---|
|
Combina con helper condizionali
Utilizza {{#if}} nei cicli per il contenuto condizionale. Ulteriori informazioni sulle regole condizionali e esempi nelle risposte alle azioni personalizzate e nelle sezioni di ricerca set di dati.
| code language-handlebars |
|---|
|
Limita iterazione per prestazioni
Per array di grandi dimensioni, è consigliabile limitare il numero di iterazioni:
| code language-handlebars |
|---|
|
Accedere ai metadati dell’array
Handlebars fornisce variabili speciali all'interno di loop utili per i pattern di iterazione avanzati:
@index: indice di iterazione corrente (basato su 0)@first: True per la prima iterazione@last: True per l'ultima iterazione
| code language-handlebars |
|---|
|
@index, @first, @last) sono disponibili solo all'interno di {{#each}} cicli nella personalizzazione dei messaggi. Per utilizzare gli array nelle espressioni di Percorso, ad esempio per ottenere il primo elemento da un array prima di passare a un'azione personalizzata, utilizzare funzioni di array come head, first o all. Per ulteriori dettagli, vedi Utilizzare gli array nelle espressioni di Percorso.Risoluzione dei problemi troubleshooting
Problemi di iterazione? In questa sezione vengono descritti problemi e soluzioni comuni.
Array non visualizzato
Problema: l'iterazione dell'array non mostra alcun contenuto.
Possibili cause e soluzioni:
-
Percorso non corretto: verificare il percorso esatto dell'array in base all'origine del contesto:
- Per eventi:
context.journey.events.<event_ID>.<fieldPath> - Per azioni personalizzate:
context.journey.actions.<actionName>.<fieldPath> - Per ricerche set di dati:
context.journey.datasetLookup.<activityID>.entities
- Per eventi:
-
La matrice è vuota: aggiungere una clausola
{{else}}per verificare se la matrice non contiene dati. Consulta Best practice per alcuni esempi. -
Dati non ancora disponibili: assicurati che l'azione personalizzata, l'evento o l'attività di ricerca del set di dati sia stata eseguita prima dell'attività messaggio nel flusso di percorso.
Errori di sintassi
Problema: la convalida dell'espressione non riesce o il messaggio non viene visualizzato.
Errori comuni:
- Tag di chiusura mancanti: ogni
{{#each}}deve avere un{{/each}}. Verificare la struttura corretta della sintassi di iterazione Handlebars. - Nome variabile non corretto: assicurati che il nome della variabile sia utilizzato in modo coerente in tutto il blocco. Consulta Best practice per le convenzioni di denominazione.
- Separatori di percorso non corretti: utilizzare punti (
.) non barre o altri caratteri
I frammenti di espressione non funzionano in loop
Problema: un frammento di espressione non visualizza il contenuto previsto quando viene utilizzato all'interno di un ciclo {{#each}} oppure mostra un output vuoto o imprevisto.
Possibili cause e soluzioni:
-
Tentativo di passare variabili di loop come parametri: i frammenti di espressione non possono ricevere variabili con ambito di loop (come l'elemento di iterazione corrente) come parametri. Si tratta di una limitazione nota.
Soluzione: utilizzare una delle seguenti soluzioni alternative:
- Definisci le variabili globali nel messaggio a cui il frammento può accedere
- Includere la logica di personalizzazione direttamente nel ciclo anziché utilizzare un frammento
- Chiama il frammento all’esterno del ciclo se non ha bisogno di dati specifici del ciclo
-
Il frammento prevede un parametro non disponibile: se il frammento è stato progettato per ricevere parametri di input specifici, non funzionerà correttamente se tali parametri non possono essere trasmessi da un ciclo.
Soluzione: ristrutturare l'approccio per l'utilizzo di variabili globali accessibili al frammento. Per esempi, consulta Best practice - Frammenti di espressione nei cicli.
-
Ambito variabile non corretto: è possibile che il frammento stia tentando di fare riferimento a una variabile presente solo nell'ambito del ciclo.
Soluzione: definisci le variabili di cui il frammento ha bisogno a livello di messaggio (al di fuori del ciclo) in modo che siano accessibili a livello globale.
Ulteriori informazioni sull'utilizzo di frammenti di espressione all'interno di cicli, incluse spiegazioni dettagliate, esempi e modelli consigliati.
Verifica delle iterazioni
Utilizza modalità test percorso per verificare le iterazioni. Ciò è particolarmente importante quando si utilizzano azioni personalizzate o ricerche set di dati:
- Avvia il percorso in modalità di test
- Attiva l'evento o l'azione personalizzata con i dati di esempio
- Controlla l'anteprima del messaggio per verificare che l'iterazione venga visualizzata correttamente
- Esaminare i registri della modalità di test per individuare eventuali errori (vedere Registri della modalità di test delle azioni personalizzati)
Argomenti correlati related-topics
Nozioni di base di Personalization: Introduzione alla personalizzazione | Aggiungi personalizzazione | Sintassi Personalization | Funzioni di supporto | Creare regole condizionali
Configurazione Percorso: Informazioni sugli eventi | Configurare azioni personalizzate | Trasmettere le raccolte nei parametri delle azioni personalizzate | Utilizzare le risposte alle chiamate API nelle azioni personalizzate | Risoluzione dei problemi relativi alle azioni personalizzate | Utilizzare i dati di Adobe Experience Platform nei percorsi | Utilizzare identificatori supplementari nei percorsi | Guardrail e limitazioni | Verifica il percorso
Funzioni espressione di Percorso: Editor espressioni avanzate | Funzioni di gestione della raccolta (prima, tutte, ultima) | Funzioni elenco (serializeList, filter, sort) | Funzioni array (head, tail)
Casi di utilizzo di Personalization: E-mail di abbandono carrello | Notifica stato ordine
Progettazione messaggi: Introduzione alla progettazione delle e-mail | Creare notifiche push | Creare messaggi SMS | Anteprima e verifica del contenuto