I would like to build a database for MobilePush which it will includes some information like AppName, MessageName, DateTimeSend, DeviceId, Status,....

After researching for a while, I found that "Push Message Detail" report is what I need. Unfortunately, the report only shows the data in maximum last 30 days, so the idea is to schedule running the report daily every 1 day to update the data then import it into a Data Extension.

The issue in this approach is I'm not sure which field can be used as the primary field. For example, PushJobId and RequestId can display more than 1 time if they were the batched sends.

I'm not sure how the report can identify unique records, there must be another field? Please give me some advice. Thanks.

2 Answers 2


You can set the composite primary key to include the following fields:

  • PushJobId
  • DeviceId
  • ContactKey
  • DateTimeSend
  • OpenDate

PushJobId and DeviceId may not be enough because the pushSent and PushOpen happen at different time.


"The Push Message Detail Report does not have a unique identifier for the records it contains"

This is what Salesforce support confirmed to me.

So in this case, we can combine between PushJobId and DeviceID as a primary Id (or combine between RequestId and DeviceID) since a job only sends to a device one time (this also what they confirmed to me)

Therefore the DE which using as the import destination supposes to work as a staging DE.

The automation will be something like this:
File transfer -> Import activity (to the staging DE) -> Query activity (combine to create the primary key and populate to the main DE)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .