Beginning with API version
8.0, a new family of record types on Account objects is available: “person account” record types. The person account record types enable specialized business-to-consumer functionality
for those who sell to or do business with individuals. For example,
a doctor, hairdresser, or real estate agent whose clients are individuals.
For more information about person accounts, see “What Is a Person Account?” and “Person Account Behaviors” in the Salesforce online
Record types are person account record types if the Account field IsPersonAccount is set to true. Salesforce provides one default person account record type, PersonAccount, but an administrator can create
additional person account record types. Conversely, record types with the Account field IsPersonAccount set to false are “business account” record types, which are traditional business-to-business
(B2B) Salesforce accounts.
When a person account is created (or an existing business account is changed to a person account), a corresponding contact record is also created. This contact
record is referred to as a “person contact.” The person
contact enables the person account to function simultaneously as both an account and a contact.
This is the one and only contact record that can be associated directly
with the person account. Also, the ID of the corresponding person contact record is
stored in the PersonContactId field on the person account.
Review this list of facts about person account record types before working with them.
- You may need to contact your account representative to enable
the person account feature.
- You can use a query similar to the following example to find all
records with a person account record type:
SELECT Name, SobjectType,IsPersonType
WHERE SobjectType='Account' AND IsPersonType=True
- If you issue a query() call against an account, the results return the root
object type in the SojbectType field. This means that the value returned will always be Account.
- A person contact can be modified, but cannot be created or deleted.
Since these kinds of contacts do not have their own record detail
page, clients should redirect users to the corresponding person account (Account) page. SOSL results will not include any of the contact
fields enabled when IsPersonAccount is set to true. The contact ReportsToId field is not visible.
- If you delete the account, the contact is also deleted. You cannot
directly delete the contact; you must delete the account.
- You can change the record type of an account across record type
families (typically performed when migrating business accounts to person accounts, but the reverse operation is also supported). When you change
the record type from a business account to a person account, the person contact is created. When you change the record
type from a person account to a business account, the person fields are set to null, and the person contact
becomes a regular contact with the same parent account it had before
- 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. However, you can
change record type values from one person account record type to another, or from one business account record type to another, in the same call with other changes.
- When converting a business account to a person account, there must be a one-to-one relationship between each business account record and its corresponding contact record. Furthermore, fields
common to both records such as Owner and Currency must have identical values.
- Workflow and validation formulas do not fire during a change in
record types from or to person accounts.
- When you change a business account to a person account, valid records will be changed and invalid records will show
an error in the results array.
- When you change a person account to a business account, no validation is performed.
describeLayout() for version 7.0 and below will return the default business account record type as the default record type even if the tab default
is a person account record type. In version 8.0 and after, it will always be the
describeLayout() for version 7.0 and below will not return any person account record types.
describeSObject() for version 7.0 and below will show Account objects as not createable if the profile does not have
access to any business record types.
- After conversion, the new person accounts will have unique one-to-one relationships with the contact
records that formed them. As is true for all person accounts, no other contacts can be associated to a person account.
- After conversion, any existing account field history information
remains on the person accounts. Any existing contact field history information is retained
on the contact, but is not added to the person accounts field history.
For more information about person accounts, see the Salesforce online