Salesforce is de-facto market leader of CRM solution for small, midsize and enterprise organizations, with a focus on sales and support. Being a SaaS solution, users can purchase features packaged as Sales Cloud, Service Cloud, Marketing Cloud and Commerce Cloud. I personally like how Salesforce is structured, very logical and customisable. Naturally it is not a perfect product (nothing is), but it has proven itself to be a reliable solution for many users.

In a very simplistic way, Salesforce organises its data in the form of objects that contains fields and records. Think of it as a table in relational database structure. It comes with a number of standard objects with built-in functionalities, but users can also create additional custom objects or add custom fields to standard objects. Some of the most fundamental objects for basic CRM sales functionalities are Leads, Accounts, Contacts, Opportunities, Campaigns, Contracts, Orders and Cases.

By default, Accounts and Contacts have one-to-many relationships. One Account record represent a company and one Contact record represent contact person in the company. There are some settings that allow user to enable many-to-many relationships, but essentially one Contact can still only has one main Account. This model makes perfect sense when a company only does business to other companies (B2B). Yet not all companies do that. Some need to sell products and services to individual customers. B2C is indeed supported in Salesforce, but we need to know how to enable the functionality.

First, there are more than one ways to do this. A company might choose to make one Account record called “Customer” and then link all their customers’ contact records to this one account. Another way is to create a few Account records, each represents different category of customers. This will be proven useful in the process of designing reports later on.

The right way to do B2C, or at least the official way offered by Salesforce.com, is through something called Person Accounts. This feature is disabled by default and can only be enabled by Salesforce support. There are some conditions that have to be met before enabling Person Accounts feature:

  1. A Salesforce organisation must have at least 1 record type for Accounts object.
  2. Users that have read permission on Accounts have read permission on Contacts.
  3. Organisation-wide default sharing is set so that Contact is “Controlled by Parent” or Account and Contact is “Private”.

Note that once enabled, an organisation cannot disable Person Accounts feature. With this feature enabled, the process of Lead conversion will automatically convert Leads that have no company information into Person Account records. This solution creates 2 records for one person (1 Account record and 1 Contact record). Record type in Accounts object can be used to categorise different types of customers. Person Account record cannot have Account Hierarchy feature that is available for normal company records.

I would strongly recommend to test Person Account feature in sandbox environment first to see the impact on all other existing configurations in your organisation. There are a number of possible side-effects that can’t be listed one by one here because they are heavily related to how an organisation is configured to use Salesforce.