Lägg till dynamiskt innehåll i e-postmeddelanden
Viktigt
Den här artikeln gäller endast för utgående marknadsföring, som kommer att tas bort från produkten den 30 juni 2025. För att undvika avbrott bör du övergå till resor i realtid före detta datum. Mer information: Översikt över övergångar
Varning
Om du använder säkerhet på fältnivå för vissa av dina e-postfält måste du lägga till rätt behörigheter eller Customer Insights - Journeys så kan du inte bearbeta din e-post.
Så här konfigurerar du säkerhet på fältnivå:
- Längst upp till höger välj du ikonen Inställningar och sedan väljAvancerade inställningar.
- I avsnittet System välj du Säkerhet.
- VäljColumn säkerhetsprofiler.
- Om du vill skapa en ny fältsäkerhetsprofil väljNy profil och anger ett namn i avsnittet Allmänt.
- I avsnittet Användare lägger du till systemanvändaren: "# D365 Marketing Core Sending".
- I avsnittet Fältbehörigheter lägger du till läsbehörighet i alla obligatoriska fält.
Dynamiskt innehåll matchas precis innan ett meddelande skickas till en viss person. Vanligen använder du dynamiskt innehåll för att koppla information från mottagarens kontaktpost (till exempel förnamn och efternamn), placera speciallänkar och placera information och länkar från innehållsinställningarna. Om du är van att arbeta i kod går det även att skapa egen kod som innehåller villkorssatser, for-each-loopar, med mera. Det går att använda dynamiskt innehåll överallt i meddelandetexten och även använda några olika typer av dynamiska värden i meddelandehuvudets fält (ämne, avsändaradress och avsändarnamn).
Använd innehållsinställningarna till att konfigurera lagring av standard- och obligatoriska värden för e-postmeddelanden
Innehållsinställningar är uppsättningar med standardvärden och obligatoriska värden som kan användas i marknadsföringsmeddelanden. Var och en innehåller en länk till en prenumerationscentral, en länk som vidarebefordrar till en vän, länkar till sociala medier, din postadress och annan information som kan placeras som dynamiska värden med hjälp av anpassning.
Dynamics 365 Customer Insights - Journeys levereras med en standarduppsättning innehållsinställningar, förkonfigurerad att använda standardprenumerationscentralen (ingår också i installationen). Det går att anpassa den här uppsättningen efter behov och även skapa ytterligare uppsättningar. Du kan konfigurera varje kundfärd till att använda en viss innehållsinställningsuppsättning, vilket innebär att alla meddelanden som skickas av den färden använder samma uppsättning. Varje färd kan emellertid använda en egen uppsättning, vilket innebär att det går att använda en identisk design för marknadsföringsmeddelande i två eller flera av kundens färder, där var och en anger en annan uppsättning innehållsinställningar. Om du har fler än en uppsättning innehållsinställningar kommer bara en av dem att utgöra standardvärdet och tillämpas automatiskt på varje ny kundfärd som du skapar.
Innehållsinställningarnas värden utvärderas först när de skickas, vilket innebär att det går att redigera en uppsättning innehållsinställningar när som helst, och alla väntande och framtida e-postmeddelanden använder automatiskt de senaste värdena.
Alla innehållsinställningsposter som du använder måste vara tillgängliga för externa marknadsföringstjänster som hanterar sammansättning och leverans av e-posten. Därför måste du publicera dina innehållsinställningsposter genom att välja Publicera varje gång du skapar en ny.
Kommentar
Om du har andra typer av värden som du ofta använder i e-postmeddelanden, och/eller som du vill hantera på kundfärdsnivå, kan du lägga till dessa som anpassade fält i entiteten för innehållsinställningar precis som du kan för andra typer av entiteter i Dynamics 365. I den aktuella versionen måste dock alla anpassade fält för entiteten för innehållsinställningar vara av typen text (sträng). Mer information: Anpassa Customer Insights - Journeys
Så här visar, redigerar eller skapar du en uppsättning innehållsinställningar:
Gå till Utgående marknadsföring>Marknadsföringsmallar>Innehållsinställningar.
En standardlistsida öppnas där det går att visa, sortera, söka i och filtrera listan för att hitta en viss post och använda knapparna i kommandofältet för att lägga till eller ta bort en post. Markera en post som du vill öppna för redigering eller välj Ny i kommandofältet om du vill skapa en ny.
Formuläret Innehållsinställningar öppnas. Om du redigerar en post som redan är aktiv måste du välja Redigera i kommandofältet innan du kan redigera den. Om du skapar en ny kan du börja fylla i fälten.
Gör följande inställningar efter behov:
- Namn: Ange ett namn för den anpassade uppsättningen kundinställningar. Det här namnet visas när du tilldelar innehållsinställningar till en kundens färd eller för förhandsgranskning av e-postmeddelanden.
- Ägare: Visar den Dynamics 365 Customer Insights - Journeys-användare som skapade posten.
- Huvudadress: Ange huvuddelen av organisationens postadress. Alla marknadsföringsmeddelanden måste innehålla en giltig huvudadress hämtad från en post med innehållsinställningar. Välj knappen om du vill använda anpassning för att ange ett uttryck som refererar till ett fält från en befintlig post (t.ex. ett adressfält från en viss kontopost).
- Adressrad 2: Ange en kompletterande postadress (vid behov). Välj knappen om du vill använda anpassning för att ange ett uttryck som refererar till ett fält från en befintlig post (t.ex. ett adressfält från en viss kontopost).
- Standardvärde: Ställ in på Ja så att den aktuella innehållsinställningsposten ställer in standardvärdena för alla nya kundfärder Det måste alltid finnas exakt ett standardvärde. Om du ändrar standardvärdet ändras det befintliga standardvärdet automatiskt till Nej.
- Standard för att ägande affärsenhet: Den här inställningen är endast tillgänglig när affärsenhetens omfattning har aktiverats. Ställ in detta på Ja så att aktuella innehållsinställningar registrerar standardvärden för alla nya kundfärder inom affärsenheten. Det måste alltid finnas exakt ett standardvärde för affärsenhetens omfattning. Om du ändrar standardvärdet ändras det befintliga standardvärdet automatiskt till Nej.
- LinkedIn-URL, Twitter-URL, Facebook-URL, Instagram-URL, YouTube-URL och Google Plus-URL: För var och en av dessa sociala medier anger du URL:en för din organisations landningssida.
-
Prenumerationscentral: Ange en befintlig marknadsföringssida konfigurerad som en prenumerationscentral. Alla marknadsföringsmeddelanden måste innehålla en giltig länk till en prenumerationscentral hämtad från en post med innehållsinställningar. Välj knappen om du vill använda anpassning för att ange ett uttryck som refererar till fältet Helsides-URL för den specifika sida som du vill använda. Det resulterande uttrycket ser ut ungefär så här (där GUID varierar beroende på vilken post du väljer med hjälp av anpassning):
{{msdyncrm_marketingpage(3343053c-8daf-e911-a85e-000d3a3155d5).msdyncrm_full_page_url}}
-
Vidarebefordra till en vän: Ange en befintlig marknadsföringssida sparad som en Vidarebefordra till en vän-sida. Välj knappen för att välja från en lista över tillgängliga sidor. Välj knappen om du vill använda anpassning för att ange ett uttryck som refererar till fältet Helsides-URL för den specifika sida som du vill använda. Det resulterande uttrycket ser ut ungefär så här (där GUID varierar beroende på vilken post du väljer med hjälp av anpassning):
{{msdyncrm_marketingpage(36458a9e-72af-e911-a859-000d3a3159df).msdyncrm_full_page_url}}
Välj Spara längst ned till höger i fönstret för att spara inställningarna.
Om du redigerar en innehållsinställningspost som redan är aktiv publiceras posten om automatiskt när du sparar den. Om du skapar en ny post väljer du Publicera i kommandofältet för att publicera den i marknadsföringstjänsterna så att du kan börja använda den.
Använd anpassning för att placera dynamiska fältvärden
Med knappen anpassning får du hjälp med att skapa dynamiska uttryck som placerar fältvärden från mottagarens kontaktposter, meddelandeinnehållsinställningar och andra databasvärden. Den här knappen finns på formateringsfältet när du markerar ett textelement i den grafiska designern. Knappen finns även för en del inställningsfält, till exempel fälten för ämne, avsändaradress och avsändarnamn.
Kommentar
Dialogrutan för anpassning visar endast entiteter och relationer som synkroniseras med tjänsten för marknadsinsikter. Om du behöver visa information eller använda relationer för en eller flera entiteter som inte finns med, ber du administratören att lägga till relevanta entiteter i tjänsten för marknadsinsikter. Om du är administratör, se Välj entiteter som ska synkroniseras med tjänsten för marknadsinsikter för mer information. Ägarentiteten stöds inte längre för e-postanpassning. Ersätt den med antingen entiteten systemuser eller team , beroende på vilken entitet som representerar ägaren av posten.
Placera ett dynamiskt uttryck med anpassning
För att använda anpassning:
Placera markören i det fält eller textelement där du vill infoga den dynamiska texten och välj sedan knappen Anpassning . Dialogrutan för anpassning öppnas.
Gör något av följande:
- Välj Dynamiskt innehåll om du vill placera ett värde som kan ändras baserat på kontexten där du använder meddelandet och välj sedan något av följande från listrutan här:
- Kontakt: Placerar ett fältvärde, till exempel ett förnamn, från mottagarens kontaktpost. Dessa värden varierar beroende på mottagare.
- ContentSettings: placerar ett fältvärde från innehållsinställningarna. Värden såsom en URL för prenumerationscentral, vidarebefordrings-URL och avsändarens postadress finns här. Dessa värden kan variera beroende på kundens färd där meddelandet används.
- FormDoiSubmission: Placerar ett dynamiskt fält för formulär dubbel anmälan. Det här fältet kräver inget relationsvärde, som beskrivs nedan.
- Meddelande: placerar värden som är relaterade till meddelandet; för närvarande omfattar det öppna-som-webbsida URL och olika dynamiska värden används i dubbel anmälan e-post.
- Välj statiskt innehåll om du vill placera ett fast värde från en viss post (till exempel namnet på en kommande händelse). Det här värdet är samma oavsett var du använder meddelandet eller vem som tar emot det. Gör sedan följande inställningar för att identifiera entiteten och posten som innehåller det värde du behöver:
- Välj ett alternativ (översta kombinationsrutan): Välj entiteten (till exempel händelse eller konto). Om du vill söka efter en entitet placerar du markören i den här rutan och börjar skriva namnet tills den entitet som du vill använda visas.
- Välj en post (nedre listrutan): Välj den specifika posten efter namn. I den här listan visas alla poster från den valda entiteten. Som med entiteten kan du också söka här.
- Välj Dynamiskt innehåll om du vill placera ett värde som kan ändras baserat på kontexten där du använder meddelandet och välj sedan något av följande från listrutan här:
Nu måste du identifiera det specifika fält som du vill placera. Gör något av följande:
- Välj relaterad entitet om du vill söka efter ett fält från en entitet som är relaterad till den som du plockade på föregående sida. Gör sedan följande inställningar för att identifiera relationen och fältet som du vill visa:
- Välj relation: relationen definierar vilken andra entitet som du vill hoppa till och den väg du tar för att komma dit. Om du vill söka efter en relation placerar du markören i den här rutan och börjar skriva namnet tills den relation som du vill ha visas och sedan väljer du den. Mer information om hur du kan förstå hur relationer representeras här finns i nästa avsnitt.
- Välj fält: Välj det fältnamn som du vill visa. Som med relationen kan du också söka här. Den här nedrullningsbara listan är bara tillgänglig om du har valt en n:1-relation.
- Välj relaterad entitet om du vill söka efter ett fält från en entitet som är relaterad till den som du plockade på föregående sida. Gör sedan följande inställningar för att identifiera relationen och fältet som du vill visa:
Längst ned i dialogrutan ser du nu det slutliga uttrycket. Välj Infoga för att placera det uttrycket.
Viktigt!
Listor som skapas med för-varje-loopar återges inte i en viss ordning och är inte sorterbara efter något fält.
Hur anpassning presenterar databasrelationer
När du väljer en relation i anpassning visas alternativen med någon av följande namngivningskonventioner:
-
FieldName (PrimaryEntity) -> SecondaryEntity
När den primära entiteten är inom parentes och visar ett fältnamn, är det en många-till-en-relation (n:1) som leder till en enda post från den sekundära entiteten. Du bör därför vanligtvis använda den andra nedrullningsbara listan för att välja ett fält från den sekundära entiteten som ska visas med ditt uttryck. -
PrimaryEntity -> FieldName (SecondaryEntity)
När den sekundära entiteten är inom parentes och visar ett fältnamn, är det en en-till-många-relation (1:N) som kan leda till flera poster från den sekundära entiteten. Du kan därför inte välja ett fält (den andra nedrullningsbara listan är inaktiverad) och måste i stället använda den här relationen som en för/varje loo för att visa värden från varje tillgänglig relaterad post. -
PrimaryEntity -> SecondaryEntity
När ingendera enheten är inom parentes är det en många-till-många-relation (N:N) som kan ansluta flera poster i båda riktningarna. Du kan därför inte välja ett fält (den andra listrutan är inaktiverad) och du kan inte använda den här relationen för anpassning. Detta beror på att relationen upprätthålls av en mellanliggande entitet och du kan bara gå över till den mellanliggande entiteten från den primära entiteten.
Där:
- PrimaryEntity är en entitet på startsidan av relationen. Den visas alltid på vänster sida av pilen. Detta är den entitet som du valde på föregående sida i dialogrutan anpassning. Till exempel en Kontakt (primär entitet) kan relateras till ett Konto (sekundär entitet) via kontaktens fält för företagsnamn (fältnamn). Detta skulle visas som: företagsnamn (kontakt) -> konto.
- FieldName visas alltid bredvid ett entitetsnamn (som finns inom parentes). Detta är namnet på det fält som relationen är etablerad genom. Det namngivna fältet tillhör entiteten inom parentes och visar ett värde från entiteten på andra sidan av pilen (men innehåller faktiskt ID för den relaterade posten som värdet hämtas från). I vissa fall kommer du att märka en relation mellan samma två entiteter, som var och en flödar genom ett annat fält.
- SecondaryEntity är målet för relationen. Den visas alltid på höger sida av pilen. De värden som du visar med ditt slutgiltiga uttryck kommer från ett fält som tillhör den sekundära entiteten.
Kommentar
För N:N-relationer visas inget fältvärde. Det innebär att om du har fler än en N:N-relation mellan samma två entiteter ser du flera identiska relationer i den nedrullningsbara listan. Denna situation är mycket sällsynt, men om du ser det, måste du använda försök och misstag för att identifiera rätt relation att använda. För att bekräfta kan du kontrollera det resulterande uttrycket för att se om det ser ut som om du valde rätt relation (relationerna visas på olika sätt här och kan ge en ledtråd), eller skapa ett testmeddelande som innehåller båda versionerna av N:N-relationen och använda en testkundfärd för att leverera den till dig själv.
Här är några exempel:
- Företagsnamn (kontakt) -> Konto: Den här relationen används av entiteten Kontakt för att visa information från entiteten Konto i en kontaktposts fält för företagsnamn. Med andra ord länkar den till företaget (konto) som kontakten arbetar för.
- Hantera partner (kontakt) -> Konto: Denna relation används av enheten Kontakt för att visa information från enheten Konto i en kontaktposts fält för Hantera partner. Med andra ord länkar den företaget (konto) som är den som ansvarar för kontot.
- Konto -> primär kontakt (konto): Den här relationen används av entiteten konto för att visa information från entiteten kontakt i en kontoposts primära kontakt-fält. Med andra ord hittar den alla konton där den aktuella kontakten är tilldelad som primär kontakt.
- Kontakt -> kontakt (eventregistrering): Den här relationen används av entiteten Eventregistrering för att visa information från entiteten kontakt i en eventregistreringsposts kontakt-fält. Med andra ord hittar den alla eventregistreringar som gjorts av (eller för) den aktuella kontakten.
Uttryck som skapas av anpassning
Anpassning skapar ett uttryck som använder ett format som följande:
{{EntityName.FieldName}}
{{EntityName(RecordID).FieldName}}
{{EntityName.RelationshipName.FieldName}}
{{EntityName(RecordID).RelationshipName.FieldName}}
Observera att den markering som används för relationsnamn i de resulterande uttrycken inte stämmer överens med hur de representeras i dialogrutan för anpassning. Här är några exempel på resulterande uttryck:
{{contact.firstname}}
Placerar mottagarens förnamn.{{msdyncrm_marketingpage(3343053c-8daf-e911-a85e-000d3a3155d5).msdyncrm_full_page_url}}
Placerar värdet imsdyncrm_full_page_url
fältet från den marknadsföringssidespost som anges av GUID inom parentes. Du kan vanligtvis använda ett uttryck för det här formuläret i en post för innehållsinställningar för att ange en prenumerationscentral eller vidarebefordra till en vän-sida.{{msdyncrm_contentsettings.msdyncrm_subscriptioncenter}}
Placerar webbadressen till den prenumerationscentralsida som identifieras i innehållsinställningarna som konfigurerats för den kundfärd som skickar meddelandet.{{msdyncrm_contentsettings.msdyncrm_forwardtoafriend}}
Placerar webbadressen till den vidarebefordringssida som identifieras i innehållsinställningarna som konfigurerats för den kundfärd som skickar meddelandet.{{Message.ViewAsWebpageURL}}
Placerar webbadressen för att öppna det aktuella meddelandet i en webbläsare.{{msevtmgt_event(8a519395-856c-4e22-b560-650ce6d6a79d).msevtmgt_webinarurl}}
Placerar webbseminarieadressen för eventet som identifieras av ett angivet event-ID (inom parentes).{{msdyn_survey(39128da2-c968-4627-9595-f030b6571be4).msdyn_name}}
Placerar namnet på undersökningen som identifieras av ett angivet undersöknings-ID (inom parentes).{{contact.contact_account_parentcustomerid.name}}
Det här uttrycket hittar namnet på kontot för företaget där en kontakt arbetar.{{contact.contact_account_msa_managingpartnerid.name}}
Det här uttrycket hittar namnet på den som ansvarar för kontot för företaget där en kontakt arbetar.
När du har ett uttryck som fungerar kan du kopiera och klistra in det var som helst. Du behöver inte använda anpassning varje gång.
Viktigt!
Du kan som mest ha två hopp (punkter) i fältuttrycken. Försök inte skapa mer komplexa uttryck genom att lägga till fler hopp till uttrycken som skapas med anpassning.
Dricks
Om du vill använda de datatyper som stöds av anpassning är det oftast bäst att också placera koden med hjälp av anpassning snarare än att försöka skriva från början. Detta säkerställer att entitets-, relations- och fältnamnen överensstämmer med dem som används i databasen och du undviker felstavningar.
Anteckning
Dynamics 365 Customer Insights - Journeys funktioner för e-posthantering stöder inte beräknade fält.
Dynamiska värden i fälten för mottagare, avsändarens namn, avsändarens adress och svara till
På fliken Sammanfattning i formuläret Marknadsföringsmeddelande kan du i avsnittet Avsändare och mottagare göra olika inställningar som inte berör meddelandets innehåll. Det kan till exempel vara värden och uttryck som fastställer värden för mottagare, avsändarens namn, avsändarens adress och svara till som används i meddelandet.
Ett typiskt sätt att dra nytta av den här funktionen är att ange från namn och från adress till ägaren av kontaktposten. Genom att tilldela ägaren till varje kontaktpost till säljaren som hanterar kontakten får mottagarna marknadsföringsmeddelanden som visar en från-adress till någon som de kanske känner, vilket i hög grad kan öka antalet öppna priser. Så här gör du:
- Om din Customer Insights - Journeys-instans inte redan är konfigurerad för att synkronisera entiteten Användare (systemanvändare) med Marketing Insights-tjänsten, be administratören att konfigurera detta. Om du är administratör finns det anvisningar i Välj entiteter som ska synkroniseras med tjänsten för marknadsföringsinsikter.
- Öppna e-postmeddelandet och gå till fliken Sammanfattning.
- Ta bort innehållet i fältet Från namn och välj sedan knappen Anpassning bredvid det här fältet.
- På första sidan på dialogrutan för anpassning, välj kontextuell och ange den till kontakt. Välj sedan Nästa.
- På andra sidan på dialogrutan för anpassning, välj Relaterad entitet och sedan:
- Ställ in den översta listrutan (relation) på Ägande användare (kontakt)-> Användare.
- Ange den nedre nedrullningsbara listan (fält) till fullständigt namn.
- Välj OK för att placera uttrycket, som ska vara:
{{contact.contact_systemuser_owninguser.fullname}}
. - Ta bort innehållet i fältet Från adress och välj sedan knappen Anpassning bredvid det här fältet.
- På första sidan på dialogrutan för anpassning, välj kontextuell och ange den till kontakt. Välj sedan Nästa.
- På andra sidan på dialogrutan för anpassning, välj Relaterad entitet och sedan:
- Ställ in den översta listrutan (relation) på Ägande användare (kontakt)-> Användare.
- Ange den nedre nedrullningsbara listan (fält) till primär e-post.
- Välj OK för att placera uttrycket, som ska vara:
{{contact.contact_systemuser_owninguser.internalemailaddress}}
.
Du kan använda liknande tekniker för att placera den ägande användarens namn eller e-postadress var som helst i meddelandets innehåll. Du kan göra detta genom att använda anpassning, eller kopiera/klistra in det hanterbara uttrycket, eller ens skriva det hanterbara uttrycket manuellt.
Använd dynamiska värden för att välja en bildkälla eller länk
Du kan använda ett dynamiskt uttryck för att definiera käll-URL:en för bildelement. Det gör du genom att välj bildelementet, gå till panelen Egenskaper och sedan välj knappen Anpassning bredvid fältet Källa för att placera dynamisk text som en del av URL:en. Du brukar blanda detta med statisk text för att sammanställa en fullständig URL. Du kan till exempel ta med mottagarens kontakt-ID eller företagets namn om du vill välja en bild som är relevant för varje respektive mottagare.
Du kan också använda anpassning för att konstruera ett dynamiskt uttryck för att ange ett Länkmål för bilden.
Anteckning
Dynamics 365 Customer Insights - Journeys filbiblioteket genererar en unik GUID-baserad filsökväg för varje bild du laddar upp, vilket innebär att bilderna i filbiblioteket har oförutsägbara URL:er som inte innehåller originalfilens namn. Därför, för att använda den teknik som beskrivs här, måste du vara värd för dina bilder på din egen webbplats eller någon tredje parts värdtjänst där webbadresserna är förutsägbara och kan innehålla ett värde som du enkelt kan extrahera från ett Dynamics 365-fält.
Sök efter post-ID:n
Icke-kontextuella fältuttryck (som använder formuläret {{EntityName(RecordID).FieldName}}
) måste ha ett post-ID för att kunna identifiera den specifika post som värdet måste komma från. Vanligtvis hjälper anpassning dig att hitta dessa ID, men ibland kan du behöva hitta ett ID manuellt medan du utformar dynamiska funktioner för ett meddelande. Så här hittar du ID:t för en post:
- Öppna posten som du vill referera till.
- Titta på webbadressen som visas i webbläsarens adressfält. Där visas en webbadress som kan se ut så här:
https://<MyOrg>.crm.dynamics.com/main.aspx?appid=c8cba597-4754-e811-a859-000d3a1be1a3&pagetype=entityrecord&etn=msevtmgt_event&id=5acc43d5-356e-e811-a960-000d3a1cae35
- Leta reda på den del av webbadressen som börjar med
&id=
, som följs av ID-numret för den aktuella posten. Kopiera detta nummer (bara värdet) och använd det i ditt uttryck.
Avancerat dynamiskt innehåll
Det går att lägga till avancerad logisk bearbetning i e-postmeddelandet, som gör innehållet ännu mer responsivt för mottagare, demografi och sammanhang. För den här typen av anpassning måste du ha grundläggande kunskaper om skript och programmering.
Som du sett i tidigare exempel omges dynamiskt innehåll av dubbla klammerparenteser ( {{
och }}
). Detta omfattar både vanliga fältvärden som du lägger till med hjälp av anpassning och mer avancerade programmeringskonstruktioner som beskrivs i det här avsnittet.
Dricks
Om du vill visa dubbla klammerparenteser i ett meddelande, i stället för att använda dem för att ange början eller slutet av ett kodblock, lägger du till ett omvänt snedstreck före klammerparentesen, till exempel \{{
eller \}}
. Snedstrecken visas inte i det färdiga, återgivna meddelandet, bara de dubbla klammerparenteserna.
Villkorssatser och jämförelser
Villkorssatser (if-then-else) visar innehåll beroende på om ett eller flera villkorsuttryck tolkas till sant eller falskt. Du kan lägga till koden som krävs för att skapa dessa uttryck genom att placera den i ett textelement eller genom att placera anpassade kodelement mellan de andra designelementen. Mer information: Hur du lägger in avancerat dynamiskt innehåll i designern
Villkorssatser har följande format:
{{#if (<operator> <value1> <value2>)}}
Content displayed when the expression is true
{{else if (<operator> <value1> <value2>)}}
Content displayed when the first expression is false and the second one is true
.
.
.
{{else}}
Content displayed when all expressions are false
{{/if}}
Där:
- Villkorsblocket måste alltid inledas med
{{#if … }}
. - Villkorsuttrycken måste finnas inom parentes.
- Villkorsuttryck inleds med en <operator>, som måste vara ett av värdena i följande tabell. Den bestämmer hur det första värdet ska jämföras med det andra värdet.
- <value1> och <value2> är värden som ska jämföras med villkorsuttrycket, och vart och ett av dem kan vara ett dynamiskt eller ett konstant värde. Om antingen <värde1> eller <värde2> är ett konstant strängvärde (inte ett tal eller uttryck) måste det omges av enkla citattecken ('). För realtal ska du använda punkt (.) som decimalavgränsare.
- Om <värde1> är ett booleskt fält (även kallat två alternativ-fält i Dynamics 365) ska du inte inkludera en <operator>, <värde2> eller parenteserna. Booleska fält har alltid värdet sant eller falskt, så du bör bara använda dem direkt för att fastställa villkoret, till exempel:
{{#if contact.is_vip}}
. -
{{else}}
-och{{else if … }}
-satser är valfria. - Villkorsblocket måste alltid avslutas med
{{/if}}
.
I följande tabell visas alla operatorer som du kan använda i villkorsuttrycken. Det finns för närvarande inga andra operatorer. Du kan heller inte använda komplexa booleska uttryck (till exempel med operatorerna AND eller OR) i villkorsuttrycken.
Dynamics 365 Customer Insights - Journeys-syntax (skiftlägeskänslig) | Operator |
---|---|
eq | Lika med |
ne | Inte lika med |
lt | Mindre än |
gt | Större än |
lte | Mindre än eller lika med |
gte | Större än eller lika med |
Det här villkorsuttrycket kan till exempel användas för att fastställa vilket språk som används i meddelandets hälsningsfras baserat på landet för mottagaren:
<p>{{#if (eq contact.address1_country 'Denmark')}}
Hej
{{else if (eq contact.address1_country 'US')}}
Hi
{{/if}} {{contact.firstname}}!</p>
Här är ett exempel på ett villkorsuttrycket baserat på ett booleskt (två alternativ) fält som kallas is_vip
: observera att eftersom booleska fält alltid returnerar värdet sant eller falskt, inkluderas inget operator- eller jämförelsevärde eller parenteser i villkoret:
<!-- {{#if contact.is_vip}} -->
<h3>Be sure to show your VIP card to receive a 20% discount!</h3>
<!-- {{/if}} -->
Dricks
Du kan testa om det finns tomma fältvärden genom att använda:
{{#if (eq contact.lastname '')}}
Där ''
är två enkla citattecken, inte dubbla citattecken. Detta söker efter tomma fält, men inte null-fält.
Dricks
Även om du inte kan använda komplexa booleska uttryck i villkorsuttrycken kan du skapa liknande funktionalitet på följande sätt:
Stöds inte:
{{#if A and B}}<DisplayedContent>{{/if}
Motsvarar (som stöds):
{{#if A}}{{#if B}}<DisplayedContent>{{/if}}{{/if}}
Stöds inte:
{{#if A or B}}<DisplayedContent>{{/if}
Motsvarar (som stöds):
{{#if A}}<DisplayedContent>{{/if}} {{#if B}}<DisplayedContent>{{/if}}
Dricks
När du testar värden som lagras som en alternativ uppsättning i databasen använder du indexvärden för den alternativa uppsättningen, inte visningsvärden. Du kan till exempel ha ett fält med namnet contact.customertypecode
, som innehåller ett heltal som identifierar vilken typ av kund det är. Varje kundtypkod har också en visningsnamn, så att 0 = "koppar", 1 = "silver" och 2 = "guld". I det här fallet måste du ställa in ditt uttryck att använda indexet (heltal), inte det matchande visningsvärdet. Om du letar efter guldkunder bör du därför använda:
{{#if (eq contact.customertypecode 2)}}
Dricks
När du testar stora numeriska värden, till exempel "1 932 333", utelämna tusentalsavgränsare (,) i jämförelseuttrycket, även om du ofta kan se dessa i användargränssnittet. För att testa detta värde bör ditt uttryck därför se ut ungefär så här:
{{#if (eq contact.customernumber 1932333)}}
For-each-loopar
Med for-each-loopar kan du stega igenom en samling poster som berör en specifik aktuell post, till exempel för att visa en lista med alla de senaste transaktionerna som är associerade med en kontaktperson. Du kan lägga till koden som krävs för att skapa dessa uttryck genom att placera den i ett textelement eller genom att placera anpassade kodelement mellan de andra designelementen. Mer information: Hur du lägger in avancerat dynamiskt innehåll i designern
For-each-loopar har följande format:
{{#each Entity.RelationshipName }}
...
{{this.RelatedField1}}
...
{{this.RelatedField2}}
...
{{/each}}
Där:
- Loopens block måste alltid inledas med
{{#each … }}
. -
Entity.RelationshipName
identifierar uppsättningen relaterade poster som loopen ska upprepas på. - Loopen börjar med den första relaterade posten och upprepas för varje relaterad post tills alla relaterade poster har gåtts igenom. Observera att de relaterade posterna returneras i slumpmässig order.
-
{{this.RelatedField<n>}}
identifierar ett fältnamn från den relaterade posten. Delen "this" i det här uttrycket refererar till den relaterade posten som bearbetas i den aktuella upprepningen, och måste följas av ett giltigt fältnamn för den relaterade entiteten. Du kan ta med ett valfritt antal fält i varje loop. - Loopens block måste alltid avslutas med
{{/each}}
.
Databasen kan till exempel omfatta en lista med produkter som en kontakt har beställt. Du kan visa dem i ett e-postmeddelande med hjälp av kod som denna:
<p>You have purchased:</p>
<ul>
<!-- {{#each contact.contact_product_productid}} -->
<li>{{this.name}}</li>
<!-- {{/each}} -->
</ul>
I det här exemplet har Dynamics 365 Customer Insights - Journeys-systemet anpassats så att det omfattar en anpassad entitet som kallas produkt, som har konfigurerats med en 1:N-relation mellan entiteterna kontakt och produkt i fältet produkt-ID. För att produktentiteten ska vara tillgänglig för dina e-postmeddelanden måste den också synkroniseras med tjänsten för marknadsföringsinsikter (som vanligt).
Viktigt!
Endast de första 1 000 relaterade objekten läggs till i relationen för e-postrenderingsändamål. Att använda relationer med mer än 1 000 objekt stöds inte i e-postmallar och kan leda till oväntade resultat.
Observera också att relationer på andra nivån inte stöds. Därför är följande syntax inte tillåten:
{{#each Entity.RelationshipOnEntity}}
...
{{#each this.RelationshipOnRelatedEntity}}
...
{{/each}}
...
{{/each}}
Hur du lägger in avancerat dynamiskt innehåll i designern
Du måste vara försiktig när du lägger in avancerad dynamisk kod i designern eftersom det kan gå fel på många, ibland oväntade, sätt som förstör din kod. Här följer några tips på hur du lägger in och testar din kod:
- Använd anpassade kodelement för att placera kodfragment mellan designelement på fliken Designer. Detta är mycket mer synlig och pålitlig än att placera koden direkt i HTML med hjälp av HTML-fliken. Men du kan också använda dynamisk kod inom ett textelement, i vilket fall du kommer förmodligen att behöva rensa upp koden på fliken HTML, som nämnts senare i den här listan. (När du arbetar i helsidesredigeraren väljer du ett anpassat kodelement för att redigera dess innehåll.)
- När du anger kod i ett textelement på fliken Designer kommer extra blanksteg och radmatningar som du lägger till att skapa
och<p>
-taggar i koden, vilket kan förstöra den. Gå alltid till HTML-fliken efteråt där du kan se alla dessa extra taggar och se till att ta bort dem. - När du anger en kod i ett textelement kommer all din kod för dynamiskt innehåll måste sitta inom antingen start- och sluttaggar (t.ex.
<p>
och</p>
) eller i en HTML-kommentar (för kod som är helt åtskild från texten som visas). Placera inte koden utanför kommentarer eller par med giltiga HTML-taggar (eller anpassade kodelement) eftersom det förvirrar redigeraren (särskilt om du växlar mellan HTML- och Design-flikarna). Du måste arbeta med fliken HTML inspektera och korrigera HTML inom dina textelement. - Gör inga radmatningar mellan kodelement som ingår i samma uttryck (t.ex. i en for-each-loop), såvida du inte vill innesluta varje rad i dess egen uppsättning HTML-taggar (som framgår av exemplet på for-each-loop nedanför den här listan).
- Funktionen anpassning är ofta användbar när du vill konstruera uttryck som hämtar värden från databasen eftersom det hjälper dig att hitta databastabell, fält och relationsnamn. Det här verktyget är tillgängligt när du arbetar i ett textelement på fliken Designer och när du anger värden är vissa fält som stöder det (som e-postämne). Anpassning är inte tillgängligt när du arbetar på fliken HTML eller i ett anpassat kodelement, så att du i stället kan börja med att använda anpassning i ett textelement och sedan klippa/klistra in det resulterande uttrycket i ditt anpassade kodelement eller HTML.
- Relationsnamnet du använder när du skapar loopar eller placerar uppslagsvärden måste vara samma som det som används i tjänsten för marknadsföringsinsikter. Relationsnamnet är inte alltid samma som det som används för att anpassa Dynamics 365. För att hitta rätt relationsnamn, använd funktionen anpassning.
Du kan t.ex. skapa en rad med en hälsningsfras för ett e-postmeddelande genom att skriva följande på HTML-fliken i designern (antingen innanför eller utanför ett textelement):
<p>{{#if (eq contact.address1_country 'Denmark')}}Hej{{else if (eq contact.address1_country 'US')}}Hi{{/if}}{{contact.firstname}}!</p>
Följande exempel (som också visats tidigare) visar hur du kan använda kommentarer för att omsluta kod som finns helt utanför det visade innehållet (även på fliken HTML):
<p>You have purchased:</p>
<ul>
<!-- {{#each contact.contact_product_productid}} -->
<li>{{this.name}}</li>
<!-- {{/each}} -->
</ul>