I want to be able to keep track of point-in-time email send snapshot for every subscriber.

So if a subscriber has received multiple version of an email over a period of time, I would like to be able to tell which version (along with the content) was sent on any day.

I don't think SFMC maintains version history of emails. How can I accomplish that?

  • Have you looked at using a sendlog to capture the attributes for each instance?
    – EazyE
    Sep 29, 2020 at 19:20

2 Answers 2


You can fetch the content of the personalised email, retrieving it from VAWP URL, using following code:

IF _messagecontext == "SEND" AND jobid > 0 THEN
set @HTML = HTTPGet(view_email_url)

This will store the content, along with details on the job and the recipient. Few things worth observing:

  • You will need to create the EmailStorage Data Extension with HTML field as a varcharmax (by creating the DE in Email Studio, and leaving the length of the HTML field empty) - otherwise the complete HTML won't fit into it.
  • You should consider using Data Retention on EmailStorage Data Extension (of e.g. 7 days) and copy the data to a secondary archiving DE, reducing the risk of substantial latency when inserting new rows.
  • Let me try that
    – Maneesh
    Sep 29, 2020 at 19:48
  • 1
    Lukas's answer is good. Only considerations would be if you're a big sender that needs stuff sending quickly, HttpGetting's slow and'll reduce your send speed dramatically, in spite of Lucas's optimisations. You'd need to retrofit the AMPScript to your emails/templates, also. What EazyE was alluding to is pretty transparent, where you use a SendLog DE to log the URLs of the view_email_url and have some other process go scrape the content. Horses for courses.
    – Macca
    Sep 30, 2020 at 13:59
  • @Macca - valid point. However VAWP link will break if sendable DE is overwritten or deleted. So you might risk not being able to retrieve the content in the future Oct 1, 2020 at 6:42
  • @LukasLunow For sure. Like I said, these are just "considerations" and, as with all things SFMC, you have to weigh the ups and downs of approaches. Scraping in real-time has a hit on send speeds, but the upside is you get a copy of the VAWP content at time of send. The upside of scraping after the fact is you don't impede send speeds, but there's a risk volatility of data causing VAWP content to not match send time content. Other approaches could be to build a web app to accept HTTP calls, return a fast 200 and then go and scrape the content in near real time. There are downsides to that, too.
    – Macca
    Oct 1, 2020 at 23:57
  • Did you have any luck with this solution? If yes, then don't forget to mark the answer as accepted Oct 6, 2020 at 14:42

You could try using Data Extract SendJobs. This has a field 'PreviewURL' which can show you the preview of the message sent to the subscriber. However, it will not render personalization. So if you have too much personalization in your content, this might not be very useful.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .