I have a requirement to grant a set of Users the ability to transfer ownership of all records of a certain object type, regardless of current ownership. I know I can accomplish this by granting this set of users the Transfer Record system permission, but this seems like killing a fly with a sledgehammer. I would much rather use a flyswatter.

What is the rationale behind making the Transfer Record permission a global system permission? What was the original use case for this permission and why did they not make it object-specific? (Maybe no one knows or is willing to divulge the answer to this question. That's fine. I'm just curious enough to ask it.)

Is there any other way I can accomplish my requirement? Can I make the transfer record permission object-specific using Apex Sharing? Any ideas will be much appreciated. Thanks!

Relevant documentation about Transferring Records

  • 1
    A quick, untested idea: would it work for you to grant it but then revoke the right to edit the Owner field on the objects you want to protect?
    – eyescream
    Jun 16, 2014 at 23:04

3 Answers 3


Modify all on the object will give transfer (but also delete)

Users with the “Modify All Data” permission, or users with the “Modify All” permission for the given object, can transfer any record, regardless of who owns the record.


Otherwise, you could build a visualforce page running without sharing, which could handle the transfer. You could control access to the page or use a custom permission / custom setting to control who can use this functionality.


The explanation on this website was pretty great -- http://www.simplysfdc.com/2015/12/salesforce-change-record-owner.html

Quoting: If you have Transfer Record permission and Edit permission on the object type, you can transfer a record from a user to you or to someone else in Salesforce.

Note: user with "Transfer Record" permission will allowed user to transfer ALL records for the object, as long as user have Edit access to the object. Read again here "edit on object", NOT "edit on record", so this mean, user will be able to transfer record owner even user do not have Edit access to that record.


If you are talking about the Mass Transfer option in the setup menu,

These are basic requirements for it. Modify All Data and Transfer Records.

For Object specific,

A user must have a modify all permission on an object either via profile or permission set, they will have the ability to transfer records to a different owner just for that specific records of that said object.

Mass transfer can be done on the Object List View, given again, they have Modify All on that object.

Hope this answers you question.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .