> ## Documentation Index
> Fetch the complete documentation index at: https://docs.os.default.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Running Default with Salesforce and HubSpot at the same time

> Default can connect Salesforce and HubSpot at the same time, and this page explains how workflows, routing, user mappings, Data sync, and the Chrome extension choose a CRM when a team uses both.

Default can connect Salesforce and HubSpot to the same workspace at the same time. Each workflow
trigger and each CRM node names the CRM it uses, so a single workspace can route, create, and update
records in both. This page covers what teams ask when they run both CRMs, for example when they move
lead routing and scheduling from Chili Piper to Default.

## Can Default connect Salesforce and HubSpot at once?

Yes. Salesforce and HubSpot are separate integrations, and connecting one doesn't block or replace the
other.

* Connect each one from **Settings** → **Integrations**. See [Salesforce](/settings/integrations/salesforce)
  and [HubSpot](/settings/integrations/hubspot).
* During onboarding, the **Connect Data Sources** step lists both, and you can connect either or both.
* Each integration page has its own **Data sync** and **Watched fields** sections.

## How a workflow picks the CRM

Every CRM trigger and CRM node names the CRM it uses:

| Where | Field that picks the CRM | With both connected |
| - | - | - |
| **CRM Record Created** and **CRM Record Updated** triggers | **CRM**, listing **Connected CRMs** | Choose **Salesforce** or **HubSpot** for each trigger. |
| **Create Record** and **Update Record** | **Platform**, listing connected CRMs | Choose it on each node. |
| **Match Record** | **CRM**, listing connected CRMs | Choose it on each node. |
| The activity and engagement nodes | **CRM**, which always lists **Salesforce** and **HubSpot** | Choose it on each node. |
| **Convert Lead** | **CRM** | Always **Salesforce**. The node appears once Salesforce is connected. |
| **Create Association** | **CRM** | Always **HubSpot**. The node appears once HubSpot is connected. |

With only 1 CRM connected, Default fills in the CRM on new record and activity nodes for you. With
both connected, nothing is filled in, so choose the CRM on every node.

A workflow starts from 1 trigger, so a workflow that starts from a CRM record watches 1 CRM. To react
to changes in both CRMs, build a workflow for each. The nodes after the trigger can still work in
either CRM, because each node names its own. See [CRM nodes](/workflows/steps-crm) and
[Triggers](/workflows/triggers).

## How the rest of Default picks the CRM

| Part of Default | How it chooses between Salesforce and HubSpot |
| - | - |
| **Round-Robin** node and queues | Queues work with either CRM. The owner field your **Update Record** or **Create Record** node writes decides which CRM gets the owner. |
| User mappings | Each member can have a Salesforce User ID and a HubSpot Owner ID. Default uses the one that matches the CRM it writes to. |
| [Rules of Engagement](/rules-of-engagement) | Each source you declare names its CRM, and the workflow maps that CRM's record fields into the ruleset's inputs. |
| Person and Company records | [Objects](/settings/configurations/objects) lists CRM sources from both, such as `Salesforce: Lead` and `HubSpot: Contact`. The **Priority** order decides which source fills each field. |
| **Data sync** | Set separately on each CRM's integration page. |
| [Chrome extension](/chrome-extension) lead lookup | Tries Salesforce first (Contact, then Lead, by email), then a HubSpot contact. The first match is the record the panel shows. |
| [MCP server](/mcp-server) (Beta) | Each CRM tool call names the CRM it reads or writes. |

## Routing with both CRMs

A single queue can assign owners in both CRMs. What changes is the setup around it:

* **Map queue members in every CRM the queue writes to.** A member without a Salesforce User ID can't
  become a Salesforce owner, and a member without a HubSpot Owner ID can't become a HubSpot owner. The
  write fails for that member. When each CRM connects, Default maps members by email automatically.
  Check the rest in [Settings → Users](/settings/users) on the **Mappings** tab.
* **Each counted owner write is 1 assignment.** When the queue's policy routes **Objects**, the queue
  counts an assignment each time a **Round-Robin** result is written to a standard owner field, in
  either CRM. If a workflow writes the same result to a Salesforce record and a HubSpot record, the
  member's count goes up by 2.
* **Both CRMs show up in Assignments.** The **Object assignments** tab under **Assignments** in
  **Routing** lists owner writes from both CRMs, so you can check every decision in a single list.

For queue and policy setup, see [Queues](/queues) and [Policies](/policies).

## What to watch for with both CRMs

| Watch for | Why it matters | What to do |
| - | - | - |
| The same person in both CRMs | A Salesforce workflow and a HubSpot workflow can each route the same person, and give them 2 different owners. | Route each segment in 1 CRM. Give each trigger a **Condition** so a record qualifies in only 1 place. If your CRMs already sync with each other, route in 1 of them and let that sync carry the owner across. |
| Different trigger objects | Salesforce triggers cover Lead, Contact, Account, Opportunity, and other objects that support Change Data Capture. HubSpot triggers cover only Contact, Company, and Deal. | Plan HubSpot routing on contacts, companies, or deals. |
| Different change timing | Salesforce pushes changes to Default. Default checks HubSpot for updated records every few minutes. | Expect HubSpot update workflows to start a little later than Salesforce ones. |
| No default CRM on nodes | With both connected, new CRM nodes start with no CRM selected. | Set **Platform** or **CRM** on every CRM node before you publish. |
| Form routing | A form submission doesn't belong to either CRM. | Start with **Match Record** in the CRM you route in, and only create and route on **No Match**, so a repeat submission keeps the existing owner. |
| The Chrome extension prefers Salesforce | A person in both CRMs shows their Salesforce record. | Keep this in mind when reps work HubSpot-owned contacts from the extension. |
| Field values from 2 sources | Default's Person and Company records can fill the same field from either CRM. | Order the CRM sources in [Objects](/settings/configurations/objects) so the right CRM wins. |

Related: [Default integrations](https://www.default.com/integrations)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.