Sharing Rules are declarative, criteria-based or owner-based grants that apply to every matching record, automatically. They re-evaluate when records change (or when you click Recalculate). You configure them in Setup once and they keep working forever.
Manual Sharing is a per-record grant added by clicking Share on the record (or via Apex / API). It applies only to the record on which it was added, doesn't cascade to similar records, and is removed if the record's owner changes (unless granted by Apex managed sharing with RowCause other than Manual).
You pick by cardinality and rule:
- "Every opportunity in the West Region should be visible to the Marketing team." -> Sharing Rule. The rule encodes the policy; it scales.
- "This one prospect requires NDA-level secrecy and only three named users should see it." -> Manual Sharing. The grant is bespoke to that record.
Use sharing rules when:
- The grant criteria can be expressed as object filters or owner-based rules.
- The volume justifies the sharing recalculation cost (sharing rules increase recalc time, especially as you add many).
- You want zero-touch maintenance: new matching records pick up the rule automatically.
Use manual sharing when:
- The grant is genuinely one-off — one record, specific users.
- The grant is temporary (you'll remove it later).
- The criteria can't be expressed declaratively (e.g., "this user gets access because they're the deal team's lawyer for this specific deal").
Two important gotchas:
- Manual sharing is lost on owner change unless preserved via Apex.
- Sharing rules can't grant Edit on records the role hierarchy already opens to Read — that combination is treated as Read by the engine. To upgrade Read-via-hierarchy users to Edit, you generally need to rethink ownership or use Apex sharing.
