Need some direction on the best way to approach this use case in SFMC:

Sweepstakes campaign that runs for 60 days. Once someone enters they receive a confirmation of entry. That's the easy part.

From there they will receive a re-entry reminder email that provides them a link to go to a landing page and re-enter the sweeps. Here's where it gets tricky. The email content for the reminder will feature a different 'hero' video each day that is specific to that day of the week. (the implication here is that this can't be a standard journey builder because I need the person that enters to not start at the beginning of the journey)

i.e. if it's day 20, the person that entered on day 1 will receive the same re-entry reminder email as the person who entered on day 19.

  • 2
    Could you use ampscript to perform a lookup in a DE that contains the respective content? What might help in understanding this is how many different 'hero' videos are there? are there 60 or just 7 (one for each day of the week) Dec 6 '17 at 6:02
  • 1
    There's going to be 60 unique 'hero' videos. Dec 6 '17 at 14:22

To expound on Lukas' answer - Rather than handwrite each of these, I would place them inside of a DE and then have the ampscript in the email perform a lookup to that DE to find the appropriate content area:

(If only the URL/IMG changes - you could set these in the DE and use variables rather than build a content area for each)

Example below.

DE: (Content_DE)

    Date         | ContentID
2017/12/06 | 102050
2017/12/07 | 102051


SET @Today = NOW()
SET @Contentid = LOOKUP('Content_DE', 'ContentID', 'Date', @Today)


Content Builder requires you to use the Content Block AMPScript calls. See below for the two options:

Content Block by Key (references external key of Content Block) %%=ContentBlockbyKey("myContentBlock")=%%

Content Block by Name (Name of the content block to return - need full path) %%=ContentBlockByName("Content Builder\Weekly Portfolio")=%%

To utilize these, you would need to include either the name or the key instead of the ContentID in your DE/SQL.

  • This makes things a lot more scalable. But I'm getting an error Invalid value specified for function parameter. Function Name: ContentArea Parameter Name: ContentID Dec 7 '17 at 4:49
  • Are you using Content builder? Dec 7 '17 at 11:22
  • Yes. I've modeled the DE like this: Date (as Date) | ContentID (numeric) | url (as string). I've also created HTML content block with customer key to match ContentID Dec 7 '17 at 14:56
  • Thanks for the edit. To confirm - I would need to still create the content blocks but would be able to lookup based on date to dynamically generate "today's" content? Right now I have the contentID matching the Customer Key Dec 7 '17 at 15:20

I would do it using ContentArea('ID') AMPScript function:

Build 7 separate content areas, containing HTML for the hero of the email, and select each of them, based on the weekday.

SET @today = Format(SystemDateToLocalDate(Now()), "dddd")

Then build IF / ELSE IF which switches between the different content areas, based on the value of @today


You might not even need to use a DE to map dates and content IDs. Imagine this scenario. You add a number field to your sendable DE, which you increment for each email sendout. This field is then read into the email, into the @JourneyDay - then you can use it to retrieve the content areas, named: Day1, Day2, Day3 and so on.

%%=ContentBlockByName(Concat("Content Builder\Day",@JourneyDay))=%%

  • I can manually name the content areas and preload the email to pull the content based on @today, right? Is there any issue with having an email with too much ampscript (for deliverability) NOTE: There's going to be a total of 79 content areas. 1 for each day. Dec 6 '17 at 15:41
  • Yes you can use the name of the content area to retrieve it. But then the right function is ContentAreaByName Dec 6 '17 at 15:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.