> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.pivotal.app/llms.txt.
> For full documentation content, see https://docs.pivotal.app/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.pivotal.app/_mcp/server.

# Connect your CRM

Pivotal supports three CRM connectors: **HubSpot**, **Salesforce**, and **Stripe**. Pick the system where new customers land first. That system becomes the source of truth for customer names, domains, and primary contacts. Pivotal writes back state changes (active, at-risk, churned) but does not create or rename customers in the CRM.

Connect from **Admin > Integrations**. Per-connector setup detail lives under [Integrations](/product/integrations).

## Which one should you connect?

|                     | HubSpot                                | Salesforce                           | Stripe                                  |
| ------------------- | -------------------------------------- | ------------------------------------ | --------------------------------------- |
| **Use when**        | CS lives in HubSpot, sales-led motion  | Enterprise CRM, complex object model | PLG / self-serve, billing is the signal |
| **What syncs in**   | Companies > Customers, Contacts        | Accounts > Customers, Contacts       | Customers > Customers, no contacts      |
| **What syncs out**  | Customer state, owner, plan            | Customer state, owner, plan          | Customer state only                     |
| **Sync frequency**  | Real-time webhooks + nightly reconcile | 15-min poll + nightly reconcile      | Real-time webhooks                      |
| **Custom fields**   | Yes, mapped per-property               | Yes, mapped per-field                | No                                      |
| **Auth**            | OAuth, you click through               | OAuth + connected app permissions    | OAuth, restricted API key               |
| **First-sync time** | 10-30 min for typical books            | 30-90 min for typical books          | Under 5 min                             |

## Pick one, not three

The supported pattern is one connector per workspace. Connecting HubSpot and Stripe at the same time creates duplicate customer records when a domain matches across both. If you need to reconcile two systems, leave one off and use [data export](/product/integrations/data-export) plus the [API](/api/welcome/quickstart) to push the second source's signal into Pivotal as field updates on the existing customer.

The exception: Stripe as a billing-signal source alongside HubSpot or Salesforce as the customer source. Connect HubSpot first, then connect Stripe with the **Billing signal only** toggle in the Stripe setup flow. Pivotal then attaches Stripe MRR to existing customers via domain match and does not create new ones.

## When new CRM customers appear in Pivotal

HubSpot and Stripe push via webhook; expect new customers in Pivotal inside a minute. Salesforce polls every 15 minutes. The nightly reconcile (3am workspace time) catches anything the webhook missed, plus syncs field changes that don't fire webhooks (e.g. contact title updates in HubSpot).

## The mapping gotcha

Pivotal's customer.name maps to HubSpot's company `name`, Salesforce's account `Name`, and Stripe's customer `name` field. If your CRM stores legal entity names ("Acme Corporation, Inc.") and your team uses display names ("Acme"), set the display name explicitly under **Admin > Integrations > \[provider] > Field mapping** before the first sync. Renaming after the fact is fine but each rename writes back to the CRM unless you flip the writeback toggle off.

## Related

* [Connect HubSpot](/product/integrations/connect-hubspot)
* [Connect Stripe](/product/integrations/connect-stripe)
* [Field mapping](/product/integrations/field-mapping)

Email **[help@pivotal.app](mailto:help@pivotal.app)** with a screenshot of where you got stuck and the customer or onboarding id from the URL.