How can I sync Salesforce person accounts in HubSpot?

Hey Everyone, I am hoping the Community can help, as I have been back and forth with tech support for days now without a real resolution.

I work for a wealth management group, and we have Salesforce Financial Services as our CRM. This means we operate using Person accounts (for clients/contacts) and Households (as the umbrella for everyone in the house), while also having Institutions that we manage money for.
We are wanting to use HubSpot for our marketing arm, but have not figured out how to get the client info into HubSpot any properly sync with Households, without duplicating info due to Person Accounts coming over as well.
Does anyone have any insights on how to best/ easily set this up to get it to work for our needs?

Treat Salesforce objects and HubSpot objects as a mapping problem first, then turn the connector on. If you sync Person Accounts and Households both as “contacts-ish” records, HubSpot will look duplicated no matter how good the native connector is.

Pattern that usually holds for FSC → HubSpot Marketing:

  1. Person Account → HubSpot Contact (1:1). That is the marketable person. Use a stable external id (SF Account Id or a named matching key) and do not also create a second Contact from a related Contact/Account pair if FSC already collapsed them into the Person Account.

  2. Household → HubSpot Company (or a thin custom object if you need household-only reporting). Associate each Contact to that household Company with a clear label (Primary household / Member). Institutions → separate Company with a type/property so they never mix with households in segments.

  3. Pick one primary company rule per Contact before marketing lists go live. Wealth contacts often sit on household + employer/institution; HubSpot “primary company” decides a lot of list and personalization behavior.

  4. Marketing fields only in HubSpot (lifecycle, subscription, campaign membership). Keep money / household hierarchy ownership in Salesforce. Bidirectional edits on name/email/household membership is where the duplicates come back.

  5. Pilot with one household (2-3 Person Accounts + 1 Household + 1 Institution). Confirm Contact count, Company count, and associations in HubSpot before opening the full sync.

If you share whether you are on the native HubSpot-Salesforce connector or middleware, and whether Households in SF are Accounts or a custom object in your org, the exact field map gets obvious fast.

Hi @EricH20 and welcome, we are delighted to have you here! :hugs: And thanks @kishoreaxioprax for your help!

Thanks for sharing your set up with the HubSpot Community, that’s useful!

To start with, here are some articles that can be of interest:

You could use Salesforce as the source of truth, sync eligible Person Accounts as HubSpot contacts and sync Household Accounts as HubSpot companies, would that work for you?

Now, let’s put you in touch with our Top Experts: Hi @danmoyle, @EugeneAtKiwi and @Jonas_De_Mets do you have best practices or any tips to share with @EricH20, please?

Thanks so much and wishing you a lovely day!

Bérangère

Welcome to the Community @EricH20! You are running into a real data-model mismatch: in Salesforce Financial Services Cloud, a Person Account is both an Account and a Contact, while HubSpot’s native Salesforce integration treats Salesforce Contacts/Leads as HubSpot Contacts and Salesforce Accounts as HubSpot Companies. If you enable both standard Account/company sync and Contact sync without careful filtering, the same person can appear once as a HubSpot contact and again as a “company” created from their Person Account.

The cleanest pattern is generally: Person Accounts >> HubSpot Contacts; Households >> a dedicated HubSpot custom object; Institutions >> HubSpot Companies. Avoid treating Person Accounts as HubSpot Companies. HubSpot matches Salesforce contacts/leads to HubSpot contacts primarily by email address, so email quality and uniqueness are essential before enabling the sync.

The one setting that actually prevents the duplication: Filter your Account-to-Company sync so it excludes Person Accounts and includes only true institutional records. Something like IsPersonAccount = FALSE, a record type check, or a dedicated field you maintain just for this. Don’t lean on company name or domain to sort this out. Person Accounts often don’t have one, and they’re not companies to begin with.

Now on Households specifically. If your HubSpot plan supports custom objects, a Household object with Contact associations (and association labels like Spouse, Trustee, Advisor) is the cleanest long-term answer. It preserves the real relationship instead of flattening it.

If custom objects aren’t in reach right now, a simpler phase one works fine: sync people as Contacts, skip a separate Household record, and carry a few household attributes (segment, advisor team) as Contact properties instead. You can build the object later once the rest is proven out.

One more thing worth saying plainly, since you’re in wealth management: keep account balances, holdings, and anything like SSNs out of the sync entirely unless you’ve got a documented reason and the access controls to back it up. Marketing doesn’t need it, and every additional field you sync is one more thing to defend later.

