Our goal is to be able to send MobilePush messages to Contacts based on data synced from Service Cloud.

Our app has the MobilePush SDK configured with setDelayRegistrationUntilContactKeyIsSet=true - and we are using the Salesforce ContactID as ContactKey. So, in Contact Builder, MobilePush Demographics are automatically associated with the correct record in the Contact_Salesforce synchronised DE. So far, so good.

Because Contact Key is not available in _PushAddress, my understanding is we need an automation that exports MobilePush Detail Extract Report, then imports it to a DE which makes ContactKey and DeviceId available to subsequent Automation steps. Ultimately we want to create a sendable DE that contains attributes from Service Cloud and MobilePush Demographics in a single record.

However, for MobilePush Contacts to be included in the MobilePush Detail Extract Report, we need to have sent them a message first.

So my question is: what's the best method to trigger this message?

One idea I had was to create an Automation that gets the necessary attributes from _PushAddress for records created in the past hour and trigger Journey entry that sends a "Welcome" Push.

Are there any other methods that don't involve a delay?

1 Answer 1


With a little bit of help from your mobile developers, you can actually add a Contact Key to the _PushAddress table and have the value populated via the SDK.

SFMC Setup

As you may know, _PushAddress can be viewed and extended in Contact Builder > MobilePush Data. It's the MobilePush Demographics attribute set:

enter image description here

When you scroll to the bottom of the table, you can see the Create Attribute button. Click it and add a new Attribute where you will be storing your Contact Key, but be wary that the actual attribute can't be named contactKey as it is a reserved word. SubscriberKey is not reserved btw...

That's all you need to do on your end.

Mobile Development

Your app is able to get the Contact Key and do a registration with that which is fantastic.

The developers need to just use the value one more time and utilize the Attribute feature (Android, iOS documentation) to save this value into the Contact Attribute you added in Contact Builder.

When done, this will populate the value of your new attribute in MobilePush Demographics (_PushAddress) and you will be able to query it with no issues.

  • Awesome, very helpful thank you Rafal! I didn't know we could create a new attribute on _PushAddress. Will try it, then mark answered. Commented Mar 4 at 22:04

You must log in to answer this question.

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