Skip to main content

#Data Cloud69 debatiendo

Hi everyone,

I’m deploying a Data Cloud/Data 360 + Prompt Builder solution from one Salesforce org to another using a package and Data Kit.

The Data Kit includes:

  • Data Stream Bundle
  • Case and Knowledge Data Streams
  • Case and Knowledge Data Models
  • Case and Knowledge Search Indexes
  • Case and Knowledge Retrievers

The Data Cloud components are deployed, but my Similar Cases Prompt Template fails during deployment with:

The Prompt Template uses:

  • Case Retriever
  • Knowledge Retriever

Dependency:

Data Source

→ Data Streams

→ Data Models

→ Search Indexes

→ Retrievers

→ Prompt Template

My question:

  

What is the Salesforce-supported deployment approach for Data Cloud/Data 360 Retrievers and Prompt Builder Prompt Templates?

Do the Data Kit and all Data Cloud dependencies need to be fully deployed and available in the target org before deploying the Prompt Template?

Or can the Data Kit, Retrievers, and Prompt Template be deployed together?

Could the “cannot describe data provider”

error occur because the Retriever dependencies are not yet resolved when the Prompt Template is being validated? 

 

Any official Salesforce documentation or practical guidance would be appreciated.

Thanks! 

 

#Salesforce Developer  #Trailhead  #Sales Cloud  #Data360  #Data Cloud

1 respuesta
  1. 11 ago, 22:11

    Great write-up of the dependency chain, and your last hypothesis is essentially right. Here is how these pieces actually deploy: 

     

    1) Supported approach for the Data Cloud foundation. 

    The Deploy Data Kit Components flow (or the Data Kit Publishing Sequence) is the supported way to move the core Data 360 objects. It deploys components sequentially in dependency order and waits for each component to finish before starting the next (requires REST API v61.0 or later). That covers Data Stream Bundles, Data Lake and Model Objects, Data Transforms, Calculated Insights, Data Graphs, Identity Resolution, and Segments. 

     

    2) The key catch: Retrievers, Search Indexes, and Prompt Templates are not standard Data Kit content. 

    They are not in the Data Kit deployable-component list, so they do not travel with the Data Stream or Model bundle. What is packageable is governed by the Data 360 Extensibility Readiness Matrix (linked on that same dev-guide page), so check it for the current status of Search Indexes and Retrievers. Prompt Templates deploy as their own metadata (GenAiPromptTemplate) through the Metadata API, packages, or change sets, separate from the Data Kit. 

     

    3) Do the dependencies need to exist first? Yes. 

    Your chain (Data Source, Data Streams, DMOs, Search Indexes, Retrievers, Prompt Template) has to be fully deployed and provisioned in the target before the Prompt Template validates: DMOs mapped, Search Indexes actually built, and Retrievers present and describable. Deploying the Prompt Template in the same pass as its retrievers is the risky part, because the template resolves its retriever references at deploy time. 

     

    4) The describe-data-provider error. 

    That lines up with what you suspected: when the Prompt Template (or the retriever it points to) is validated, its underlying data provider (the DMO, Search Index, or Retriever) is not resolvable yet in the target org, so the platform cannot describe it. Sequencing fixes it. 

     

    Recommended sequence: 

    1. Deploy the Data Cloud foundation via the Data Kit flow (streams, DMOs, mappings) and let it finish. 

    2. Create or verify the Search Indexes and Retrievers in the target and confirm they are active and queryable (rebuild indexes if needed). 

    3. Deploy the Prompt Template last, once its retrievers describe cleanly. 

     

    Reference: "Deploy Data Kit Components" in the Data 360 Developer Guide (

    developer.salesforce.com/docs/data/data-cloud-dev). If it still will not resolve after sequencing, confirm Data Cloud is provisioned and the retriever feature is enabled in the target, since a missing provider throws the same describe error.

0/9000

I’m currently working on Salesforce Marketing Cloud Next in a sandbox environment and I’m trying to understand the best approach for moving the entire setup and configuration to a UAT environment. 

 

My questions are:

 

 

 

 

  • Can this be automated using VS Code + Salesforce CLI / metadata deployment?

 

 

  • Which types of configurations and assets can be migrated automatically, and which ones need to be recreated manually?

 

 

  • Are there any best practices for promoting configurations from sandbox → UAT → production in Marketing Cloud Next?

 

 

 

 

