Manual Sharing
Manual sharing is a Salesforce sharing mechanism that lets a record owner (or a user with Modify All Data) grant access to a specific record to another user, role, or public group, without changing any other access settings.
Definition
Manual sharing is a Salesforce sharing mechanism that lets a record owner (or a user with Modify All Data) grant access to a specific record to another user, role, or public group, without changing any other access settings. It is the platform's escape hatch for one-off sharing exceptions: situations where the standard sharing model (organization-wide defaults, role hierarchy, sharing rules) does not grant access to a person who needs to see this single record.
A manual share is created from the Sharing button on the record detail page (Classic) or from the Sharing modal in Lightning. The grantor picks the user, group, or role to share with, sets the access level (Read Only or Read/Write), and saves. The share record persists in the object's Share table (AccountShare, OpportunityShare, custom_object__Share) until manually removed or until the underlying ownership changes and the platform recalculates. Manual sharing is being supplemented by Restriction Rules and other modern sharing mechanisms, but it remains the foundation for record-level sharing flexibility.
How manual sharing extends record-level access
When manual sharing kicks in
Manual sharing exists because the standard sharing model (OWD + Role Hierarchy + Sharing Rules) cannot anticipate every legitimate access need. A salesperson assigned to a deal might invite a sales engineer to view the Opportunity for a specific demo. A manager might share a Case with a peer manager outside their role chain. A partner-portal user might need to see a single Account record. Each of these is a one-off exception, and manual sharing is the right tool for it. Trying to express one-off exceptions through sharing rules creates rule sprawl and performance issues.
The share record and the Share table
Every manual share creates a row in the object's Share table: AccountShare, OpportunityShare, MyCustomObject__Share. The row stores the parent record ID, the user/group/role receiving access, the access level (Read or Edit), and the row cause (Manual is the standard cause for user-initiated shares). Salesforce uses these rows during the access check to determine if a user can see a given record. Manual shares are visible in the sharing UI on the parent record and can be queried via SOQL for auditing.
Who can create manual shares
Manual sharing requires either record ownership or one of the elevated permissions (Modify All Data on the object, Modify All Data on the org, or specific Manual Sharing permissions on the user's profile). Standard users can share records they own. Admins can share any record. The Share access level granted via manual share cannot exceed the grantor's own access, which prevents privilege escalation through sharing.
Manual shares are not automatic across ownership changes
When the owner of a record changes, manual shares granted by the previous owner are automatically deleted. The platform assumes the new owner will re-establish sharing decisions on their own terms. This is usually the right behavior but occasionally causes confusion when a transfer cascade removes shares that were still needed. Document critical manual shares in the record description or a custom field so the new owner can re-establish them after transfer.
Sharing on lookup-related records
Manual sharing on a parent does not propagate to child records that are connected via lookup relationships. Each child needs its own sharing decision. Master-detail relationships propagate the parent sharing automatically because of inheritance, but lookup does not. Plan parent-child sharing as a deliberate exercise; the platform will not infer what the right propagation should be on your behalf.
Manual sharing through Apex
For programmatic sharing that needs to fire automatically (without requiring a user to click the Share button), Apex code can insert rows into the Share table directly: insert new AccountShare(AccountId = parentId, UserOrGroupId = userId, AccessLevel = ''Read'', RowCause = ''Manual''). This pattern is known as Apex-managed sharing, and it scales the manual share concept to automated scenarios. The Share table also supports custom RowCause values declared on the object, which is a more sustainable pattern for large-scale programmatic sharing.
Restriction Rules and the modern alternative
Salesforce introduced Restriction Rules and Scoping Rules in recent releases to give admins another lever beyond sharing rules and manual sharing. Restriction Rules narrow what users can see beyond what sharing alone grants, useful for compliance scenarios where the wider sharing model is too permissive. Scoping Rules let admins set default list view filters. Both work alongside manual sharing rather than replacing it. The right architecture combines OWD, sharing rules, manual sharing for exceptions, and restriction rules for compliance-driven narrowing.
How to grant Manual Sharing on a record
Granting a manual share is a one-minute operation on the record detail page, but the governance around it matters. Document why the share exists, set the right access level, and consider whether the use case should actually be solved with a sharing rule or restriction rule instead.
- Confirm the standard sharing model does not already grant access
Check OWD, role hierarchy, sharing rules, and any existing manual shares before adding a new one. If the user has access through another path, the manual share is redundant. If many users need the same access pattern, build a sharing rule instead.
- Open the record and click the Sharing button
Lightning: open the record, click the Sharing button in the highlights panel (may need to be added to the page layout). Classic: open the record and click Sharing in the related list. The platform shows the existing share rows for the record.
- Click Add and pick the user, group, or role
The picker lets you choose a specific user, a public group, a role (without subordinates), or a role-and-subordinates. Group-based sharing scales better than user-based because group membership changes propagate automatically.
- Set the access level
Choose Read Only or Read/Write. Cannot exceed the grantor's own access. For sensitive records, default to Read Only and only elevate to Read/Write when collaboration genuinely requires edits.
- Save and verify the new share row appears
The Sharing UI refreshes and shows the new entry. Confirm the access level and target are correct. Salesforce does not send a notification by default, so manually inform the grantee if they need to know they have access.
- Document the share rationale on the record
Add a note to the record (description field, custom Notes field, or Chatter post) explaining why the share was granted. This documentation pays off when the record is transferred and the new owner wonders why these specific users have access.
- Schedule a periodic review
Manual shares can accumulate over time. Build a SOQL query against the Share tables to identify stale shares (last modified more than 6 months ago) and review them quarterly. Remove shares for users who have left the role or company.
Who receives access through the share. Groups and roles scale better than individual users because membership changes propagate automatically.
Determines whether the grantee can view or edit. Cannot exceed the grantor's own access on the record.
Always Manual for user-initiated shares. Apex-managed sharing supports custom Row Cause values for automated scenarios.
- Manual shares are deleted automatically when the record owner changes. The new owner has to re-establish shares if the existing grants are still needed.
- Manual sharing on a parent does not propagate to lookup children. Each child needs its own share. Master-detail children inherit parent sharing automatically.
- The share access level cannot exceed the grantor's own access. Admins with Modify All Data can grant Read/Write; standard users can grant only what they have themselves.
- Manual shares accumulate over time and rarely get cleaned up. Schedule quarterly reviews against the Share tables to remove stale grants before they become audit findings.
- When many users need the same access pattern, manual shares scale poorly. Use sharing rules instead because they propagate automatically as users join roles and groups.
Trust & references
Cross-checked against the following references.
- Manual SharingSalesforce Help
- Sharing OverviewSalesforce Help
- Apex-Managed SharingSalesforce Developer
Straight from the source - Salesforce's reference material on Manual Sharing.
- Grant Access to RecordsSalesforce Help
- Apex-Managed SharingSalesforce Developer
- Restriction RulesSalesforce Help
About the Author
Dipojjal Chakrabarti is a B2C Solution Architect with 29 Salesforce certifications and over 13 years in the Salesforce ecosystem. He runs salesforcedictionary.com to help admins, developers, architects, and cert/interview candidates sharpen their fundamentals. More about Dipojjal.
Test your knowledge
Q1. What is Manual Sharing?
Q2. When should you use manual sharing?
Q3. Why is heavy use of manual sharing problematic?
Discussion
Loading discussion…