i have a question when it comes to how dynamic content works when an email is being sent as part of a journey.
I want the content to be displayed based on an data extension field that is linked via the contact model (subscriberkey) and not based on the data extension that is the journey entry source.
Is this possible to do with the standard dynamic content or do i need to write Ampscript to handle this?
Below is an example of what i am trying to understand:
If I have a the Journey entry DE of the following
SubscriberKey – 123456 Gender – M
And I have another DE which I build the dynamic content off
SubscriberKey – 123456 Gender – F
The content is set to show image 1 if Gender = F
and show image 2 if gender=M
When I send the message in Journey builder will the content render image 1 (Female gender) or image 2 (male gender from the journey entry DE)
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
The creation of the dynamic content block (where you have to chose a dataextension that you are able to build rules) has nothing to do with the send process itself. It just allows you to create the rules with the fields of that particular data extension.
When both of your data extensions have the same fields (that is the most important stuff) it does not matter which data extension you chose for the dynamic content block creation. You could have also chosen an empty one that will never be used in a send process but has the same fields.
Tom Callahan‘s answer covers a different aspect of dataextension in journeys.
When a journey has a long period of activities like 30 days or something, it might happen that the original value of the starting dataextension is not valid anymore. What I mean by this is that if you start as a male when the journey has been activated but then this attribute get changed to female on day 5 of the 30 day journey the journey will still use the starting value which was male.
To cover this aspect you cannot use dynamic content blocks at all because they always reference the starting dataextension and you have no option (inside dynamic content blocks) to use values of the contact model of Salesforce itself. Therefore your only option is to write ampscript (like tom callahans) that received the current values at send time. You cannot solve this problem with dynamic content blocks at all – from my point of view this is a huge mistake from Salesforce that dynamic content blocks are useless for longer journeys where you always want to display the current state of variables / attributes like they are in the contact model itself.
I hope you understood – if not just comment on the post and I rephrase or add stuff.
Method 2
Pretty simple to do with an ampscript lookup
function. It would look something like this:
%%[ var @subkey, @gender set @subkey = AttributeValue('SubscriberKey') set @gender = lookup("DE2", "Gender", "SubscriberKey", @subkey) ]%% %%[if @gender == "Female" then]%% CONTENT A HERE %%[else]%% CONTENT B HERE %%[ endif ]%%
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0