Grounding Agentforce in Data 360: Structured Data, Intelligent Context and the Latency Trap
An ungrounded agent is a very fluent stranger. It will answer questions about your customer's order with the confidence of someone who has read the file, having read nothing at all.
Grounding is the work that fixes this, and in the Salesforce stack it is almost entirely a Data 360 job rather than an Agentforce one. This post covers the four grounding paths available, when each is the right answer, and the latency and governance traps that only show up after go-live.
Last verified against Salesforce Architects and Developer documentation on 13 September 2026.
Grounding is not one thing
People say "we'll ground it in Data Cloud" as though that were a single switch. There are four distinct mechanisms, with different costs, latencies and failure modes.
| Path | What it retrieves | Typical latency | Best for |
|---|---|---|---|
| Structured retrieval from DMOs | Rows: this customer, this order, this entitlement | Fast, predictable | Anything customer-specific |
| Unified profile lookup | The resolved individual across all sources | Fast | Identity, consent, contact points |
| Intelligent Context (unstructured) | Chunks of PDFs, contracts, manuals, transcripts | Retrieval + embedding lookup | Policy, troubleshooting, "how does this work" |
| Zero-copy federated query | Rows that never left the warehouse | Source-dependent, often the worst case | Wide history, compliance-pinned data |
Most production agents need the first three. The fourth is where projects get into trouble, and we will come back to it.
Structured grounding: the part people skip
The single most valuable grounding asset is the unified profile, and it is produced by identity resolution, not by an AI feature.
The chain is: source data lands in Data Lake Objects (DLOs) → harmonised into Data Model Objects (DMOs) against the Customer 360 Data Model → identity resolution runs matching, deep matching, clustering and reconciliation → identity link objects record which source record became which unified profile → the agent retrieves against that profile.
Two things follow from this that teams learn the hard way: