scoping-agent-user-permissions
Scoping Agent-User Permissions (Read-only object + full FLS, no ViewAll/ModifyAll)
What this skill is for
An Agentforce Service Agent runs its actions as the Einstein Agent User. That user needs a permission set granting access to the objects/fields the demo touches. Two hard constraints shape it:
- Standing user requirement: the agent user must NOT have
ViewAllorModifyAllon any object — but it should have "view, edit, view and read/write access on all fields." Translation: object perms withviewAllRecords=false+modifyAllRecords=false, and full FLS (readable=true+editable=true) on every field. - License reality (verified): the Einstein Agent User license rejects object Create/Edit on Claim / ClaimParticipant / ClaimCoverage / ClaimItem / InsurancePolicy* — deploy fails with
FIELD_INTEGRITY_EXCEPTION "user license doesn't allow the permission: Create/Edit ...". So you cannot grant object C/E even if you wanted to.
Resolution: object access = Read only (allowRead=true, everything else false), full FLS on all fields, and every write happens in a system-context flow (see the building-system-context-agent-data-flows skill) so the agent user never needs object C/E.
A real, deployed, assigned example ships at assets/example-agent-user-permset.permissionset-meta.xml (ClaimSecure's ClaimSecure_Object_Access_to_ASA, 9 objects, ~200 FLS entries).
The exact object-permission block
FLS is license-independent, so editable=true is safe on every field even though the object is read-only. Object CRUD is where the license bites — keep it Read-only: