Stat Tracker

Monday, March 18, 2013

Person Account & Contact Formula Fields

With the latest Spring 13 release of Formula Fields were enabled for Person Accounts. For those who are unfamiliar, Person Accounts are the B2C (Business to Consumer) feature for managing accounts. It is often used in Financial Services implementations where a sales person may sell to both Institutions as well as individual investors. Person Accounts blend Accounts and Contacts objects in the front end to appear as one record.

Under the hood Person Accounts are actually two distinct records, one Account and one Contact. The Account object has a field called "PersonContactId" which links the Account to the contact record. Therefore there is a link from the Account to the Contact record (Account.PersonContactId), and a link from the Contact record to the Account (Contact.AccountId). A number of fields from the Contact record are then made available on the Account object. Standard Fields from the Contact are available on the Account via the "Person" prefix. For example, Account.PersonMailingStreet or Account.PersonTitle bring up the values from the underlying Contact record. Custom fields on a Contact are brought up to the Account record with fields ending in __pc. For example, Account.ContactTotalWorth__pc for a field called "Contact Total Worth" on the contact record.

Previous to Spring 13 you could not use Person Account fields in a formula field. For example, on an Opportunity record you could not do a Formula Field like "Account.PersonMailingStreet" to bring the field onto the Opportunity record. Now you can do this for all the standard and custom fields with the exception of PersonContactID.

For some reason PersonContactID is not available in Formula Fields. This also applies to any Formula Fields on the Contact that may use the Contact ID.

So when creating Formula Fields for Person Accounts just remember that the Contact ID is currently not accessible.