I am currently designing a data model around Marketing Cloud for one of my clients and I am facing some conceptual questions regarding the integration with Service Cloud via the Connector and Apache Kafka via API Calls.
Service Cloud will be the master of data (accounts, contacts, leads, custom objects) and Kafka will send API calls to trigger Journeys for transactional messages (confirmation email after registration for eg).
I have to major questions regarding my design :
What is the best way to sync Service Cloud objects with populations in Contact Builder ? I have two records types in the Person Account object that represents two populations. Data Stream won't make the distinction between these two records types. So I imagined something like this :
- Retrieve the "Account" Object with the Data Stream in the "Account" Synchronized data extension
- Run an automation with two Query activities on the "Account" Synchronized Data Extension that populates two tables in MC relative to the two populations in Contact Builder.
My second question is linked to a special use case :
- An account is created in a system X
- system X sends two API calls. One to Service Cloud to create the Account and one to Journey Builder to fire a confirmation email journey
in my understanding of Contact Builder and Journey Builder, the Account that is created will be duplicated (two records with two different ContactID) in Marketing Cloud. First one will be created by Journey Builder after injection into the Journey. Second one will be created after the Data stream synchronization and automation completeness.
This goes against my vision of a single record per Account in Marketing Cloud.
Can you please give me some insights on these questions ? Feel free to complete or ask for more clarification.