I’d also love to hear how you approached this in real projects and what tools or processes you used for deployment and version control.

 

 

Thanks! 

 

#SFMC  #SFMC Implementation  #Data Cloud

0/9000

I am unable to find a proper step-by-step instruction on how to use Fully Qualified Keys in Data Cloud. There is a documentation, but I fail to see the changes and value in the system when I try things out: https://help.salesforce.com/s/articleView?id=data.c360_a_fully_qualified_keys.htm&type=5

 

 

Suppose we have the following Data Streams: 

A contact from my CRM system

How to use 'Fully Qualifies Keys' in Data Cloud?A subscriber from Marketing Cloudimage.png

 

A consolidated Engagement table:

image.png

 

First of all, I would map the contact and subscriber into the Individual DMO with the recordId used as the primary Key. But before I do that, I could already create and add 'Key Qualifiers' to both DLOs, so that we could have both records in the Individual DMO without the Id's clashing (at least thats how I understood 'Fully Qualified Keys'?)  

Now, how would my Key Qualifier look like? I thought that I should create a new one and define a name and label. In my case, I would create one with the name 'CRM' and one with the name 'MC'. And then I would add it to the recordId field, which is my primary key. 

 

This is my first DLO before

image.png

 

This is after adding the Key Qualifier:

image.pngI did the same for the other DLO. Does this already suffice to be able to map both DLOs now into the Individual DMO without the risk of running into problems later on? This is the Individual DMOimage.png

I woul'dve expected the KQ_Id__c field to be populated with 'CRM_1' or 'MC_1' instead of just the source system but maybe theres something i miss. 

 

Is this how the FQK's are suppose to be set up? 

 

Then there is also the Engagement table, is it even possible to use FQK's when the data comes from one data stream with different systems? I know that I should add Key Qualifiers to Primary and Foreign Keys, in the engagement table i would add a key qualifier to the EmailEngagementId, but what key qualifier do i add to the Individual field as the Individuals come from multiple sources? 

 

Post got bigger than expected, thanks for your help in advance! 

 

 

#Data Cloud

5 respuestas
0/9000

Title: Data Cloud - Shopping Cart Product Engagement (SSPC) object not returning records

Hi everyone,

I'm facing an issue in Salesforce Data Cloud related to Marketing Cloud Next abandoned shopping cart data.

Issue:

  • The Shopping Cart Engagement (SSC) object is returning records correctly.
  • However, the Shopping Cart Product Engagement (SSPC) object is not returning any records.

What I've verified:

  • The abandoned shopping cart event is configured and triggered successfully.
  • SSC records are being created in Data Cloud.
  • SSPC object exists, but it contains 0 records.
  • The repeater works with SSC, but I need product-level data from SSPC.

My questions are:

  1. Under what conditions are SSPC records created?
  2. Does SSPC require any additional configuration or mapping beyond SSC?
  3. Are there any known prerequisites for populating the Shopping Cart Product Engagement object?
  4. Has anyone experienced SSC receiving records while SSPC remains empty?

Any guidance or troubleshooting suggestions would be greatly appreciated.

Thank you!   

 

@* Data 360 * 

3 respuestas
  1. 4 ago, 14:15

    Hi Hemanth, 

     

    This is a common one, and the symptom you're describing — SSC populating while SSPC stays at zero — almost always points to mapping rather than the event itself. Since your SSC records are landing, the event is firing fine. 

     

    The key thing: cart and order engagement events don't get their own data streams. They're consolidated into a single Behavioral Events stream, and the DLO that gets auto-created has to be mapped to each target DMO separately. So on the DMO side of the mapping canvas you need Shopping Cart Product Engagement added as its own target, alongside Shopping Cart Engagement. If only SSC was added, SSC fills and SSPC stays empty — exactly what you're seeing. 

     

    Four things worth checking, in order: 

     

    1. Primary key. eventId has to be mapped to the primary key of every DMO, not just the first one. For SSPC that's ssot__Id__c. If it's unmapped, nothing lands — and as a side effect your Data Transform will run full instead of incremental, which also costs more. 

     

    2. The relationship back to the cart. SSPC is Many-to-One to Shopping Cart Engagement via ssot__ShoppingCartEngagementId__c. If that's not mapped, the line items have nothing to attach to. 

     

    3. Product-level fields in the payload. SSPC expects ssot__ProductId__c, and usually ssot__ProductSKUnumber__c, ssot__ProductQuantity__c and ssot__ProductPrice__c. Worth confirming your cart event is actually sending a line-item array and not just cart-level totals — if the products array isn't in the payload, there's nothing to map. 

     

    4. Validate the mappings. Setup → Marketing Features → Triggers management page checks whether your DMO mappings are configured correctly and surfaces errors. Clear everything there before troubleshooting further, then let the transform re-run. 

     

    To your questions directly: 

     

    SSPC records are created when the behavioral event carries product line-item data and the DLO is mapped to the SSPC DMO with both the primary key and the cart reference mapped. Yes, it needs configuration beyond SSC — same data stream, separate DMO mapping. And yes, SSC-populated-but-SSPC-empty is a very typical outcome of mapping only the cart-level DMO. 

     

    Hope that helps — let me know what the Triggers page shows. 

     

     

