Creating and updating profile information based on mobile application data
This page describes the steps to develop a workflow which creates/updates profile data after a Mobile Application sends Collect PII data, on a scheduled basis.
- PIIstands for “Personally Identifiable Information”. It can be any data, including information that does not appear in the Profile table from your Campaign database like, for example, Analytics for Mobile Points of Interest . The PII is defined by the Mobile App Developer, usually with a Marketer.
- Collect PIIis an HTTP-POST operation to a Rest API in Adobe Campaign Standard from a Mobile App.
The goal of this use case is to create or update a Campaign Standard profile, if the PII data returned by a Mobile Application contains profile-related data.
There are several configuration steps to follow to enable push notifications in Campaign Standard, before Profiles can be created or updated based on Mobile App Subscription data:
Step 1 - Extend the Profile resource for Push Notifications/Subscriptions
To be able to create or update the Profile resource with PII data, you must first extend the Profile resource with the desired fields. To do this:
- Identify the PII fields that are sent by the Mobile Application.
- Identify the field to use for reconciliation to associate the PII data with the Profile Data.
In this example, the@email.
Fieldssection reflect the PII data sent by the Mobile Application. The
Link to profilessection indicates the field that is used to associate the PII with the Profile Data, where
The mapping for Profile Data while extending the
Subscriptions to an Applicationresource is READ-ONLY. It is used for reconciliation. The profile must be entered into the system with the necessary data to reconcile the profile with the PII data. In our case, an email address for the profile must match an email from the Collect PII in order for the reconciliation to occur:
Step 2 - Create the workflow
Using a Workflow in Campaign Standard 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.
The main steps to build the workflow are:
- Use aQueryorIncremental queryactivity to get a list of the latest subscriptions.
- Use aReconciliationactivity to map the PII data with the profile.
- Add some verification process.
- Use anUpdate datato update or create the profile with the PII data.
The following requirements are assumed in this workflow:
- Any/All fields that have been extended should be available to create/update 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.
To build the workflow, follow the steps below:
- Drag and drop the following activities into the workspace and link them together:
- Incremental query
- Update data
- Configure theScheduleractivity. In theGeneraltab, set theExecution frequency(for example, "Daily"), theTime(for example, "1:00:00 AM"), and theStart(for example, Today's date).
- Configure theIncremental queryactivity.
- In thePropertiestab, click theSelect an elementicon of theResourcefield, then select theSubscriptions to an application (nms:appSubscriptionRcp:appSubscriptionRcpDetail)element.
- In theTargettab, drag theMobile applicationfilter, then select a Mobile application name.
- In theProcessed datatab, selectUse a date field, then add theLast modified (lastModified)field asPath to the date field.
- Configure theUpdate dataactivity.
- In theIdentificationtab, make sure that theDimension to updatefield is set to "Profiles (profile)", then click theCreate elementbutton to add a field as a reconciliation criteria.
- In theSourcefield, select a field from the appSubscrsiptionRcp table as a reconciliation field. It can be the profile's email, crmId, marketingCloudId, etc. In this example case, we will use the "Email (cusEmail)" field.
- In theDestinationfield, select a field from the profile table to reconcile the data from the appSubscriptionRcp table. It can be the profile's email, or any extended field such as crmId, marketingCloudId, etc. In this example, we need to select the "Email (email)" field to map it with the "Email (cusEmail)" field from the appSubscriptionRcp table.
- In theFields to updatetab, click theCreate elementbutton, then map the fields that are coming from the appSubscriptionRcp table (Sourcefield) with the fields that you want to update in the Profile table (Destinationfield).
- In theEnabled iffield, add an expression to ensure that the corresponding field in the Profile table is updated only if the source field contains a value. To do this, select the field from the list, then add the "!=''" expression (if the Source field is[target/@cusEmail]in the Expression editor make sure to type[target/@cusEmail] != ''").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 the Fields to update tab 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.
- When all of the fields to insert/update in Profile have been added, clickConfirm.
- Save the workflow, then click Start to initiate the Workflow process.