MuleSoft Accelerator for Retail
Use case 5 - Deliver relevancy with CDP
Synchronize and unify customer profile data into a customer data platform so that you can personalize interactions by customer segment
Contents
Overview
Delivering personalized interactions via marketing campaigns and commerce transactions is challenging. They require unified customer profile data to enable targeted and measurable campaigns. However, the data needed to drive impactful, personalized interactions is often siloed and inaccessible where it is needed most.
This use case unlocks and unifies critical customer profile data so that CMOs and their marketing teams can more effectively run targeted campaigns. By unifying data into a customer data platform (CDP), teams will be able to intelligently segment customers without duplication or manual processes.
Ultimately, retail organizations will be able to deliver more personalized interactions via marketing and commerce platforms faster.
Description
This use case provides MuleSoft System and Process APIs and implementation templates to surface customer profile data from OMS, ERP, PIM, and data lakes. The data can then be stored in Salesforce CDP for segmentation. The information in CDP can then be retrieved and leveraged at the marketing and commerce platform level for an improved user experience.
Glossary
Term | Definition |
---|---|
CDP | Customer Data Platform. |
CIM | The Cloud Information Model defines a set of standard data structures that can be used as canonical representations of common entities for integrating systems. |
MDM | A Master Data Management (MDM) solution provides an accurate, consistent, and complete copy of golden data for use by enterprise applications and business partners. Most solutions include data quality tools and workflow processes for managing conflicting updates. |
PIM | The system responsible for managing product information for sales orders. |
Goals
- Support the retrieval of real-time updates from Snowflake and Microsoft Azure for loyalty, subscription, email engagement, and web engagement.
- Display curated customer information in Salesforce CDP.
- Support the creation of email campaigns in Adobe Marketo.
- Support the creation of promotions in Salesforce B2C CommerceCloud.
Use case considerations
- Orders, customers, and products are ingested into Salesforce CDP from Salesforce Service Cloud using native integration.
- Salesforce CDP APIs support both bulk and streaming options to ingest data.
- Salesforce CDP publishes segments every 24 hours.
- The unified customer profile in CDP is based on the email address of the customer.
- The three segments created in this solution are as follows:
- Customers with Average/Total purchases worth more than $500 made in the last 6 months.
- Loyalty Program members with Loyalty points > 5000 and shoppers with Gold Tier subscription who haven't purchased in the last 6 months.
- Shoppers who haven't visited the site in one year.
Technical considerations
- Native integration from Salesforce CDP to Salesforce Marketing Cloud and Amazon S3 are used to send the targeted customer list.
- MDM System API is used to lookup Customer IDs.
End-to-end scenarios
- Curated email campaigns are created in Marketo for each of the segments created in Salesforce CDP.
- Promotion campaigns are created in Salesforce B2C Commerce Cloud for each of the segments created in Salesforce CDP.
Solution definition
This solution enables Salesforce CDP to create curated customer information by ingesting data from different sources and unifying them by the email address. This information is then published to Amazon S3 buckets. The data from the Amazon S3 buckets can be used to reach the targeted audience by creating email campaigns in Marketo and promotion campaigns in Salesforce B2C Commerce Cloud.
Before you begin
The Accelerators set up guide provides general information on getting started with the accelerator components. This includes instructions on setting up your local workstation for configuring and deploying the applications. |
Goal
Display email campaigns in Marketo and promotions in Salesforce B2C Commerce Cloud.
Steps
- Update a customer’s loyalty points in Snowflake.
- Update the number of page visits in Azure Cosmos DB.
- Publish the updated loyalty points and page visits to Salesforce CDP.
- Salesforce CDP runs on a schedule of 24 hours whereby these updates are sent to Marketo and Salesforce B2C Commerce Cloud.
- An email campaign is created in Marketo welcoming the customer to shop at a given discount.
- A promotion campaign is created in B2C Commerce Cloud and the customer will see a discount for their next purchase when they login to the B2C Commerce Cloud.
Use case extension
Segments can be published near real-time in Salesforce CDP.
Assumptions and constraints
The following guides or constrain the solution design at a high level:
- Loyalty, Subscription, Email Engagement, and Web Engagement objects are currently not supported in CIM. Hence, a custom representation of these objects are defined as RAML libraries in the API specifications.
- Loyalty, Subscription, Email Engagement, and Web Engagement data are imported into Snowflake and MS Azure Cosmos DB using
.csv
files.
API-led diagram
High-level architecture
Personalization with CDP
Data sync for customers, products, and orders
Sequence diagram
The diagram below illustrates the sequence of processing the loyalty, subscription, email engagement, and web engagement of a customer from Snowflake and Azure and integrating it with Salesforce CDP. The curated customer information from Salesforce CDP can then be used to connect to Marketo and Salesforce B2C Commerce Cloud.
Processing logic
The primary handling and orchestration of retrieving real-time or batch updates of loyalty, subscription, email engagement, and web engagement is implemented in the DataLake Process API. This process can be described as follows:
- Retrieve loyalty and subscription data using the Snowflake System API.
- Retrieve email engagement and web engagement using the Azure System API.
- Publish the retrieved data to the queue.
- The CDP Process API picks up the data from the queue and invokes the Salesforce CDP System API to publish the retrieved data to CDP.
- Data streams are created in Salesforce CDP to ingest the aforementioned data.
- Salesforce CDP creates a unified profile using the email address attribute.
- Salesforce CDP publishes the segments every 24 hours to Amazon S3.
- The DataLake Process API gets notified whenever a new file is uploaded to S3, it processes it and then publishes it to the queue.
- The Marketing Process API subscribes to the queue.
- The Marketing Process API creates email campaigns in Marketo. If an email campaign already exists, it updates the customer lists in Marketo to ensure only new customers get the emails.
- The Marketing Process API looks up the MDM Database using the MDM System API to get the B2C Customer ID given the email address.
- Using the B2C Customer ID, the Marketing Process API applies discount promotions to the customers.
Success conditions
After successfully completing the processing in all target systems, the following conditions must be met:
- The number of customers in Salesforce CDP segments match the customer list in Marketo email campaigns and B2C Commerce Cloud promotion campaigns.
- The customer receives an email inviting them to visit the B2C Commerce storefront.
- The customer gets a discount promotion applied when they purchase a product in B2C Commerce Cloud.
Mappings
Source type mappings
The following table summarizes how representations of order, customer, and product from each system are mapped to CIM types:
Source System | Source Type | CIM Types | Mapping Notes |
---|---|---|---|
B2C Commerce | Product | Product ProductCategory ProductCatalog PriceBook |
Relevant fields only |
Salesforce | Product,Pricebook | Product ProductCategory ProductCatalog PriceBook |
Relevant fields only |
Salesforce | Orders | SalesOrder | Relevant fields only |
Salesforce | Account | Organization Customer Contact Address Contact Email Contact Phone |
Relevant fields only |
Person Account | Individual Customer Contact Address Contact Email Contact Phone |
Relevant fields only | |
Contact | Individual Contact Address Contact Email Contact Phone |
Similar mappings as for Person Accounts but at the Individual level only |
Target type mappings
The following table summarizes how representations of a product from each system is mapped from CIM types:
Target System | CIM Type | Target Types | Mapping Notes |
---|---|---|---|
Salesforce CDP | Product ProductCategory ProductCatalog PriceBook |
Product ProductCategory ProductCatalog PriceBook |
Relevant fields only |
Salesforce CDP | Product ProductCategory ProductCatalog PriceBook |
Product PriceBook |
Relevant fields only |
Salesforce CDP | SalesOrder | Orders | Relevant fields only |
Salesforce CDP | Customer Individual Contact Address Contact Email Contact Phone |
PersonAccount | Relevant fields only |
Customer Organization Contact Address Contact Email Contact Phone |
Account | Address fields mapped directly | |
Individual Contact Address Contact Email Contact Phone |
Contact | Similar mappings as for Person Accounts but at the Individual level only |
Downloadable assets
System APIs
- RCG Azure Cosmos DB System API | API Specification | Implementation Template
- RCG B2C Commerce System API | API Specification | Implementation Template
- RCG Marketo System API | API Specification | Implementation Template
- RCG Salesforce CDP System API | API Specification | Implementation Template
- RCG Snowflake System API | API Specification | Implementation Template
Process APIs
- RCG Customer Data Platform Process API | API Specification | Implementation Template
- RCG DataLake Process API | API Specification | Implementation Template
- RCG Marketing Process API | API Specification | Implementation Template