I'm trying to work through setting up data for a reporting need we have. Our engagement programs are set up to use dynamic email content based on a person's segment, and we'd like to be able to report on what piece of content was delivered to each person.
Currently I'm working from various tables that I'm pulling into our data warehouse, and looking at the Email Send activities for people from two different segments I can't see anything that differentiates which dynamic content segment they fell into:
The MailingID, MailingName, and Campaign fields are all the same for these, and while CampaignRunID is different I think that's only because the sends were on different days.
In the front end for these same activities I do see an additional field, Variant ID, that both looks and sounds like it's related to the segmentation:
However, it doesn't looks like this field is exposed to the API for whatever reason, so it doesn't really help me.
I know I can report based on the person's segmentation itself (that's how I pulled the first two examples, by doing a join to the person table and pulling in the field this segment is based on); however in our case this is information that can change once a person gets in touch with Sales and they go through the qualification process, so a person's current segment may not be the same as the segment at the time they were delivered the email. As best I can tell the Change Segment activity type doesn't help me, since it only lists the new segment not the old segment, and there isn't any activity type for initial segment.
It looks like the "Engagement Program Cast" activity type has everything I would want for this (including information on whether the person has exhausted content in their stream as a bonus), but this isn't exposed to the API either.
Is there any way - even if it's by association - to determine what piece of content was delivered by a dynamic email?
Hope this makes sense, if there's any clarification I can add please let me know. Thanks for taking a look everyone!