Start with a pilot team before you flip this on for the whole book. It’ll tell you fast whether your email data is clean enough to match reliably, which is the other half of this working the way you want.

Hope that helps!

@kishoreaxioprax Thanks for the reply! A couple of questions I have:

1- How do I sync Person Accounts to the HubSpot Contact? The people I have asked in HS Support said that cannot be done, so just wondering if there was any documentation around this?

4- Yes, I deleted all non-important fields so they wont sync over. Only Marketing stuff needed.

I am on the native HubSpot-Salesforce connector (HubSpot Integrations and Salesforce App for HubSpot, thought I am not sure how that second one actually works).

Households in Salesforce are Accounts with a specific Record Type ID, and Institutions are Account with their own specific Record Type ID as well.

Thanks for the help!

Thanks @danmoyle I have the “IsPersonAccount = False” filter on, but I still don’t know how to connect Person Accounts to Contact(HubSpot).

At the moment I don’t believe we have Custom Objects yet.

This was really helpful Dan! We’re seeing exactly what you described: our Person Accounts are creating both Contacts and Companies in HubSpot, and our Household Accounts are coming over as Companies too.

I’ve now created a Household custom object in HubSpot, but Account doesn’t appear as an option in the Salesforce custom-object sync. Since our FSC Households are Account records, how have you seen people get them into a HubSpot Household object and keep the members linked? Does that usually require a separate integration?

We also tested HubSpot’s Timeline Sync for marketing emails. It creates a Salesforce Task with the subject line, but not the email content. We’d like to retain what each person actually received. Have you seen a way to make that available in Salesforce?

Thanks again!! This was an extremely helpful explanation!

@EricH20 here’s a Community resource that may help with the more technical connection of Person Account > Contact in HubSpot, complete with screenshots, from @SaraMae. I think that should help!

Hey there @JD121 and welcome to the Community! I’m glad my answer helped a bit. For the rest of your questions, I think it’s a native-integration boundary correctly (based on some light research): because FSC Households are Salesforce Account records, they can’t be mapped directly into a HubSpot custom object through HubSpot’s standard Salesforce sync. Standard Salesforce objects map only to their corresponding native HubSpot objects, so Salesforce Account >> HubSpot Company, not Account >> HubSpot Household custom object.

For an FSC Household-as-Account model, a separate automation/integration layer is normally required if you want a true HubSpot Household custom object with maintained member associations. So it’s probably a separate integration, or a custom build.

And what you found with Timeline Sync is expected behavior as I understand the integration. The Salesforce Task provides an activity indicator (often subject, timestamp, and engagement context) but it’s not a reliable archive of the rendered email content each recipient received.

There’s not a standard native setting I know of that turns marketing-email Timeline Sync into full Salesforce email archival. Email content is intentionally kept in HubSpot’s marketing-email system rather than written wholesale into Salesforce Task fields. A Salesforce Task subject is also constrained, making it a poor vehicle for an HTML email body or its full personalized rendering. There again, I think you’re running into a situation where you might need some custom work and maybe a consultant to help. Sorry it’s not a simple, “Here’s the setting button.” :upside_down_face:

Hey @danmoyle , thanks for the resource. For my issue, it is not about pushing info from HubSpot to Salesforce, but more so how to sync the info in Salesforce IN TO HubSpot’s model so we can use the proper tools and segments to achieve our marketing goals. Do you happen to know of any other Rss (outside of a custom build) that might be able to help us bring over the Contacts and Households into HubSpot cleaner?

@EricH20 I know of two (have not personally used them, but am familiar).

Workato: I’ve heard of it as a good fit when you want a governed, low-code solution with robust error handling, auditability, reusable recipes, and more complex branching than Zapier-style automation. It has both Salesforce and HubSpot connectors. Its HubSpot connector supports CRM-oriented actions such as creating, updating, searching records, managing lists, and triggers based on HubSpot activity.

SyncMatters: SyncMatters advertises real-time, bidirectional integration across HubSpot, Salesforce, and 55+ systems. It is worth including in an evaluation if their team can specifically demonstrate all of the following in your sandbox: custom-object upserts, relationship preservation, association creation, exception handling, and safe deletion/disassociation behavior.

I’m sure there are others, but these are two I’ve heard of with decent feedback.