How to build delivery reports in Adobe Campaign (step-by-step)

I will never understand why Adobe Campaign, a platform that has so many robust features, lacks the most basic of out of the box features every organization would need. If you ask ChatGPT, Cluade, or Gemini the answers for this are often wrong. So let me help you out with step by step instructions for the two types of reports EVERY COMPANY NEEDS TO HAVE CREATED.

How to Build an Aggregated Delivery Report in Adobe Campaign

Using Query + Data Extraction

This report will give you data that provides you with the total Sends (Success), Count of Opens, Number of Clicks, Quarantines, and Opt Outs by Day. See example below:

DateOnly(contact date)sum of successsum of total count of openssum of total number of clickssum of new quarantinessum of opt-Out
6/2/25 0:004012385531430
6/3/25 0:006416568426350
6/4/25 0:003964300810410

Step 1: Query Setup

  1. Add a Query node to your workflow and open it.
  2. Target Dimension: Use broadLogRcp.
  3. Add filter conditions under “Edit query…” such as:
    • @label is not empty
    • execution/broadStartDate is on or after [your desired date]
  4. Click OK to close the query condition editor.
  5. Click “Add data…” under “Complementary information.”
  6. In the data selection flow:
    • Choose “Data linked to the filtering dimension” and “Data of the filtering dimension.”
    • Add in relevant columns such as indicators/success.
  7. In the Output columns panel, update expressions for each field:
    • DateOnly([scheduling/@contactDate]) — this gives you daily roll-up instead of individual delivery rows.
    • sum([indicators/@success])
    • sum([indicators/@totalRecipientOpen])
    • sum([indicators/@totalRecipientClick])
    • sum([indicators/@newQuarantine])
    • sum([indicators/@optOut])
  8. Set Group = Yes on the DateOnly(contact date) row.
  9. Click OK to save and exit the Query node.

Step 2: Advanced Parameters (REQUIRES Reopening)

  1. Reopen the “Edit additional data…” dialog after saving the Query node.
  2. Now click “Advanced parameters…” (this option is not available until after saving).
  3. In the Advanced Parameters popup:
    • Uncheck: “Keep all additional data from the main set”
    • Check:
      • “Group data by targeting dimension element”
      • “Remove duplicate rows (DISTINCT)”
      • “Disable automatic adding of the primary keys of the targeting dimension”
  4. Click OK to close the Advanced Parameters window.
  5. Click OK again to exit the Additional Data configuration.

Step 3: Connect to Data Extraction

  1. Add a Data Extraction (file) node.
  2. Connect it to your Query node.
  3. Open the Data Extraction (file) and in the “Data to extract” screen:
    • Set your file path and filename (based on your SFTP structure).
    • Click “Edit the file format…”
    • Add all fields you defined in the Query to the output columns.
  4. Click Next and walk through:
    • Sorting: enable sort for DateOnly(contact date) if needed.
    • File format: choose your delimiter and encoding preferences.
  5. Finish and save the workflow.

Ok, so now we have a Adobe Campaign report that gives us a high level of overall email performance, great for our leadership teams. Now we want to do something similar for each Delivery we have going out so that our marketing team can track their campaign performance. It’ll be similar to above but we add an enrichment node and we won’t do any of the expressions we did previously in the Query node.


How to Build a Detailed Delivery Report in Adobe Campaign

Using Query + Enrichment + Data Extraction

This next report will generate similar output but at the delivery-level for each emails performance metrics. Like above we will use Query and Data Extraction, but this time we also include Enrichment node. See example below:

Label (Targeting dimension)Internal NameDelivery IDRecurring Delivery IDContact DateSuccessTotal count of opensTotal number of clicksNew quarantinesOpt-Out
2025_email_marketing_alphaDM1231231236/3/25 1:561861300
2025_email_marketing_betaDM4564564566/25/25 0:015233784700
2025_email_marketing_gammaDM7897897896/21/25 7:394237241911210

Step 1: Query Setup

  1. Add a Query node to your workflow and open it.
  2. Targeting dimension: Select broadLogRcp.
  3. Click “Edit query…” and configure your filters:
    • Example: @label is not empty
    • And: execution/broadStartDate is between [start date] and [end date]
  4. Click OK to save the filter conditions.

Step 2: Enrichment Setup

  1. Add an Enrichment node and connect it to the Query.
  2. Double-click the Enrichment to open it.
  3. Under “Complementary information”, click “Add data…”.
  4. Browse through the Targeting dimension and Linked data sections to add the following fields:
    • target/@label
    • target/@id
    • target/@internalName
    • contact date (scheduling/@contactDate)
    • indicators/@totalRecipientOpen
    • indicators/@totalRecipientClick
    • indicators/@newQuarantine
    • indicators/@optOut
    • indicators/@success
  5. At the bottom, check “Keep all additional data from the main set”.
  6. Click OK to confirm and close the Enrichment configuration.

Step 3: Data Extraction (File)

  1. Add a Data Extraction (file) node and connect it to the Enrichment.
  2. Open the Data Extraction node.
  3. Set your file path and name appropriate to your SFTP destination.
  4. Click “Edit the file format…”.
  5. In the Data to Extract step, include all the enriched fields:
    • Label
    • ID
    • Internal Name
    • Contact Date
    • Total Opens
    • Total Clicks
    • Quarantines
    • Opt-Outs
    • Success
  6. Click Next and configure:
    • Sorting (optional)
    • File encoding and delimiter
  7. Finish and save the workflow.

I hope this guide helps you create your Adobe Campaign reports for leadership, marketers, and who ever else needs them. If anyone from Adobe happens to see this, for the love of tech please just include these templates in your out of the box reporting tools.

Check out my other Adobe Campaign posts which cover general guides on Workflows, Migrating Content, and using Personalization Blocks.

Leave Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.