In B2B sales organizations using Salesforce, inconsistent permission sets across the sales team create two distinct failure modes: reps being blocked from legitimate actions (e.g., commenting on tasks they created) and reps having too much access (e.g., reassigning account or opportunity ownership). A structured permissions audit resolves both by standardizing roles and enforcing explicit ownership controls.
This pattern emerged from work with [1], where ad-hoc permission assignments had left different sales reps with different access levels, causing both friction and data integrity risk.
A rep who creates a task and assigns it to a colleague may find they cannot comment on or edit that task — because the system treats the assignee as the owner and blocks edits from anyone else. This is a common side effect of rules designed to prevent tampering, applied too broadly.
Symptom: "Insufficient access rights on object ID" errors when a rep tries to interact with a record they created but don't own.
Reps with elevated permissions (often granted informally to solve a one-off problem) may be able to change account owners, reassign opportunities, or modify records belonging to colleagues. In commission-based or territory-based sales orgs, this creates real risk.
Symptom: Non-admin users able to change Account Owner or Opportunity Owner fields.
All reps at the same level should have identical permission sets. Differences in access between peers are a maintenance liability and a source of confusion.
Reps should be able to:
- Create and edit their own Accounts, Contacts, Opportunities, and Tasks
- Comment on any Task (including tasks assigned to others)
- View all Accounts and Opportunities (in organizations where territory visibility is shared)
Reps should not be able to:
- Change the Owner of an Account or Opportunity
- Edit or delete comments/notes written by another user
- Modify field values on records they don't own (beyond commenting)
Ownership changes — Account Owner, Opportunity Owner — should be restricted to admin-level users only. This prevents accidental or intentional reassignment and keeps the audit trail clean.
Tasks require particular care because they involve two distinct actors: the creator (who defines the work) and the assignee (who performs it). A well-designed permission model allows:
| Action | Creator | Assignee | Other Reps | Admin |
|---|---|---|---|---|
| Edit Task details | ✅ | ✅ | ❌ | ✅ |
| Add a Comment | ✅ | ✅ | ✅ | ✅ |
| Edit another's Comment | ❌ | ❌ | ❌ | ✅ |
| Delete another's Comment | ❌ | ❌ | ❌ | ✅ |
The key principle: commenting is collaborative; editing is ownership-gated.
For the comment field itself, a timestamped feed (name + timestamp appended on each entry) is preferable to a single free-text box, which obscures who wrote what and when. See [2] for implementation details.
Salesforce enforces access at multiple levels, which is why a single "permission set" audit may not catch everything:
When a rep reports unexpected access errors, check all four layers before concluding it's a permission set issue.