> For the complete documentation index, see [llms.txt](https://docs.11x.ai/llms.txt).
> Use it to discover all available pages before exploring further.

# HubSpot integration

Connect HubSpot to 11x with the native connector. Authorize access, map properties, set exclusion rules, and verify bi-directional sync before launch.


HubSpot connects to 11x through a native connector. You authorize it, map objects and properties, configure exclusion rules, and verify a test record end to end. The mapping step matters more in HubSpot than elsewhere because lifecycle stage and deal state are what stop a digital worker contacting a record your team already owns.

<Callout kind="info">
**Who this applies to:** 11x workspace Admins with HubSpot admin access. This is a prerequisite for launching either digital worker.
</Callout>

## Prerequisites

| Requirement | Why |
| --- | --- |
| HubSpot user with object access | The connector acts with these permissions |
| Access to the properties you'll map | Unmapped or invisible properties fail silently |
| Your lifecycle stage definitions | Drives exclusion rules |
| A test Company and Contact | For end-to-end verification |

## Step 1 — Authorize the connection

<Steps>
  <Step title="Open the integration" icon="plug">
    In 11x, go to **Settings → Integrations** and select **HubSpot**.
  </Step>
  <Step title="Authorize" icon="lock">
    Complete the authorization flow and select the HubSpot account to connect. Confirm the requested scopes cover every object you intend to sync.
  </Step>
  <Step title="Confirm the portal" icon="check-circle">
    If your company has multiple HubSpot portals, verify you connected the one your GTM team actually uses.
  </Step>
</Steps>

## Step 2 — Map objects and properties

<Tabs>
  <Tab title="Read from HubSpot" icon="download">
    | HubSpot object | Used for |
    | --- | --- |
    | Company | Firmographics, owner, customer status |
    | Contact | Contact detail, role, lifecycle stage |
    | Deal | Open-deal exclusion, closed-lost revival plays |
    | Owner properties | Routing and ownership exclusions |
    | Custom properties | Segment, tier, or region fields your ICP depends on |
  </Tab>
  <Tab title="Write to HubSpot" icon="upload">
    | Data | Typical destination |
    | --- | --- |
    | Emails sent and replies | Engagement / activity timeline |
    | Call status, outcome, transcript | Call engagement plus custom properties |
    | Qualification result and ICP score | Custom Contact properties |
    | Research summary | Custom multi-line text property |
    | Meeting booked | Meeting engagement |
    | New inbound contacts | Auto-created Contact, associated to a Company |
  </Tab>
</Tabs>

<Callout kind="tip">
Create dedicated custom properties for 11x output rather than reusing existing ones. HubSpot workflows and lists often depend on existing properties in ways that aren't obvious until something breaks.
</Callout>

## Step 3 — Configure exclusion rules

Exclude, at minimum:

- Companies with an **open Deal**
- Contacts whose **lifecycle stage** is Customer
- Records with an **assigned owner**, where your policy reserves them
- Competitors, partners, and your do-not-contact list
- Contacts who have **opted out** of communication

<Callout kind="alert">
HubSpot lifecycle stage is frequently inconsistent across teams. Audit it before launch — if "Customer" isn't reliably set, that exclusion won't protect your installed base.
</Callout>

## Step 4 — Verify the sync

<Steps>
  <Step title="Check the read direction" icon="download">
    Confirm 11x sees a test Company with the right owner, deal state, and custom properties.
  </Step>
  <Step title="Run a test record through a motion" icon="flask-conical">
    Send one test outreach or run one inbound lead.
  </Step>
  <Step title="Confirm the write direction" icon="upload">
    Check the Contact timeline for the activity, and the custom properties for the score and outcome.
  </Step>
  <Step title="Confirm an exclusion fires" icon="ban">
    Take a record that should be excluded and verify the digital worker skips it.
  </Step>
</Steps>

## Frequently Asked Questions

<Expandable title="Why does no data appear after authorization succeeded?">
The granted scopes don't cover the objects you mapped. Re-authorize and confirm each scope.
</Expandable>

<Expandable title="Why does a mapped HubSpot property never populate?">
The property isn't visible to the connecting user, or it's a calculated property that can't be written to. Use a plain custom property for 11x output.
</Expandable>

<Expandable title="Why are duplicate contacts being created?">
Matching isn't finding existing records. Confirm the match field — usually email — and check whether the incoming records have the email populated at all.
</Expandable>

<Expandable title="Why are existing customers being contacted?">
Lifecycle stage isn't reliably set to Customer, or the exclusion rule references a different property. Audit lifecycle stage coverage before relying on it.
</Expandable>

## Next steps

<Columns cols={2}>
  <Card title="Integrations overview" icon="plug" href="/integrations" horizontal>
    Everything 11x connects to.
  </Card>
  <Card title="Salesforce integration" icon="cloud" href="/integrations/salesforce" horizontal>
    If you run both CRMs.
  </Card>
  <Card title="Set up Alice" icon="send" href="/alice/setup" horizontal>
    Configure outbound.
  </Card>
  <Card title="Set up Julian" icon="inbox" href="/julian/setup" horizontal>
    Configure inbound.
  </Card>
</Columns>
