Pages

Showing posts with label MCAE. Show all posts
Showing posts with label MCAE. Show all posts

Wednesday, August 26, 2026

MCAE and Salesforce Email in Data 360

In this blog, we discussed Email Activity DLO, or Email Engagement DMO. This blog will continue with how the MCAE and Salesforce email information is stored in Data 360.

We can get information from 3 objects related here; ideally, this should be done in DMO.

1. Email Engagement DMO / Email Activity DLO

This is the base object that stores all emails sent from MCAE. This object can be related to the Bulk Email Message DMO with key: Email Engagement object (field Bulk Email Message) related to Bulk Email Message object (field Bulk Email Message Id). The relationship needs to be set up from the child object, which is the Email Engagement DMO.

A few important fields from this object:

  • Bulk Email Message Id starts with the prefix 0XB
  • Engagement Date Time: when the record is created
  • Individual information starts with the prefix 003 (contact) or 00Q (lead)
  • Engagement Channel Action: SEND_STATUS, CLICK, and OPEN
  • Email Recipient Send Status: SENT or blank

Again, you can check all other fields in this object from this blog.


2. Bulk Email Message DMO / List Email DLO

We can treat this as the parent object, Email Engagement; the data is coming from both emails sent from Salesforce List Email and from MCAE, which is synced from data stored in the ListEmail object in Salesforce.

We can create a Salesforce report using the "Bulk Email Message with Email Engagement" report type; however, because of the "with", this means only Bulk Email Message has child records of Email Engagement DMO, which also means the results are ListEmail sent from MCAE only.

Because the Campaign ID field is in this object, we can relate it to the Campaign DMO. The relationship needs to be created from this object to Campaign. 


The 1st relationship is the Bulk Email Message object with key field = Campaign, related to the parent object Campaign with key field = Campaign ID.

