Using Salesforce Flow to Convert a contact to person Account

Share This Post

Ready to learn a few tricks and enhance your Salesforce Platform Strategy? When you finish reading this article, you will know how to use Salesforce Flow to Convert a Contact to Person Account. 

What is a Person Account?

Person accounts store information about individual people by combining certain account and contact fields into a single record. By default, Salesforce accounts are business accounts, which are used to store information about companies or other entities (B2B).

Person accounts extend the standard business-to-business account functionality by allowing you to store information about individual consumers (B2C).

After enabling person accounts , You can use both business accounts and person accounts in the same org.

Before we learn how to do this, it is important to have certain considerations.

Important Considerations before Enabling Person Accounts in your Org.

Person account cannot be disabled

Do your research before enabling person accounts in your org to make sure this is the best approach for you to deal with your company’s B2C requirements


Since a person account is a combination of a contact (2 kb) and an account (2 kb) records in one record, each single person account takes 4kb of storage so keep that in mind

Account and Contact Apex

Check your Account and Contact Apex code and customize it to make sure that nothing clashes with the new implementation.

Sharing Settings

The organization-wide default sharing is set so that either Contact is (Controlled by Parent) or both Account and Contact are Private.

Use a test environment

It is recommended that you test out the functionality of person account on a Sandbox first before enabling it in your production environment.


Some applications on AppExchange does not support person account functionalities, check with the app provider before implementing an app.

For more considerations, please refer to the official salesforce documentation at:


Now that we have talked about these important considerations, we are ready to learn how to convert accounts.

Making a salesforce flow to convert a contact into a person account

For Travel Solutions using Salesforce

Check us out on the AppExchange

Business Scenario - Travel Agency

A travel agency has travelers listed as records in a custom object, each traveler record is associated with a contact by a lookup field.

The company has asked their salesforce admin to implement an automation process to convert the attached contact to each traveler that has no accounts associated with them to a person account to match the company’s work process.

Considerations for Converting to a person account:

      Each account must have one contact. It cannot have more than one.
      The account and contact must have the same record owner.
     ● The account and contact must have the same currency values.
      The Parent Account field on the Account must be blank.
      The Reports To field on the Contact must be blank.
      The Account is not set as a Parent Account for any other accounts.
      The Contact is not set as a Reports To for any other contacts.

The Flow

In Summary, the flow should:

     ● Grab the newly associated contact and check if it is not associated with an account
     ● Create a new account that is in accordance with the considerations of conversion, and associate the newly created account with that contact
     ● Convert the account to a person account (The conversion from a business account has to be in a separate transaction: no other fields should be updated other the record type id of the account in each record update)

Variables and assets: 
  1. TimeStampVar: a formula that stores the string value for the current time, this will be used as a temporary name for the newly created Account to avoid clashing with duplicate rules. 
    Type: Formula (Text)
    Value: TEXT(NOW())
  2. NewAccountID: a variable that stores the ID of the newly created accountType:
    Variable (Text)
  3. PersonAccountRecordTypeID: a variable that will store the ID of the person account record type
    Type: Variable (Text)
  4. SupplierAccountRecordTypeID: a variable that will store the ID of an account record type other than person account, to make sure that the newly created account is not a person account (we took supplier here as example).
    Type: Variable (Text)

The Steps


Person accounts can be a great solution for small and mid-sized companies that are mainly business to consumer oriented, and while it was avoided by most companies in the past for its many considerations, it has recently become a go-to for most B2C Companies.

We hope that this flow helps you implement person accounts more gracefully in your company, Happy Automation!

Need help?

In Nubessom we have more than 10 years helping companies around the world achieve their Salesforce, CRM and business automation needs. 

We are experts in boosting business performance with Cloud Applications. We are Salesforce Consulting Partner you were looking for, please reach us by clicking here or check our website for more details.

About the Author
Alex Raheb, Salesforce Developer @ Nubessom

Alex Raheb, Salesforce Developer @ Nubessom

Alex is one of the key members at Nubessom, he has passion to learn new features and mentoring his peer colleagues, and enjoys helping clients to automate everything CRM related!

Let´s talk about your challenge!

    In order to provide you the content requested, we need to store and process your personal data. If you consent to us storing your personal data for this purpose, please tick the checkbox below.

    You can unsubscribe from these communications at any time. For more information on how to unsubscribe, our privacy practices, and how we are committed to protecting and respecting your privacy, please review our Privacy Policy.

    Need more Inspiration? keep reading Our related content

    Blog Article

    Working with Time data type in Flows

    Discover innovative solutions to manage time data types in Salesforce Flow, including overcoming time zone challenges and the absence of native Time data support. Learn how to employ Apex classes and custom LWC components to ensure accurate time inputs in local time zones, enhancing data precision and user interaction in your Salesforce applications. 
    Read More »