My Salesforce Marketing Cloud use-case:

When the user taps on a button in my iOS application, I need to send a push notification to the user. Sometimes the Push notification/Email communication with the user should be based on the series of events (the user behaviour on the application) happened. For this to happen, I will have to share those click/view etc. events/stats real-time with the Marketing Cloud. When I checked, I could find a couple of APIs exposed in the Marketing Cloud SDK. The problem here is all those APIs are use-case specific. Eg, to track PushNotifications, Cart related activities etc. I couldn't find any general APIs such as the LogEvent() API provided by firebase SDK.

When I checked further, I found a couple of REST APIs provided to share the data with Marketing Cloud. The problem with those APIs are that they have a limit of 2500 calls per minute and 6 million in a year. With these limitations, I will not be able to integrate the APIs into my iOS app because I am quite sure that the number of requests will outrun.

I am blocked on this now. Any suggestions on how to tackle this issue from the client-side.

Edit 1:

Adding a couple of Use cases in detail:

Use Case 1:

If the App is not active for 48 hrs, send a push notification

Understanding: Marketing Cloud SDK will send the user activity to Marketing Cloud.

Qns, How the linking between sdk and Marketing Cloud backend happening? Where does the data is getting stored? How can I configure this 48 hrs period from the marketing cloud backend?

Use Case 2:

When the user navigates to a particular section of the app (Eg: Account Settings, Gallery), send a push notification with some details.

Understanding: There should be a way to share the generic sort of events like button clicks, page views from the client application (iOS/Android, real-time) with Marketing Cloud.

Qns, How can we do this? In the marketing cloud, where are we handling this data? Where the tables are created and how the mappings are done between the SDK and tables?

Use Case 3:

Implementing personalisation with emails and PushNotifications

Understanding: There should be a way to push App Server data to Marketing Cloud.

Qns, How do we share the App backend data (name, age, email etc.) with marketing cloud from the App Server? Where the data is handled? How do we create necessary data structures to keep this data? How can we manipulate this data?

Client app event/stat sample format:

   "event_id" : 800000001,
   "page" : "gallery",
   "interactable" : "button",
   "interactable_id" : "delete_button"

1 Answer 1


As far as I know there is no general API to log events from iOS app to marketing cloud everytime. But you can make use of additional attributes or tags to capture the user's interest page, products etc.. via marketing cloud sdk.

You can find more information on setting custom attributes/tag in ios here - https://salesforce-marketingcloud.github.io/MarketingCloudSDK-iOS/sdk-implementation/user-data.html

If you prefer to use REST API calls from iOS to marketing cloud then just use it wisely. You are correct you can able to send 2500 calls / minute which you will easily out run.

Edit based upon additional use case in question:

Use Case 1:

You have to configure marketing cloud SDK in your iOS/Android app. Once you are done with that the marketing cloud sdk's will do the job on interacting with SFMC.

All the mobile push data will get stored in Mobile Push Demographic table. You can access this by going into Mobile Studio > Mobile Push > Manage Contacts > Create List> You can select this table Or You can go to Journey Builder > Contacts > Mobile Push Demographics > access all the attributes

Coming to your use case 1, you can use the default SFMC Mobile demographics attribute 'Last Application Open' (highlighted in below screenshot) using the attribute you can create a list and send mobile push to the list in automation studio. Or if you have any data extension then add them into source filter with this attribute in journey builder.

enter image description here

Use Case 2:

Apart from the default attributes from Mobile Demographics table, you can also create custom attribute like 'visited product A page' then you can call the SFMC SDK method in android / iOS to set the value.

You can find more info on custom attributes here - https://salesforce-marketingcloud.github.io/MarketingCloudSDK-iOS/sdk-implementation/user-data.html

Use case 3 -

So any person who just opened an app without signing in then a new contact will be created in SFMC and a device ID tagged to that contact ID. If the same contact logged into app to make a purchase or something then you would need to tie that contact to SFMC. If the contact already exists with contact ID then it will tie to that contact.

Note: This process will vary from business to business based upon how you will the sdk in initial stage.

So the email attributes and mobile push attributes will be linked and you can use with %%First Name%% to address the personalization as same as how you will address in email studio.

Tried to answer as much as possible. Let me know if this helps.

  • Thanks! I updated the question. Added a sample event format. Are you saying that I can send each element in the event JSON as Attributes?
    – AKA
    May 19, 2020 at 8:45
  • I have updated my answer @BheemaSenan. Let me know if that helps.
    – Naveen VM
    May 19, 2020 at 11:04

You must log in to answer this question.

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