SFDC Developers
0
  • Home
  • Apex
    • Integration
  • Visualforce
  • Lightning
    • Aura Component
    • Web Component
  • Interview Questions
  • Coupons
  • ID Converter
  • Release Notes
    • Spring 20
  • Other
    • Recommandations
    • Ideas
    • Deployment
  • DMCA
  • Terms & Conditions
  • Privacy Policy
  • About Us
  • Contact Us

Archives

  • October 2025
  • September 2025
  • April 2023
  • December 2020
  • November 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019

Categories

  • Apex
  • Architecture
  • Artificial Intelligence
  • Aura Component
  • Community Cloud
  • Configs
  • CRM Analytics
  • Data Cloud
  • Deployment
  • Developers
  • Experience Cloud
  • Flow Automation
  • Ideas
  • Integration
  • Interview Questions
  • Lightning
  • Lightning Web Component
  • News
  • Other
  • Process Builder
  • Recommandations
  • Release Notes
  • Salesforce
  • Salesforce Admin
  • Salesforce CPQ
  • Salesforce Events
  • Salesforce Integrations
  • Salesforce Tips
  • Step-by-Step Guides
  • Uncategorised
  • Visualforce
  • Web Component

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
[email protected]
  • Disclaimer
  • DMCA
  • Terms & Conditions
  • About Us
  • Contact Us
SFDCDevelopers Mobile Logo
SFDCDevelopers Mobile Logo
SFDC Developers
  • Home
  • Apex
    • Integration
  • Visualforce
  • Lightning
    • Aura Component
    • Web Component
  • Interview Questions
  • Coupons
  • Other
    • Release Notes
      • Spring 20
    • Daily Posts
    • ID Converter
    • Recommandations
    • Ideas
    • Deployment
SFDC Developers
  • Home
  • Apex
    • Integration
  • Visualforce
  • Lightning
    • Aura Component
    • Web Component
  • Interview Questions
  • Coupons
  • Other
    • Release Notes
      • Spring 20
    • Daily Posts
    • ID Converter
    • Recommandations
    • Ideas
    • Deployment
SFDC Developers > Interview Questions > What is Manual Sharing in Salesforce?
Interview Questions

What is Manual Sharing in Salesforce?

Posted by Vinay Vernekar 24th October 2025

Understanding Manual Sharing

Manual Sharing in Salesforce is a record-level sharing mechanism that lets users explicitly share a single record with another user, a group, or a role. It provides fine-grained control beyond org-wide defaults (OWD), role hierarchy, and sharing rules, allowing ad-hoc access to particular records when automated sharing doesn’t meet business needs.

When to use Manual Sharing

Use Manual Sharing when you need to grant access to a specific record for a limited time or to a limited audience, for example:

  • One-off collaborations where a user outside the normal sharing model needs access to a record.
  • Temporary access for contractors or consultants without changing role or profile settings.
  • Exceptions to automated sharing rules where business policy requires manual approval.

How Manual Sharing works

Manual Sharing creates a separate share entry for the record in a dedicated share table for each object. For standard and custom objects the share tables are named <ObjectName>Share (for example, AccountShare or CustomObject__Share), and each row contains:

  • ParentId — the record being shared
  • UserOrGroupId — the recipient (user, group, or role)
  • AccessLevel — level of access (Read, Edit)
  • RowCause — reason for sharing (“Manual” for user-created shares; other values for rule-based shares)

When a manual share is added, Salesforce evaluates sharing for that record and grants access accordingly. Manual shares are independent of profile permissions and only grant access if the user already has object-level access.

Creating Manual Shares

There are three common ways to create manual shares:

  1. User Interface — On a record page (if ‘Sharing’ button is enabled), owners or users with full access can click “Share” and add users, roles, or groups with Read or Edit access.
  2. Apex — Programmatic creation by inserting a row into the object’s share table. Example for a custom object:
// Apex example: programmatically share a CustomObject__c record
CustomObject__Share shareRow = new CustomObject__Share();
shareRow.ParentId = 'a0Bxxxxxxxxxxxx'; // record Id
shareRow.UserOrGroupId = '005xxxxxxxxxxxx'; // user or group Id
shareRow.AccessLevel = 'Read';
shareRow.RowCause = Schema.CustomObject__Share.RowCause.Manual; // Manual share
insert shareRow;

Note: For standard objects, use the standard <Object>Share sObject (e.g., AccountShare), and for some objects the share object may be read-only (for example, certain standard objects like Case or Opportunity may have constraints based on org configuration).

Limitations and Considerations

  • Manual shares are record-specific and do not cascade to related records automatically.
  • Only users with the appropriate privileges (record owner, users with Full Access via sharing, or users with the “Modify All” object permission) can create manual shares through the UI; Apex code may require the running user to have appropriate permissions or use “without sharing” cautiously.
  • Manual sharing bypasses role hierarchy only for the explicit recipient; it does not change a user’s profile or role.
  • Excessive manual shares can become difficult to maintain — consider using sharing rules or territory management for scalable solutions.

Best Practices

  • Prefer declarative sharing (sharing rules, criteria-based sharing, or sharing sets) for recurring scenarios.
  • Limit manual sharing to exceptions and temporary cases.
  • Document manual shares and periodically review or audit them (use reports on the <Object>Share tables).
  • Use Apex sharing reasons and meaningful RowCause values for custom objects where available to distinguish automated shares from manual ones.

Quick Reference

Key terms: Manual Sharing, <Object>Share, RowCause = Manual, UserOrGroupId, AccessLevel.

Tags: Manual Sharing

What’s your reaction?

Love
0
Sad
0
Sleepy
0
Dead
0
Shares
Share on Facebook Share on Twitter Share on Pinterest Share on Email
Vinay Vernekar 24th October 2025
Previous Article How to Scale Apex Platform Event Triggers with Parallel Subscribers in Salesforce — Performance & Best Practices

Leave a Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Get more stuff like this
in your inbox

Subscribe to our mailing list and get interesting stuff and updates to your email inbox.

Thank you for subscribing us!

Please make sure to verify your mail address.

we respect your privacy and take protecting it seriously

Popular Posts

How to Scale Apex Platform Event Triggers with Parallel Subscribers in Salesforce — Performance & Best Practices

24th October 2025

How to avoid recursion in Trigger

24th October 2025

How to Utilize Apex Properties in Salesforce

24th October 2025

Trigger.new vs Trigger.newMap — Key Differences in Salesforce Apex Triggers

23rd October 2025

You Might Also Enjoy

Interview Questions

How do you implement a loop in a Salesforce Flow?

Step-by-step guide to implementing loops in Salesforce Flow: collect records, iterate with Loop, assign changes to a collection, then perform a single bulk update.

23rd October 2025
Interview Questions

How would you design a Flow to automate lead assignment based on region?

22nd October 2025
Interview Questions

What are WhoId and WhatId in activities?

Quickly understand WhoId vs WhatId on Salesforce activities (Task & Event): WhoId links to Contact or Lead (person), WhatId links to Account, Opportunity, Case or other objects (business entities).

22nd October 2025
Interview Questions

When will you choose before event and when you will choose after event?

21st October 2025
Load More
  • Disclaimer
  • DMCA
  • Terms & Conditions
  • About Us
  • Contact Us
© 2022 SFDCDevelopers.com

Our website uses cookies to improve your experience. Learn more about: cookie policy

Accept