Email deliveries in Adobe Campaign are stored in the database β€” inaccessible to external tools and invisible to AI agents without extraction.

Use acc instance pull to download all delivery HTML and text files locally, then run local helpers to extract their id, status, startDate, folder and more.

Preparation

Requirements: acc installed and authenticated. Refer to Getting started.

What will be downloaded:

  • Email deliveries as .html, .txt and .meta.xml files, named by internal name

Walkthrough

1. Pull all email deliveries

acc instance pull --metadata nms:delivery

Deliveries are extracted to Campaign Management/Deliveries/. Our main interest will be the metadata files, named with the suffix .meta.xml:

<delivery folder-id="11622" folderProcess-id="0" internalName="DM74" label="Agency delivery"
    messageType="5" status="5" supplierModel-id="0" targetStatus="0" typology-id="1826"...>
    <scheduling contactDate="" contactDateTimeZone="America/New_York".../>
    <mailParameters mirrorPagePolicy="default" needMirrorPage="0" useDefaultErrorAddress="true">
        <senderName><![CDATA[Local Win11]]></senderName>
        <senderAddress><![CDATA[[email protected]]]></senderAddress>
        <replyAddress><![CDATA[[email protected]]]></replyAddress>
    </mailParameters>
    <indicators processed="100" success="99" recipientClick="20" optOut="2".../>
[...]</delivery>

It contains all delivery information, such as:

  • Sender: [mailParameters/senderName]
  • Sent with success: [indicators/@success]
  • Status: [@status]
  • Folder: [@folder-id]

2. Open the folder in a terminal

Open Campaign Management/Deliveries/ in your Terminal of choice - Windows Powershell, MacOS bash. Then, list all meta files

cd "Campaign Management/Deliveries"

On Windows:

Get-ChildItem *.meta.xml

On Mac/Linux:

ls *.meta.xml

Wrap the folder in quotes " to handle spaces

3. Extract 1 XML field for quick check

Let’s extract the label from all deliveries.

On Windows:

Get-ChildItem *.meta.xml | ForEach-Object {
  $r = ([xml](Get-Content $_)).DocumentElement
  "$($r.label)"
}

On Mac/Linux:

xmllint *.meta.xml --xpath 'string(/*/@label)'

Sample output:

DM61;0
DM64;5
DM74;5

4. Extract many XML fields for CSV

Add fields such as the contact date (attribute in element) and sender address (element in element).

On Windows:

Get-ChildItem *.meta.xml | ForEach-Object {
  $r = ([xml](Get-Content $_)).DocumentElement
  "$($r.scheduling.contactDate);$($r.mailParameters.senderAddress)"
}

On Mac/Linux:

xmllint *.meta.xml --xpath 'concat(/*/*/contactDate,";",//*[local-name()="senderAddress"])'

Sample output:

2026-05-02 22:01:52.342Z;[email protected]
2026-01-30 10:06:56.123Z;[email protected]
;[email protected]

Going further

The same approach works for personalization blocks and JavaScript codes: pull with acc, parse the XML and work locally in CSV/Excel/Terminal.

Lern how to use AI with acc in the next tutorial.