You need to sign in to do that
Don't have an account?
Convert Person Account to Contact
Our organization would like to convert all Person Accounts to Contacts. We would like the converted contact to be connect to an account named, "Generic Contact." I looked into this a little and this is what I found out.
Option 1:
Each Person Account has a record in both the Account table and Contact table. The Contact table holds all the Person Acount information. The Contact table has a field called IsPersonAccount which is marked true. I would like to change the IsPersonAccount to false, change the AccountId to that of the "Generic Contact" account and Delete the Account with the old AccountId.
Whenever I try to change the IsPersonAccount to false, I get an error "INVALID_FIELD_FOR_INSERT_UPDATE".
Option 2:
Now I can export the contacts to a csv file and filter out all contacts with business accounts leaving the Person Accounts. Then I can delete all Person Accounts and import the people in my csv file as contacts. Finally, reconnect all compaigns using the PHP API.
I would much rather change the AccountId and IsPersonAccount fields (much less work). Is there anyway to do option 1 or is there a better way of converting PersonAccounts to Contacts?
We would like to clean up the accounts so that only businesses reside there.
Why not just set your list views and reports to point only to accounts that have a business account record type then?
Also, we would like to be able to connect a business account to any customer that we have in SF, but I do not see a way to do this if the customer is registered as a person account.
First of all, you could use the parent account field that's already there. If that is otherwise in use, make a new custom lookup field that looks up to account, and show it only on the person account page layout. This will allow you to connect your person accounts to business accounts.
Person accounts aren't perfect, but I come down squarely in favor of continuing to use them rather than hacking them into contacts.
You're right. Person accounts are not perfect. Our organization is just starting with salesforce and I'd rather "hack" the few person accounts and have no work arounds.
Also, I don't want to create anymore custom fields then I have to. Any ideas about how to convert person accounts to contacts?
I still think what you're doing is a bad idea, and I don't understand your aversion to custom fields.
The Option 1 you specified above is exactly how person accounts work today -- they are already a joint Account-Contact object. So it doesn't make a lot of sense for you to do that.
If you want to move them to straight Contacts then your option #2 is the way to go.
I don't understand why converting person accounts to contacts is a bad idea. I actually think it's a good idea because then contact information is all in the same spot instead of all over the place and I won't have to deal with any work arounds.
Setting all personal opinions aside, is there anyway to convert Person Accounts or will I have to write some code to convert these customers?
According to the documentation, you should be able to convert back and forth by changing the record type on the account. You have to make sure there is a one-to-one relationship between the account and the contact before converting to a person account. Going the other way, you end up with an account and a contact record, with the contact's account Id set to the resulting account record Id.
Unfortunately, this isn't as easy as it sounds. I'm still mucking with the code to get a working example going.
Link: Person Accounts
Here's a bit from SF Help that might help you with the error you received:
If you change the record type of a business account to a person account using either update() or upsert(), you cannot make any other changes to fields in that account in the same call; if attempted, the fault INVALID_FIELD_FOR_INSERT_UPDATE will result.
I successfull converted all Person Accounts to Contacts. Here's how I did it:
I know it's not the best way of going about it, but it worked for me. In doing this, I created a Web-To-Contact form which keeps all contacts from being added into Safesforce as a person account. :)
Its much simpler than that. I have just converted a person account to a business account keeping all the info attached to the old person account to the contact.
In case you have just 1 record type for Accounts or for contacts use the master record type IDs on step 4 and 5
Pablo...thank-you so much for your post. I pretty much followed your instructions with a few caveats that might help the next person break Person Records into both an Account and a Contact Record.
First, we were using the Wealth Management overlay which uses Person Accounts by default, but unfortunately our Salesforce to Salesforce integration, amongst others, don't work with Person Accounts. So we have had to revert back to Account and Contact Record Types.
Pablo...thank-you so much for your post. You saved me my friend..Nothing can be easier than this...Thanks once again.
Process to convert a Person Account into a Contact and Business Account
Select Id, AccountId, IsPersonAccount, LastName, FirstName, Name, RecordTypeId FROM Contact WHERE IsPersonAccount = true
Result of the Step 3 of Above Process –
Result of the Step 5 of Above Process –
Result of the Step 6 of Above Process –
Hi all, thanks for the helpful information!
I am receiving the following error when trying following the instructions:
ERROR: insufficient access rights on object id
I receive this error when I try to update the Account. The field mappings are Account ID to ID and Account Record Type to Record Type ID. The ID I am using is from the report and is only 15 characters.
Does anyone know, why I might be receiving this error?
I was able to this. On conversion, it creates a business account + a contact. Is there a way I can only hace contcat created and not a business account?
Thanks,