1

I have a case in which a certain user with profile that should be able to transfer a contact even the contact is still not his own. I tried using the 'Transfer Record' in both the profile and permission set but it doesn't work if the contact is not associated with an account.

Question/Problem: Is it possible to transfer a record not associated with the user and an account? Is using the 'Transfer Record' a standard in developing a salesforce application?

9
  • Have you already taken a look at help.salesforce.com/… ? Oct 29, 2014 at 8:12
  • Yes I have done with like 3 times now but it still doesn't work and the Insufficient Privileges appears. I have done some permission sets and profiles to test it but still doesn't affects. The case is when a contact is not associated with an account, Insufficient Privileges appears. But when a contact is associated with an account, it works fine. Do you know how to fix it? Oct 29, 2014 at 8:37
  • 2
    When Contacts are not related to an Account, sfdc treats them somewhat differently: as Private Contacts. They behave different in many ways. Your issue is one of these cases. Oct 29, 2014 at 8:48
  • Do you have any idea how to fix this? Badly have a deadline for that Oct 29, 2014 at 8:49
  • 1
    I guess you could edit all these contacts, link them to a dummy account, and then transfer them? Oct 29, 2014 at 8:54

1 Answer 1

1

It sounds to me as though you have a systemic problem and perhaps some security issues in terms of your OWD and other related settings in configuring your org that you may need to resolve in order to permanently solve your problem. First, I would advise against arbitrarily editing these contacts and assigning them to a dummy account. There could be a number of unpredictable consequences of taking such action at this time.

You've not said why you need to transfer the contact record by someone who doesn't currently own the record, nor what your OWD are Contacts. Knowing that information would be helpful in giving you a more complete answer to your questions. If you've enabled Account Roles and Contact Roles you'll have more flexibility in how you deal with the relationships between the two. Traditionally, Contacts have had their OWD set to Private which sounds like the source of your problem.

If you go under the assumption that every Contact is associated with an Account, you could potentially change your OWD settings to Controlled by Parent. In that manner, whomever owns the Account or in some cases a Custom Object a Contact is related to, also owns all the Contacts associated with that Account or Custom Object. It really depends on your org's particular needs in terms of what the least amount of access level needs to be set at for the OWD as to which way to go in addition to how you set up security on the Parent as that's the setting that will primarily control access on the Contact object if you go that route.

Records can normally have their ownership changed in one of the following ways:

  • By the existing owner of a record transferring to someone else
  • Someone in the hierarchy above the existing owner reassigning it (if using roles)
  • An admin or someone with delegated admin permissions transferring ownership of the record

Exceptions to the above would include: - Where you've set up a sharing group or have Apex sharing rules - Objects whose records are disseminated through a queue (usually via a pre-determined set of rules), the most common of which would be leads and cases

With all that having been said, it sounds as though the first thing you need to do is set up validation rules for Contacts such that no new contacts can be created unless they're associated with an Account. If you don't do that, this problem will never go away and 6 months from now, you'll be right back where you are today.

What you could do next, as an interim step as an Admin, is to take ownership of all contacts not associated with an Account. Once you do that, presumably you could query to search for related records and find out what account they need to be connected with. You could also create a sharing group and a sharing rule that would allow you to share them with those who might need to transfer ownership of them. Making this work would depend on what you've determined your OWD actually needs to be set at for Contacts. If Contacts not associated with an Account behave as though their OWD is set to Private as @ RobinDeBondt suggests, I believe this would work for you. What I would also do is create a validation rule that requires a Contact be associated with an Account in order for it to change Ownership so that whomever is trying to transfer ownership is required to associate it with an Account at the time of transfer. In doing so, you'll slowly solve your data problem.

I hope this helps provide some guidance and useful suggestions both short term and long term for resolving your issues. As references, I'd refer you to the Force. com Platform Fundamentals Workbook, the Security Workbook and the Security Implementation Guide.

You must log in to answer this question.

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