The 2nd relationship is the same as mentioned in the Email Engagement DMO relationship above.

    A few important fields from this object:

    • Send Method Type: List Email or Automated Email
    • Sent Via: Salesforce or Pardot
    • Email stat fields such as: Total Sent, Total Delivered, Total Hard/Soft Bounces, Unique Opens, and Unique Clicks
    • Subject
    • From Name and From Address
    • Name, which is the List Email name
    Creating a Salesforce report using the Bulk Email Message report type will return all records for emails sent from Salesforce and MCAE, similar to a query to Salesforce's ListEmail object.


    3. Campaign

    As the objects have been linked, we can use Query Editor to run SQL to get the results as needed. So, instead of showing Campaign ID, we can get the campaign name, owner, start date, end date, etc. 




    Monday, May 25, 2026

    Architecture Email Sent from Salesforce and Account Engagement

    1. Account Engagement Emails & Account Engagement Email Templates datasets

    In this blog, we discussed Account Engagement Emails (API Name = pdEmail) and the Account Engagement Email Templates (API Name = pdEmailTemplate) datasets from the B2B Marketing Analytics app in CRM Analytics. Each row represents one day of statistics for an individual list email or an individual email template

    AE Email + AE Email Template Dataset Fields
    Type Account Engagement Emails Account Engagement Email Templates
    MeasuresClick To Open Ratio
    Delivery RateDelivery Rate
    Opt Out RateOpt Out Rate
    Spam Complaint RateSpam Complaint Rate
    Total Bounced
    Total ClicksTotal Clicks
    Total CTRTotal CTR
    Total DeliveredTotal Delivered
    Total Hard BouncedTotal Hard Bounced
    Total HTML OpensTotal HTML Opens
    Total Opt OutsTotal Opt Outs
    Total QueuedTotal Queued
    Total SentTotal Sent
    Total Soft BouncedTotal Soft Bounced
    Total Spam ComplaintTotal Spam Complaint
    Unique ClicksUnique Clicks
    Unique CTRUnique CTR
    Unique HTML Open Rate
    Unique HTML OpensUnique HTML Opens*
    DatesCreated At DateCreated At Date
    Sent On Date
    Stats DateStats Date
    Updated At DateUpdated At Date
    DimensionsCampaign ID (CRM)Campaign ID (CRM)
    Campaign ID (external)Campaign ID (external)
    CampaignCampaign
    Created ByCreated By - User ID (CRM)
    Email IDEmail Template ID
    NameName
    SenderSent To
    Stats IDStats ID
    SubjectSubject
    Suppressed From
    TagsTags
    Type
    Updated ByUpdated By - User ID (CRM)

    Look at the Salesforce article B2B Marketing Analytics Datasets; there is a slight difference, as some fields are not available, such as bounce rate. Even between the email and email template datasets, there are slight differences in the field availability; see the blank values in the Account Engagement Emails and Account Engagement Email Templates columns.

    There are 2 major challenges/issues with the email template dataset:

    1. There is no Sent on Date, although we can use Stats Date and Total Sent
    2. *Unique HTML Opens always show 0; this is a bug and has been captured as a known issue.

    As you read above, there is no detail on who the email is sent to in the Account Engagement Emails and the Account Engagement Email Templates datasets.


    2. Prospect and Activity dataset 

    The Prospect and Activity (API Name = pdProspectActivity) dataset is another dataset provided by the B2B Marketing Analytics app. Each row represents a unique engagement activity and data related to the prospect who performed it, so emails sent to the prospect does not count and are not available in this dataset. 

    If a prospect performs multiple activities, such as list email click, list email open, landing page view, etc., they will appear as multiple rows with different activity dates (including timestamps). 

    Here is the Salesforce article: Prospect and Activity Dataset.

    The screenshot below filters the prospect and activity by ID (using Lead ID)


    Here are the fields and the types available in this dataset:

    Prospect and Activity Dataset
    MeasuresScore
    DatesActivity Date
    Prospect Assigned Date
    Prospect Created At Date
    Prospect CRM Last Activity Date
    Prospect Last Activity Date
    Prospect Updated At Date
    DimensionsAccount
    Account ID
    Account Name
    Activity
    Activity Campaign ID
    Activity Campaign Name
    Address One
    Address Two
    Annual Revenue
    Archived
    Asset Activity
    Asset ID
    Asset Name
    Asset Type
    Assigned User First Name
    Assigned User Full Name
    Assigned User Last Name
    CRM Contact FID
    CRM Lead FID
    CRM Owner FID
    City
    Comments
    Company
    Country
    Created By First Name
    Created By Full Name
    Created By Last Name
    Department
    Employees
    Email
    External ID
    Fax
    First Name
    Full Name
    ID
    Grade
    Industry
    Is Do Not Call
    Is Do Not Email
    Job Title
    Last Name
    Month
    Name
    Opted Out
    Pardot Account ID (external)
    Pardot Activity ID
    Pardot Asset ID
    Phone
    Prospect Archived
    Prospect ID (external)
    Prospect Job Title
    Prospect Pardot Campaign Id
    Prospect Type
    Salutation
    Source
    Source Campaign
    State
    Tags
    Territory
    Updated By First Name
    Updated By Last Name
    Website
    Years In Business
    Zip


    We can relate the Pardot Asset ID in this dataset to the Email ID in the Account Engagement Emails and Account Engagement Email Templates datasets.

    ID (API Name: ActorID) in this dataset is the Salesforce Lead ID or Contact ID.

    Prospect Type will contain 'Lead' or 'Contact' only.


    If you are working with the email performance report/dashboard, you can't use this dataset as it only contains email click and open information, not email sent.


    The following screenshot filters the asset type = List Email and Automated Email.





    3. Pardot Engagement History dataset

    This is another CRMA dataset with API Name = Pardot_Activity, but provided by the B2B Marketing Engagement History app, not the B2B Marketing Analytics app, where the datasets mentioned above are.

    ✔ 1 row = 1 activity event (per prospect per interaction); email sent to the prospect is not recorded in this dataset.

    I see this dataset is almost similar to the Prospect and Activity dataset, but lighter. It contains many similar fields, such as: ID (API Name: ActorID, which is Lead ID or Contact ID), Activity, Asset Activity, Asset ID, Asset Name, Asset Type, Prospect ID, Prospect Type, Pardot Activity ID, and Pardot Asset ID. But does not contain detailed information about the Prospect, such as Job Title, Address, Annual Revenue, Company, etc. -- this information can be retrieved from the Account Engagement Prospects dataset in the B2B Marketing Analytics app.

    Pardot Engagement History Dataset
    DatesActivity Date
    DimensionsAccount
    Account ID
    Activity
    Activity Campaign ID
    Activity Campaign Name
    Activity Date (Month Name)
    Asset Activity: Priority Page View, Landing Page View
    Asset ID
    Asset Name
    Asset Type:
    External ID
    ID
    Name
    Pardot Account ID
    Pardot Activity ID
    Pardot Asset ID
    Pardot Prospect Archived
    Pardot Prospect Job Title
    Prospect Pardot Campaign Id
    Prospect Type (Lead or Contact)


    Sample values of the Activity and Asset fields:



    Asset Activity, in short, is Asset Type + Activity.


    As mentioned in the Prospect and Activity dataset, if you are working with the email performance report/dashboard, you can't use this dataset, as it only contains email click and open information, not email sent.

    The following screenshot filters the asset type = List Email and Automated Email.



    4. ListEmail object

    This is not a CRM Analytics dataset; it is a Salesforce object. Each record in the ListEmail object represents a list email sent from Salesforce or sent from Account Engagement. However, this object does not include emails sent manually from Salesforce; those records are stored in the EmailMessage object.

    The ListEmail record prefix is 0XB, while the EmailMessage record prefix is 02s.

    The email sent via Sales Cadence will have the ActionCadenceStepId set to the prefix 8C8; the Type will be "List Email" and SentVia will be "Salesforce".

    The ListEmailIndividualRecipient object links the List Email to recipients, represented by the Lead or Contact ID. Check the ListEmailId and RecipientId fields. The documentation does not mention whether the data includes emails sent from Account Engagement -- Salesforce confirms that email from MCAE is not added to this object.

    The ListEmailRecipientSource object connects the List Email with the source, such as Campaign or List View. SourceListId will be either the List View ID or the Campaign ID. The documentation does not mention whether the data includes emails sent from Account Engagement.

    The ListEmailSentResult is another object related to ListEmail; check the ListEmailId and RecipientId fields. As per the documentation, this object represents the results of a list email sent from Salesforce and MCAE; however, I do not see emails from MCAE here. Salesforce support confirmed that the documentation stating that ListEmailSentResult captures data for list emails sent from MCAE and synced to Salesforce is inaccurate; the data from MCAE list emails doesn't reliably populate this object the way the docs suggest, and a documentation bug has already been filed to get that corrected. 

    Back to the ListEmail object, for emails sent from MCAE, the record creator will be the user who connects Salesforce with MCAE, such as B2BMA Integration and SentVia = Pardot, while the list email sent from Salesforce (including Sales Cadence) will have SentVia = Salesforce. For Pardot Email, Type = List Email for AE Email and Type = Automated Email for AE Email Template.

    There is no Sent Date in this object, but look into the ScheduledDate

    Salesforce ListEmail Fields
    API NameTypeRefers To
    ActionCadenceStepIdLookupActionCadenceStep
    CampaignIdLookupCampaign
    ClickThroughRatePercent
    ClickToOpenRatioPercent
    DeliveryRatePercent
    EmailContentIdLookup
    FromAddressTextarea
    FromNameString
    HasAttachmentBoolean
    HtmlBodyTextarea
    IsTrackedBoolean
    LastReferencedDateDateTime
    LastViewedDateDateTime
    NameString
    OpenRatePercent
    OptOutRatePercent
    OwnerIdLookupGroup, User
    ProgramNameString
    ScheduledDateDateTime
    SentViaPicklist
    SpamComplaintRatePercent
    StatusPicklist
    SubjectTextarea
    TextBodyTextarea
    TotalDeliveredInt
    TotalHardBouncedInt
    TotalOpensInt
    TotalOutOfOfficeInt
    TotalRepliesInt
    TotalSentInt
    TotalSoftBouncedInt
    TotalSpamComplaintsInt
    TotalTrackedLinkClicksInt
    TypePicklist
    UniqueOpensInt
    UniqueOptOutsInt
    UniqueRepliesInt
    UniqueTrackedLinkClicksInt


    5. Engagement Metrics on List Emails

    Check out this article: Five recommended custom report types for Account Engagement's Engagement History, and create the "Engagement Metrics on List Emails" report type. There is a known issue related to this report.

    This report will show each email as a single record in the aggregate data. Compared to the (1) Account Engagement Emails & Account Engagement Email Templates datasets, the datasets use the Stats Date, which shows email stats for each day, such as how many emails were sent, delivered, opened, etc., on 1-Jun, 2-Jun, etc. While this report includes Created Date and Scheduled Date, in the email template, the Scheduled Date is the creation date, so this does not reflect the daily activity details as offered by the Account Engagement Email Templates datasets.



    6. Email Activity DLO or Email Engagement DMO

    If you have Data 360 ingested data from MCAE, look for the out-of-the-box Email Activity DLO.  There are 5 data streams from this data: Email Engagement Data, Form Engagement Data, Web Page Engagement Data, Custom URL Engagement Data, and Form Handler Engagement Data. 

    For email, select Email Engagement Data. The data stream and DLO will be named EmailActivity_0Uvxxxxx, with API Name EmailActivity_0Uvxxxxx_dll. You can add formula fields in the data stream if needed.
    Check out this article for email activity: Marketing Cloud Account Engagement: Email Activity Mapping.


    A few standard fields that are provided in the DLO:
      • id*: primary key
      • externalId: ID of the MCAE Visitor Activity record
      • externalSourceId: "pi"
      • externalListEmailId: ID of the MCAE List Email record
      • externalProspectId: ID of the MCAE Prospect record
      • prospectId: <pi-pr-account_id-externalProspectId>
      • prospectSalesforceId: ID of the Salesforce record synced with the MCAE Prospect (00Q/003)
      • prospectEmail: Email address of the recipient at the time of data ingestion from Account Engagement to Data 360
      • polymorphicListEmailId: ID of the Salesforce List Email record (0XB)
      • redirectUrl: The URL that the prospect is redirected to when the link is clicked. Only populated when the eventType is CLICK
      • createdAt = value of the visitor activity record in Account Engagement
      • eventType: type of Email Activity: SEND_STATUS, OPEN, CLICK, BOUNCE, UNSUBSCRIBE, COMPLAINT, SUBSCRIBE
      • sendStatus: The default is SENT. Only populated when the eventType is SEND_STATUS
      • emailBounceType: SOFT or HARD. Only populated when the eventType is BOUNCE
      • emailBounceReason: Only populated when the eventType is BOUNCE, such as: Soft bounce - Other [5.4.0 5.4.0 Error: too many hops]

      You can query in Data 360 to retrieve the Email Activity with List Email information, such as Type and Name, for example:

      SELECT
          ea."externalId__c", ea."prospectSalesforceId__c", ea."polymorphicListEmailId__c", ea."eventType__c",
          le."Type__c", le."Name__c"
      FROM "EmailActivity_0Uvxxxxxxxxx__dll" ea
      LEFT JOIN "ListEmail_Home__dll" le
          ON ea."polymorphicListEmailId__c" = le."Id__c"



      Reference



      Monday, February 9, 2026

      Salesforce: ListEmail

      In addition to the B2B Marketing Analytics - Account Engagement Emails and Account Engagement Email Templates Datasets discussed here. We can also retrieve email statistics sent from MCAE/Pardot using SOQL into the ListEmail object in Salesforce. 

      The ListEmail object represents a list email sent from Salesforce or from Account Engagement, and the email sent result is synced to Salesforce. When the list email is sent, recipients are generated by combining the recipients from ListEmailIndividualRecipients and ListEmailRecipientSource. Duplicate and other invalid recipients are removed. The result is recipient sent any given list email. ListEmail has a one-to-many relationship with ListEmailRecipientSource and ListEmailIndividualRecipient. This object is available in API version 44.0 and later.

      To differentiate emails sent from Salesforce or Pardot, check the SentVia field. 

      SELECT SentVia, count(Id) FROM ListEmail WHERE CreatedDate = this_year GROUP BY SentVia

      Each row represents an email sent; no recipients are on this object because the email can be sent to many people. Check ListEmailIndividualRecipient for email recipients, which is a child of ListEmail.



      Reference:

      Thursday, October 30, 2025

      MCAE: Segmentation Lists

      When you click Segmentation Lists, the first view is "All Current Lists," but "All Current Lists" does not mean to include ALL the lists in MCAE.


      All Current Lists: view shows all active lists, excluding:

      • Archived Lists
      • Deleted Lists
      • Inactive Dynamic Lists
      • Unused Dynamic Lists

      Dynamic Lists:
      • This includes all dynamic lists currently in your database
      • Archived dynamic lists are not displayed in this view - they're moved to the recycle bin
      • Deleted and inactive lists are excluded from this view


      Inactive Dynamic Lists:
      • No prospects added or removed in the last 30 days
      • They're no longer actively used in ongoing campaigns or processes
      • While they still exist in your system, they're not processing new prospects or updating automatically


      Unused Dynamic Lists:
      • These are dynamic lists that aren't currently referenced in any active marketing assets (emails, automation rules, etc.)
      • Often created for one-time campaigns (like a single email blast), but no longer serve a purpose
      • Recommendation: These should be reviewed regularly and either:
        • Converted to static lists (if you need to preserve the prospect data)
        • Deleted (to free up system resources and improve performance)




      Page-level ad