0/9000

I am trying to deploy a permission set from sandbox to sandbox and found that i am getting below error.

In field: object - no CustomObject named DataActionDefinition found

 Every time i fix this one new object comes up. 

I think all these objects are related to datacloud and i cannot see these objects in target sandbox. 

How can i fix this issue? I am not sure how many datacloud objects exists. How can i remove all data cloud references from source org? 

 

#Salesforce Developer  #Salesforce Admin  #Data Cloud  #Deployment

1 respuesta
  1. Sushil Kumar (UKG) Forum Ambassador
    5 ago, 12:46
    Do you have source control ? So you need to check is how did these object permissions came inside your permissions set. If you compare using your source control, you can remove the extra objects from xml. If you don’t have source control, you can do xml compare from source to target.
0/9000

An Individual in our Data Cloud has multiple Contact Point Emails for example 2 private emails, 1 business email. When we build an activation, we need to reach all of these email addresses separately, not just one.   

The problem: in the activation setup, the Contact Point Email section has "Max # of Attribute Values" locked to 1. Even when we use a custom DMO on a file-based activation, we can increase this number, but the output is still one row per Individual with multiple emails packed into the same row (as extra columns or JSON). Marketing Cloud cannot process this we need one row per Contact Point, not one row per Individual.   

Salesforce Support confirmed that this fan-out format is not natively supported by the activation engine.

Has anyone found a way to activate all Contact Points per Individual as separate rows?

 

@* Data 360 * 

3 respuestas
  1. 3 ago, 03:32

    Hi @Omar Kharrat

    Here is what you can try: 

    1. Build a custom DLO/DMO that's a

    bridge/fan-out table: one row per (Individual, Contact Point Email) pair — basically your Contact Point Email DMO reshaped as an engagement-style child object, related many-to-one back to Individual. 

    2. Instead of segmenting on Individual or Unified Individual, set "Segment On" to that fan-out DMO. 

    3. Now every row in your segment membership is a contact point, not a person — so when you activate, the output has one row per email address. 

    4. Use an Activation Template here, since it lets you tie the specific contact point to the record without invoking identity resolution at all. With Activation Templates, the Contact Point to use is tied to the Individual or Engagement record, without any Identity Resolution needed.  

     

    I haven't run this exact "3 emails per individual" scenario end-to-end myself yet, so treat it as an architecture direction to prototype rather than a guaranteed fix. 

     

    For more details, you can refer this:

    https://medium.com/@marketingcloudtips/marketing-cloud-next-understanding-which-email-addresses-are-used-for-sending-ca52aaace7d9

0/9000

Hi everyone,

I am looking to dive deep into Salesforce Data Cloud (Data 360), but I am facing a real challenge as a beginner.

While platforms like Trailhead are great for definitions and theoretical concepts, they often lack the depth needed for true hands-on learning, self-paced onboarding, and job readiness.

Here is the current reality for anyone trying to learn Data Cloud independently:

  • Scattered Resources: High-quality learning material is completely scattered across the internet. It feels impossible to find a structured path.
  • Lack of Beginner Tutorials: If you search YouTube or Google, you will find endless tutorials for Sales Cloud or Service Cloud. However, Data Cloud resources are extremely limited.
  • Only Short Glimpses: The existing free videos only show short clips of mapping, identity resolution, or segmentation. There is almost nothing that teaches Data Cloud from "A to Z" or scratch for someone with zero prior experience.
  • No Hands-on Orgs: Getting a proper sandbox or practice environment to learn on our own from home is a massive hurdle.

