Export Campaign Engagement

General export task contract

The general contract for creating an export task is described here.

Campaign status export contract

Example request

POST https://api.maestra.io/v3/operations/sync?endpointId={endpointId}&operation={operation}

Accept: application/json
Content-Type: application/json
Authorization: SecretKey {Secret key}

{
  "sinceDateTimeUtc": "<Date and time of the earliest status (UTC, YYYY-MM-DD hh:mm)>",
  "tillDateTimeUtc": "<Date and time of the latest status, exclusive (UTC, YYYY-MM-DD hh:mm)>"
}

You can specify the following input parameters:

ParameterDescription
sinceDateTimeUtcFrom date (UTC). The export includes only statuses created in the system after this date.
tillDateTimeUtcTo date (UTC). The export includes only statuses created in the system before this date.

Response format

{
  "status": "<Request result: Success, ValidationError for a user error, ProtocolError for an integration error, or InternalServerError if the server is unavailable.>",
  "exportId": "<Export ID>",
  "isDuplicate": "<Indicates a duplicate export request. An export with the same settings is already being generated.>",
  "exportResult": {
    "processingStatus": "<File readiness status>",
    "cancellationReason": "<Export cancellation reason>",
    "urls": [
      "<Link to the result file>",
      "<Link to the result file>"
    ]
  }
}

Export file format

Base export field descriptions

{
  "customerMessageStatuses": [
    {
      "dateTimeUtc": "<Campaign status date and time>",
      "ids": {
        "id": "<Status ID>"
      },
      "customerMessage": {
        "dateTimeUtc": "<Date and time of campaign participation, UTC>",
        "ids": {
          "id": "<Campaign participation ID>"
        }
      },
      "mailing": {
        "name": "<Campaign name>",
        "variantNum": "<Campaign variant number>",
        "link": "<Link>",
        "ids": {
          "id": "<Campaign ID>"
        },
        "notSentReason": {
          "name": "<Description of why the campaign wasn't sent>",
          "ids": {
            "systemName": "<System name of the reason the campaign wasn't sent>"
          }
        },
        "notDeliveredReason": {
          "name": "<Description of why the campaign wasn't delivered>",
          "ids": {
            "systemName": "<System name of the reason the campaign wasn't delivered>"
          }
        },
        "brand": {
          "ids": {
            "systemName": "<Brand system name>"
          }
        },
        "channel": {
          "ids": {
            "systemName": "<Campaign channel system name>"
          }
        }
      },
      "mailingSource": {
        "entityType": "<Entity type>",
        "entityId": "<Entity ID>",
        "entityName": "<Entity name>"
      },
      "mailingStatus": {
        "ids": {
          "systemName": "<Campaign status system name>"
        }
      }
    }
  ]
}