Entities
An entity is a curated view of one Salesforce object: which fields an agent sees, in what order, and what they mean — along with the related records, parent records, and computed values that travel with them.
What an entity holds
| Part | What it is |
|---|---|
| Fields | A curated list per level, in render order |
| Instructions | Business meaning, for the whole record or per field |
| Related lists | Child records as rows, filtered and capped |
| References | A parent record embedded via a lookup |
| Library elements | The metrics, formulas, and enrichments it uses |
An entity is configuration only — it holds no data. Agents receive data assembled from its active version, not from the draft you edit; see Versions.
Label and API name
| Name | What it is |
|---|---|
| Label | What people read. Change it anytime |
| API name | The key tools, domains, and library elements reference. Generated from the label, editable from the builder’s title, must stay unique |
Changing the API name breaks anything pinned to the old one — Agentforce actions and MCP clients stop resolving, and observability history stays filed under it. Domains and library elements reference the record, not the name, and follow automatically.
One object, several entities
Two teams can see the same object differently:
One entity per object is the default — the one used when a caller names the object without naming an entity. The first entity created for an object becomes the default; later ones are named views, reached by name or through a domain. Make Default on the row or card menu moves the flag, and the incumbent becomes a named view. A default can’t be deleted while named views exist, and changing it is admin-only.
When an object has several entities, each one’s description is what tells them apart — on the catalog card for you, and in Get Catalog for the agent picking between them. Two entities on one object with no descriptions leave the agent guessing from names alone.
Which entity answers a call
A caller names an entity, a domain, or neither. Each case resolves one way:
| The caller names | What answers |
|---|---|
| An entity, by API name | That entity, whatever domain it sits in |
| A domain and an object | The entity that domain carries for the object |
| An object only | That object’s default entity |
| An entity and a domain | Nothing — this is an error, not a merge |
Add your own
Any queryable object can host an entity, including custom objects: Entities → +, pick the object, name it. The first entity for an object is seeded with a field list from its page layout. See Your first entity.
What an entity is not
- Not a copy of your data. Nothing is indexed, cached, or synced — payloads are built at call time.
- Not a security boundary. Curating a field out hides it; it doesn’t protect it. Use field-level security — see Security.
- Not per-user. One shared definition; payloads differ only because permissions differ. A different audience means a second entity, usually through a domain.
What’s next
- Levels — how one entity renders at three depths.