Skip to main content
Outpost’s HubSpot integration mirrors your member list into HubSpot as contact records. When a member is created or updated in Outpost, the matching HubSpot contact is created or updated to match.

What syncs today

When Outpost creates a contact in HubSpot, the following member data is sent: The contact sync is create-only today: Outpost creates or matches the contact by email and sets the name fields when a member signs up. Subscription state changes (upgrade, cancel, renew) are not written to HubSpot.

Setup

The HubSpot integration connects via OAuth. You click Connect in Outpost, authorize Outpost in HubSpot, and you’re redirected back with the connection live: there’s no token to copy and paste.
1

Click Connect in Outpost

Go to the HubSpot integration in Outpost and click Connect. Outpost opens HubSpot’s authorization screen.
2

Authorize Outpost in HubSpot

Sign in to HubSpot (if prompted) and approve the requested permissions. Outpost requests read and write access to CRM contacts (crm.objects.contacts.read, crm.objects.contacts.write).
3

Choose an import mode

On connect you can choose Import Existing Members to pull your current HubSpot contacts into Outpost as members, or Add Only New Members to sync from this point forward. The full import runs as a background job to avoid HubSpot API rate limits on large lists.

When syncing happens

Outpost pushes events to HubSpot in near real-time as background jobs. Failed jobs retry automatically up to three times. Outpost pushes member creates to HubSpot. HubSpot also notifies Outpost via webhook: when a contact is created in HubSpot it’s imported as an Outpost member, and when a contact is deleted (privacy deletion) the matching member is removed.

Conflict resolution

If a contact already exists in HubSpot with the same email as an Outpost member, Outpost matches that contact rather than creating a duplicate. The match is on email: make sure HubSpot doesn’t have multiple records sharing the same email or one of them will be updated arbitrarily.

What happens when sync fails

  • The Outpost member record is unaffected by HubSpot sync state.
  • Transient failures (network, HubSpot API errors) retry automatically.
  • If the OAuth connection is revoked in HubSpot or scopes change, syncs fail until you reconnect. Outpost refreshes access tokens automatically while the connection is authorized.
  • The Outpost team monitors sync health and reaches out for persistent issues.

Disconnecting

Disconnect the HubSpot integration in Outpost to stop syncing. Existing HubSpot contacts and Outpost members are kept: they simply stop updating each other.

What isn’t synced

Outpost sends only the contact’s email, first name, and last name. Subscription state (tier, status, MRR, signup date) is not written to HubSpot custom properties today. If subscription-state sync would be valuable for your workflow, tell us at support@outpost.pub so we can factor it into the roadmap.

Labels

Apply labels in Outpost for HubSpot-sourced or HubSpot-synced members.

Members

The member records that get synced.

FAQ

Not today. The integration creates contacts with email and name only: subscription state isn’t written to HubSpot. If you need it, let us know at support@outpost.pub.
No. Disconnecting only stops future syncing. Existing HubSpot contacts and Outpost members remain untouched.
Yes. When you connect, choose Import Existing Members to pull your current HubSpot contacts into Outpost as members. After that, newly created HubSpot contacts are imported automatically via webhook.
During the OAuth authorization Outpost requests the contact read and contact write scopes (crm.objects.contacts.read, crm.objects.contacts.write). Outpost only reads and writes contact data: no other CRM objects are touched.
The contact record updates when there’s a member event. Email and name fields are kept in sync via the standard upsert path. If you don’t see HubSpot update after a name change, contact support@outpost.pub.