I want to learn this entirely on my own, at home, without paying hefty coaching fees.

My questions to the amazing leaders and experts in this community:

  1. Is it truly possible for a beginner to master Data Cloud from scratch through self-study?
  2. Apart from Trailhead, what structured resources, documentation, or hidden guides can we follow?
  3. How can a beginner get practical, hands-on experience and become job-ready on their own?

Would love to hear your insights, tips, and roadmaps! Let's help the community grow. 👇

#data360 #Trailhead Challenges #Data Cloud

9 comentarios
0/9000
8 respuestas
  1. 28 jun, 04:06

    @Marcos Gomes

     

    In my opinion, governance should come before autonomy. Agentforce is only as reliable as the data and permissions it is given.

    A practical approach is:

    • Clean legacy data first by removing duplicates, standardizing values, archiving obsolete records, and defining data quality rules.
    • Implement strong data governance with clear ownership, validation rules, monitoring, and regular data quality reviews.
    • Apply least-privilege access so AI agents only access the data they genuinely need. Sensitive fields should be protected with Field-Level Security, Permission Sets, Shield Platform Encryption, and Data Cloud data policies where applicable.
    • Establish trust boundaries. Don't allow autonomous agents to perform high-risk actions without human approval. Critical decisions (pricing, financial updates, customer record changes, etc.) should include approval workflows or human-in-the-loop checkpoints.
    • Continuously monitor and audit agent activity using logs, event monitoring, and feedback loops to identify incorrect decisions and improve prompts, policies, or data quality.

    Ultimately, successful Agentforce implementations depend less on the AI model itself and more on the organization's data quality, governance framework, and security controls. Clean, governed, and well-permissioned data is what enables AI agents to make trustworthy decisions.

0/9000

I'm attempting to update Contact records in buik with the value generated from our Calculated Insights. We had a third party vendor setup our calculated insights and were told we would be able to use a flow to map these values. We have roughly 20K+ Contacts that need this update. Otherwise, we would need to clone the calculated insights specifically for the Contacts in order to use the Data Cloud Copy Field feature.    Thanks in advance.   

1 respuesta
  1. 28 jul, 01:44

    Hi @David Loyola

     

    Try this: Set up a Data Action on your Calculated Insight that triggers a Flow, and have that Flow update the matching Contact records. The Copy Field feature your vendor mentioned as the alternative is more rigid and is exactly why they suggested cloning the CIs, you'd be duplicating work to fit that feature's constraints. The Data Action to Flow path avoids that entirely. 

     

    Since you have 20K+ Contact updates, that will hit Flow and DML governor limits if it fires per-record. Make sure the Flow is built to batch rather than update one Contact at a time, or route it through a bulk-friendly pattern. Also, confirm that your Calculated Insight has a dimension that maps cleanly to a Contact identifier, because that mapping is what makes the write-back resolve to the right records.

0/9000

I created two formula fields in my Data Stream:

  • One returns Text
  • One returns Number

Both are derived from the TotalAmount field in the Order object.

In Data Explorer, all three fields (the original TotalAmount and the two formulas) show correct values.

But when I try to use these fields in a Batch Data Transform → Transform Node → Formula Field, I cannot see any of them when applying the LAG function.

Additionally, I noticed that Currency fields are not supported in the transform node for LAG.

So even though the values are correct in Data Explorer, they are not available for window functions like LAG inside Batch Data Transforms.

How can I handle this scenario if I want to forecast using TotalAmount?   

2 respuestas
  1. 27 jul, 14:24

    @Sourabh Dondekar

    :  Data Cloud uses the static exchange rates and currency codes defined in your CRM org for processes like data transforms, segmentation, and calculated insights.  

    In a single-currency organization, Data Cloud syncs its currency data from your Salesforce org via DLO named Static_Currency_Rates_<CRM orgID>. This gets synced automatically, so you can check if you see your desired details in this DLO. If not, this is where we need to focus. 

     

    In a multiple-currency organization, Salesforce creates a data stream named Static_CurrencyType_<CRM orgID>. Each CRM org manages its own currencies and conversion rates. Here you can check if the number of records (i.e. currencies) are same in both DLOs. If not, this is what we shall focus.  

    More details are here:

    https://help.salesforce.com/s/articleView?id=data.c360_a_multi_currency_how_it_works.htm&type=5

     

     

    Please check, and let me know of these, then we shall be able to explore this further. 

0/9000