Create or update profile data when a Mobile App sends Collect PII data.
PII stands for “Personally Identifiable Information” and Collect PII is an HTTP-POST to a Rest API in Adobe Campaign Standard (ACS) from a Mobile App.
The PII can be any data, including information that does not appear in the Profile table. The PII is defined by the Mobile App Developer, usually with a Marketer.
The goal is that if the PII contains profile-related data, the corresponding profile is created or updated in ACS.
There are several configuration steps to follow to enable Push Notifications in ACS, before Profiles can be created or updated based on Mobile App Subscription data:
- Have Push Notifications enabled.
- Create a Mobile Application.
- Integrate the Adobe Mobile SDK with your mobile application.
- Extend Resources for Push Notifications/Subscription.
For the discussion around creating a Profile, extending resources is important.
Extending Resources for Push Notifications/Subscriptions includes:
- Identifying the PII fields sent by the Mobile Application.
- Identifying the field that associates the PII to the Profile Data (for reconciliation).
In the Figure above, the Fields reflect the PII data sent by the Mobile Application; and the Link to profiles indicates the field that maps between the PII and the Profile Data, where cusEmail (Source page) maps to @email (Destination Path).
The mapping for Profile Data while extending the Subscriptions to an Application is READ-ONLY. It is used for reconciliation. The profile must be entered into the system and an email address for the profile must match an email from the Collect PII in order for the reconciliation to occur:
- Collect PII is received from a Mobile App for a user where their First Name is “Jane, Last Name is “Doe” and Email address is firstname.lastname@example.org
- Separately, the Profile Data must exist (for example, the data must be manually entered or already come from some other resource) where the profile’s Email address is email@example.com.
Using a Workflow in ACS allows an Administrator to uniquely identify and synchronize data between the AppSubscription (Subscriber) data and Profile or Recipient data. While a workflow-based update does NOT synchronize profile data in real time, it should not cause any undue database locks or overhead.
Adobe Campaign includes a workflow module that empowers you to orchestrate the full range of processes and tasks across the different modules of the application server. This comprehensive graphical environment lets you design processes including segmentation, campaign execution, file processing, human participation, and so on. To accomplish the synchronization between Subscribers and Profiles:
- Use a Query or Incremental query activity to get a list of the latest subscriptions.
- Use a Reconciliation Activity to find the profile.
- Add some verification process.
- Use Update Writer to create the profile.
The following requirements are assumed in this workflow:
- Any/All fields that have been extended should be available to create/update in the Profile Table.
- The Profile Table can be extended to support fields that are not natively supported (for example, T-Shirt Size).
- Any field from the AppSubscription table which is blank should not be updated in the Profile Table.
- Any record that has been Updated in the AppSubscription table should be included in the next run of the Workflow.
Here is how to create a workflow which will create/update Profiles based on Mobile App Subscriber data:
Create a New Workflow:
- From the Home Page, click Marketing Activities.
- Click the Create button.
- Select Workflow.
- In the Workflow wizard, select the New Workflow card and click Next.
- Provide a meaningful label (for example, "Create/Update profiles based on recently modified subscribers (Daily)") and click Next.
Add Workflow Elements:
- Expand Execution and drag a Start Element to the Stage.
- Drag a Scheduler Element to the Stage attached to Start.
- Expand Targeting and drag Incremental query to the Stage, attached to Scheduler.
- Expand Data management (ETL) and drag Update data to the Stage attached to Incremental query.
Configure the Scheduler:
- Double-click Scheduler.
- In the GENERAL tab, set Execution frequency (for example, "Daily"), Time (for example, "1:00:00 AM"), Start (for example, Today's date).
- In the PROPERTIES tab, set Label to something meaningful (for example, "Scheduler (Every Day at 1am)").
- Click Confirm or close the Scheduler dialog.
Configure the Incremental query:
- Double-click Incremental query
- In the PROPERTIES tab:
- Set Label to something meaningful (for example, "Recently modified subscribers to INSERT_MOBILE_APP_NAME_HERE").
- In the Resource field, click the Select an element icon.
- Search for "appSubscriptionRcp" and select Subscriptions to an application (nms:appSubscriptionRcp:appSubscriptionRcpDetail).
- Click Confirm.
- In the TARGET tab:
- Drag the Mobile application filter.
- Select a Mobile application name.
- Click Confirm.
- In the PROCESSED DATA tab:
- In Incremental mode, Select Use a date field.
- In Path to the date field, click the Select an element icon.
- Select Last modified (lastModified).
- Click Confirm.
- Click Confirm or close the Incremental query dialog.
Configure the Update data:
- Double-click Update data.
- In the GENERAL tab, set Label to something meaningful (for example, "Create/Update Profiles from Subscriber Data").
NOTE: In this case, the Workflow performs an UPSERT but since it's based on an Incremental Query data is only inserted. Changing the Query can affect what data is inserted or updated. In addition, settings in Fields to update (see below) determine what fields are inserted or updated under specific conditions. These settings can be unique for each application or customer. Take care when configuring these settings as there can be unintended consequences, as updating records in the Profile based on appSubscriptionRcp data can change users personal information without validation.
- In the IDENTIFICATION tab:
- Ensure that the Dimension to update field is set to Profile.
- In Reconciliation criteria for finding records, click Create element button.
- For Source, click the Select source icon, then:
- Select a field from the appSubscrsiptionRcp table as the reconciliation field. For exampls: email, crmId, marketingCloudId. In this case, Email (cusEmail) has been selected.
- Click Confirm.
- For Destination, select the Select destination icon.
- Select a field from Profiles to reconcile the data from appSubscriptionRcp table. For examle: email (or any extended field such as crmId, marketingCloudId). In this case, Email (email) is selected.
- Click Confirm.
- Click the Add button in the New reconciliation criterion.
- In the Fields to update tab:
- Click the Create element button for each field to store in Profile for each corresponding field from the appSubscriptionRcp table.
- For Source, select the field from appSubscriptionRcp table.
- For Destination, select the corresponding field from Profiles.
- For Taken into account if, select the Edit an expression icon and for each field selected for Source, select that field and add "!=''" (if the Source field is "[target/@cusEmail]" in the Expression editor make sure to type "[target/@cusEmail] != ''").
- The Taken into account if field ensures that thecorresponding field in Profile is updated only if the field contains a specific value.
- Make sure that the correct expression is used in the editor.
- When all of the fields to insert/update in Profile have been added, click Confirm or close the Update data dialog.