{"id":90123,"date":"2026-01-08T21:52:51","date_gmt":"2026-01-09T05:52:51","guid":{"rendered":"https:\/\/rightwave.com\/rwi\/?p=90123"},"modified":"2026-01-08T22:07:41","modified_gmt":"2026-01-09T06:07:41","slug":"hubspot-salesforce-integrations-the-landmines-every-marketing-ops-team-should-avoid","status":"publish","type":"post","link":"https:\/\/rightwave.com\/rwi\/hubspot-salesforce-integrations-the-landmines-every-marketing-ops-team-should-avoid","title":{"rendered":"HubSpot + Salesforce Integrations: The Landmines Every Marketing Ops Team Should Avoid"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"90123\" class=\"elementor elementor-90123\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5d7c0653 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5d7c0653\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-274212e4\" data-id=\"274212e4\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-33cdbe5c elementor-widget elementor-widget-text-editor\" data-id=\"33cdbe5c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t\n<h2 class=\"wp-block-heading\"><\/h2>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4909487 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4909487\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0d91260\" data-id=\"0d91260\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a2e4266 elementor-widget elementor-widget-text-editor\" data-id=\"a2e4266\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p data-start=\"132\" data-end=\"333\">If you\u2019ve ever heard someone say <em data-start=\"165\" data-end=\"202\">\u201cI don\u2019t trust the data in HubSpot\u201d<\/em> or <em data-start=\"206\" data-end=\"253\">\u201cSalesforce is creating a mess for marketing\u201d<\/em>, chances are the problem isn\u2019t the tools \u2014 it\u2019s how the integration was set up.<\/p>\n<p data-start=\"335\" data-end=\"629\">A recent conversation in the MO Pros community perfectly captured the <em data-start=\"405\" data-end=\"422\">real-world pain<\/em> teams face when working with <strong data-start=\"452\" data-end=\"493\"><span class=\"hover:entity-accent entity-underline inline cursor-pointer align-baseline\"><span class=\"whitespace-normal\">HubSpot<\/span><\/span><\/strong> and <strong data-start=\"498\" data-end=\"539\"><span class=\"hover:entity-accent entity-underline inline cursor-pointer align-baseline\"><span class=\"whitespace-normal\">Salesforce<\/span><\/span><\/strong> together \u2014 especially when an organization migrates Sales from HubSpot CRM to Salesforce.<\/p>\n<p data-start=\"631\" data-end=\"788\">From duplicate records to broken company data and uncontrolled syncs, these issues show up <em data-start=\"722\" data-end=\"736\">months later<\/em>, when fixing them becomes expensive and disruptive.<\/p>\n<p data-start=\"790\" data-end=\"921\">From RightWave\u2019s perspective, here\u2019s what we\u2019ve learned \u2014 and what we strongly recommend setting up <strong data-start=\"890\" data-end=\"900\">before<\/strong> data starts flowing.<\/p>\n<h2 data-start=\"928\" data-end=\"998\">1. Always Use a Dedicated Integration User (This Is Non-Negotiable)<\/h2>\n<p data-start=\"1000\" data-end=\"1134\">One of the most common mistakes we see:<br data-start=\"1039\" data-end=\"1042\" \/>The HubSpot\u2013Salesforce integration is authenticated using a <em data-start=\"1102\" data-end=\"1117\">real person\u2019s<\/em> Salesforce user.<\/p>\n<p data-start=\"1136\" data-end=\"1155\">Why this backfires:<\/p>\n<ul data-start=\"1156\" data-end=\"1270\">\n<li data-start=\"1156\" data-end=\"1201\">\n<p data-start=\"1158\" data-end=\"1201\">Permission changes break syncs unexpectedly<\/p>\n<\/li>\n<li data-start=\"1202\" data-end=\"1231\">\n<p data-start=\"1204\" data-end=\"1231\">Auditing becomes impossible<\/p>\n<\/li>\n<li data-start=\"1232\" data-end=\"1270\">\n<p data-start=\"1234\" data-end=\"1270\">Troubleshooting turns into guesswork<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"1272\" data-end=\"1349\"><strong data-start=\"1272\" data-end=\"1290\">Best practice:<\/strong><br data-start=\"1290\" data-end=\"1293\" \/>Create a <strong data-start=\"1302\" data-end=\"1343\">dedicated Salesforce integration user<\/strong> with:<\/p>\n<ul data-start=\"1350\" data-end=\"1405\">\n<li data-start=\"1350\" data-end=\"1367\">\n<p data-start=\"1352\" data-end=\"1367\">Its own profile<\/p>\n<\/li>\n<li data-start=\"1368\" data-end=\"1382\">\n<p data-start=\"1370\" data-end=\"1382\">Its own role<\/p>\n<\/li>\n<li data-start=\"1383\" data-end=\"1405\">\n<p data-start=\"1385\" data-end=\"1405\">Explicit permissions<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"1407\" data-end=\"1488\">This user becomes the <em data-start=\"1429\" data-end=\"1441\">gatekeeper<\/em> of what data is even allowed to reach HubSpot.<\/p>\n<blockquote data-start=\"1490\" data-end=\"1618\">\n<p data-start=\"1492\" data-end=\"1618\">If the integration user can\u2019t see a record in Salesforce, HubSpot won\u2019t sync it.<br data-start=\"1572\" data-end=\"1575\" \/>That\u2019s not a limitation \u2014 that\u2019s a feature.<\/p>\n<\/blockquote>\n<h2 data-start=\"1625\" data-end=\"1680\">2. Selective Sync Isn\u2019t Optional \u2014 It\u2019s a Safety Net<\/h2>\n<p data-start=\"1682\" data-end=\"1787\">Many teams default to <em data-start=\"1704\" data-end=\"1740\">\u201csync everything and clean later.\u201d<\/em><br data-start=\"1740\" data-end=\"1743\" \/>That approach almost always leads to regret.<\/p>\n<p data-start=\"1789\" data-end=\"1818\">Selective Sync allows you to:<\/p>\n<ul data-start=\"1819\" data-end=\"1973\">\n<li data-start=\"1819\" data-end=\"1875\">\n<p data-start=\"1821\" data-end=\"1875\">Control <strong data-start=\"1829\" data-end=\"1838\">which<\/strong> Salesforce records flow into HubSpot<\/p>\n<\/li>\n<li data-start=\"1876\" data-end=\"1940\">\n<p data-start=\"1878\" data-end=\"1940\">Prevent junk, legacy, or partial data from polluting marketing<\/p>\n<\/li>\n<li data-start=\"1941\" data-end=\"1973\">\n<p data-start=\"1943\" data-end=\"1973\">Reduce sync-related overwrites<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"1975\" data-end=\"1995\">But there\u2019s a catch:<\/p>\n<ul data-start=\"1996\" data-end=\"2128\">\n<li data-start=\"1996\" data-end=\"2035\">\n<p data-start=\"1998\" data-end=\"2035\">It requires <strong data-start=\"2010\" data-end=\"2035\">Salesforce Enterprise<\/strong><\/p>\n<\/li>\n<li data-start=\"2036\" data-end=\"2079\">\n<p data-start=\"2038\" data-end=\"2079\">It requires <strong data-start=\"2050\" data-end=\"2079\">deep Salesforce knowledge<\/strong><\/p>\n<\/li>\n<li data-start=\"2080\" data-end=\"2128\">\n<p data-start=\"2082\" data-end=\"2128\">HubSpot support doesn\u2019t configure this for you<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"2130\" data-end=\"2210\">That\u2019s why we recommend setting it up <strong data-start=\"2168\" data-end=\"2183\">at day zero<\/strong>, not after damage is done.<\/p>\n<h2 data-start=\"2217\" data-end=\"2275\">3. Use an Inclusion List to Throttle Data Intelligently<\/h2>\n<p data-start=\"2277\" data-end=\"2350\">Selective Sync controls <em data-start=\"2301\" data-end=\"2313\">visibility<\/em>.<br data-start=\"2314\" data-end=\"2317\" \/>Inclusion Lists control <em data-start=\"2341\" data-end=\"2349\">volume<\/em>.<\/p>\n<p data-start=\"2352\" data-end=\"2401\">Together, they let you answer critical questions:<\/p>\n<ul data-start=\"2402\" data-end=\"2533\">\n<li data-start=\"2402\" data-end=\"2438\">\n<p data-start=\"2404\" data-end=\"2438\">Should all leads sync immediately?<\/p>\n<\/li>\n<li data-start=\"2439\" data-end=\"2491\">\n<p data-start=\"2441\" data-end=\"2491\">Should only MQLs or Sales-ready records flow back?<\/p>\n<\/li>\n<li data-start=\"2492\" data-end=\"2533\">\n<p data-start=\"2494\" data-end=\"2533\">What data should <em data-start=\"2511\" data-end=\"2518\">never<\/em> touch HubSpot?<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"2535\" data-end=\"2645\">Think of Inclusion Lists as your <strong data-start=\"2568\" data-end=\"2590\">traffic controller<\/strong> \u2014 especially important in high-volume Salesforce orgs.<\/p>\n<h2 data-start=\"2652\" data-end=\"2717\">4. The \u201cCompanies\u201d Trap: One of HubSpot\u2019s Most Painful Gotchas<\/h2>\n<p data-start=\"2719\" data-end=\"2761\">This one surprises even experienced teams.<\/p>\n<p data-start=\"2763\" data-end=\"2814\">Once <strong data-start=\"2768\" data-end=\"2781\">Companies<\/strong> start syncing <em data-start=\"2796\" data-end=\"2813\">from Salesforce<\/em>:<\/p>\n<ul data-start=\"2815\" data-end=\"2941\">\n<li data-start=\"2815\" data-end=\"2858\">\n<p data-start=\"2817\" data-end=\"2858\">HubSpot <strong data-start=\"2825\" data-end=\"2858\">does not allow company merges<\/strong><\/p>\n<\/li>\n<li data-start=\"2859\" data-end=\"2893\">\n<p data-start=\"2861\" data-end=\"2893\">Duplicate companies pile up fast<\/p>\n<\/li>\n<li data-start=\"2894\" data-end=\"2941\">\n<p data-start=\"2896\" data-end=\"2941\">Marketing loses clean account-level reporting<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"2943\" data-end=\"2972\">This usually happens because:<\/p>\n<ul data-start=\"2973\" data-end=\"3120\">\n<li data-start=\"2973\" data-end=\"3023\">\n<p data-start=\"2975\" data-end=\"3023\">Salesforce Accounts aren\u2019t deduplicated properly<\/p>\n<\/li>\n<li data-start=\"3024\" data-end=\"3064\">\n<p data-start=\"3026\" data-end=\"3064\">Naming conventions aren\u2019t standardized<\/p>\n<\/li>\n<li data-start=\"3065\" data-end=\"3120\">\n<p data-start=\"3067\" data-end=\"3120\">The integration is allowed to create companies freely<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"3122\" data-end=\"3209\"><strong data-start=\"3122\" data-end=\"3138\">Bottom line:<\/strong><br data-start=\"3138\" data-end=\"3141\" \/>Account hygiene in Salesforce directly determines sanity in HubSpot.<\/p>\n<h2 data-start=\"3216\" data-end=\"3280\">5. Duplicate Contacts: Email Is the Only Truth HubSpot Trusts<\/h2>\n<p data-start=\"3282\" data-end=\"3342\">HubSpot deduplicates contacts strictly by <strong data-start=\"3324\" data-end=\"3341\">email address<\/strong>.<\/p>\n<p data-start=\"3344\" data-end=\"3372\">What this means in practice:<\/p>\n<ul data-start=\"3373\" data-end=\"3578\">\n<li data-start=\"3373\" data-end=\"3442\">\n<p data-start=\"3375\" data-end=\"3442\">Two Salesforce records with different emails = two HubSpot contacts<\/p>\n<\/li>\n<li data-start=\"3443\" data-end=\"3514\">\n<p data-start=\"3445\" data-end=\"3514\">Two Salesforce records with the same email = unpredictable overwrites<\/p>\n<\/li>\n<li data-start=\"3515\" data-end=\"3578\">\n<p data-start=\"3517\" data-end=\"3578\">HubSpot syncs to whichever Salesforce record was updated last<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"3580\" data-end=\"3622\">If duplicates already exist in Salesforce:<\/p>\n<ul data-start=\"3623\" data-end=\"3768\">\n<li data-start=\"3623\" data-end=\"3660\">\n<p data-start=\"3625\" data-end=\"3660\">Clean them <em data-start=\"3636\" data-end=\"3644\">before<\/em> turning on sync<\/p>\n<\/li>\n<li data-start=\"3661\" data-end=\"3715\">\n<p data-start=\"3663\" data-end=\"3715\">Identify which Salesforce record is actively syncing<\/p>\n<\/li>\n<li data-start=\"3716\" data-end=\"3768\">\n<p data-start=\"3718\" data-end=\"3768\">Merge carefully \u2014 or risk breaking the integration<\/p>\n<\/li>\n<\/ul>\n<h2 data-start=\"3775\" data-end=\"3828\">6. Leads vs Contacts: Choose Carefully (and Early)<\/h2>\n<p data-start=\"3830\" data-end=\"3889\">If your Salesforce org uses <strong data-start=\"3858\" data-end=\"3875\">Leads heavily<\/strong>, be cautious.<\/p>\n<p data-start=\"3891\" data-end=\"3915\">We\u2019ve seen teams assume:<\/p>\n<blockquote data-start=\"3916\" data-end=\"3947\">\n<p data-start=\"3918\" data-end=\"3947\">\u201cHubSpot \u2194 Salesforce is 1:1\u201d<\/p>\n<\/blockquote>\n<p data-start=\"3949\" data-end=\"3992\">That\u2019s rarely true when Leads are involved.<\/p>\n<p data-start=\"3994\" data-end=\"4014\">Without clear rules:<\/p>\n<ul data-start=\"4015\" data-end=\"4172\">\n<li data-start=\"4015\" data-end=\"4085\">\n<p data-start=\"4017\" data-end=\"4085\">One HubSpot contact can bounce between Salesforce Leads and Contacts<\/p>\n<\/li>\n<li data-start=\"4086\" data-end=\"4141\">\n<p data-start=\"4088\" data-end=\"4141\">Ownership, lifecycle stage, and attribution get messy<\/p>\n<\/li>\n<li data-start=\"4142\" data-end=\"4172\">\n<p data-start=\"4144\" data-end=\"4172\">Reporting becomes unreliable<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"4174\" data-end=\"4220\">If you\u2019re unsure \u2014 simplify first, then scale.<\/p>\n<h2 data-start=\"4227\" data-end=\"4275\">7. Think in Data Flow, Not Just Sync Settings<\/h2>\n<p data-start=\"4277\" data-end=\"4322\">The most overlooked question in integrations:<\/p>\n<blockquote data-start=\"4323\" data-end=\"4373\">\n<p data-start=\"4325\" data-end=\"4373\"><em data-start=\"4325\" data-end=\"4373\">When should data flow \u2014 and when shouldn\u2019t it?<\/em><\/p>\n<\/blockquote>\n<p data-start=\"4375\" data-end=\"4387\">Ask upfront:<\/p>\n<ul data-start=\"4388\" data-end=\"4502\">\n<li data-start=\"4388\" data-end=\"4417\">\n<p data-start=\"4390\" data-end=\"4417\">What data must always sync?<\/p>\n<\/li>\n<li data-start=\"4418\" data-end=\"4467\">\n<p data-start=\"4420\" data-end=\"4467\">What data should sync only after qualification?<\/p>\n<\/li>\n<li data-start=\"4468\" data-end=\"4502\">\n<p data-start=\"4470\" data-end=\"4502\">What data should <strong data-start=\"4487\" data-end=\"4496\">never<\/strong> sync?<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"4504\" data-end=\"4579\">Good integrations aren\u2019t \u201calways on.\u201d<br data-start=\"4541\" data-end=\"4544\" \/>They\u2019re <strong data-start=\"4552\" data-end=\"4578\">intentionally designed<\/strong>.<\/p>\n<h2 data-start=\"4586\" data-end=\"4652\">RightWave\u2019s Take: Integrations Are Architecture, Not Checkboxes<\/h2>\n<p data-start=\"4654\" data-end=\"4770\">We see HubSpot\u2013Salesforce integrations fail not because teams lacked tools \u2014 but because they lacked <strong data-start=\"4755\" data-end=\"4769\">governance<\/strong>.<\/p>\n<p data-start=\"4772\" data-end=\"4831\">At RightWave, we approach integrations like systems design:<\/p>\n<ul data-start=\"4832\" data-end=\"4917\">\n<li data-start=\"4832\" data-end=\"4849\">\n<p data-start=\"4834\" data-end=\"4849\">Clear ownership<\/p>\n<\/li>\n<li data-start=\"4850\" data-end=\"4869\">\n<p data-start=\"4852\" data-end=\"4869\">Controlled access<\/p>\n<\/li>\n<li data-start=\"4870\" data-end=\"4893\">\n<p data-start=\"4872\" data-end=\"4893\">Intentional data flow<\/p>\n<\/li>\n<li data-start=\"4894\" data-end=\"4917\">\n<p data-start=\"4896\" data-end=\"4917\">Long-term scalability<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"4919\" data-end=\"5068\">If you\u2019re stepping into a new role, inheriting an integration, or planning a CRM transition \u2014 it\u2019s worth slowing down <strong data-start=\"5037\" data-end=\"5047\">before<\/strong> flipping the switch.<\/p>\n<p data-start=\"5070\" data-end=\"5158\">Because fixing bad data later always costs more than setting it up right the first time.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>If you\u2019ve ever heard someone say \u201cI don\u2019t trust the data in HubSpot\u201d or \u201cSalesforce is creating a mess for marketing\u201d, chances are the problem isn\u2019t the tools \u2014 it\u2019s how the integration was set up. A recent conversation in the MO Pros community perfectly captured the real-world pain teams face when working with HubSpot&hellip;<\/p>\n","protected":false},"author":45,"featured_media":90128,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-90123","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-welcome"],"_links":{"self":[{"href":"https:\/\/rightwave.com\/rwi\/wp-json\/wp\/v2\/posts\/90123","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rightwave.com\/rwi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rightwave.com\/rwi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rightwave.com\/rwi\/wp-json\/wp\/v2\/users\/45"}],"replies":[{"embeddable":true,"href":"https:\/\/rightwave.com\/rwi\/wp-json\/wp\/v2\/comments?post=90123"}],"version-history":[{"count":5,"href":"https:\/\/rightwave.com\/rwi\/wp-json\/wp\/v2\/posts\/90123\/revisions"}],"predecessor-version":[{"id":90130,"href":"https:\/\/rightwave.com\/rwi\/wp-json\/wp\/v2\/posts\/90123\/revisions\/90130"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rightwave.com\/rwi\/wp-json\/wp\/v2\/media\/90128"}],"wp:attachment":[{"href":"https:\/\/rightwave.com\/rwi\/wp-json\/wp\/v2\/media?parent=90123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rightwave.com\/rwi\/wp-json\/wp\/v2\/categories?post=90123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rightwave.com\/rwi\/wp-json\/wp\/v2\/tags?post=90123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}