Connect HubSpot
Connect your HubSpot account in minutes – no API keys, no webhooks to wire by hand. Authorize once, then map CRM events like new contacts, new deals and deal-stage changes straight onto your conversions.
Connecting HubSpot turns CRM events – new contacts, new deals, lifecycle and deal-stage changes – into LeadJourney conversions, automatically attributed to the campaign, ad set and ad that earned them. You authorize HubSpot once (no keys to copy, no webhook URLs to paste by hand), then map each HubSpot event onto one of your conversion types. Mapped events flow through the same postback pipeline as your offline conversions, so they automatically pick up every ad postback you've already configured.
Before you start
Have these ready so the connection works end to end:
- An active LeadJourney workspace and a HubSpot account you can sign in to.
- Tracking is live – clicks have to be recorded first so CRM records can be matched back to a campaign. See Install the tracking script.
- A way to capture the click ID on your HubSpot records – typically a hidden form field that stores LeadJourney's click ID on the contact (see the callout below).
- At least one conversion type to map onto (e.g.
WonClient). Set these up first in the Events Manager.
Where to find it
Open Settings → Apps, or go to app.leadjourney.io/settings?slug=apps. Click the HubSpot card to open the integration. While you're not connected you'll see a “Connect your HubSpot account” card; once connected, the same screen shows your account, portal and triggers.
Step by step
Authorize LeadJourney from HubSpot
On the Connect your HubSpot account card, click Connect with HubSpot. You'll be redirected to HubSpot to sign in and approve LeadJourney's access, and to choose which HubSpot account to connect.
The grant gives read access to your contacts and deals, plus permission to subscribe to CRM object events (so LeadJourney can pick up creations and property changes) – there are no keys to copy and no webhook URLs to paste. After you approve, HubSpot sends you back and you'll see a “HubSpot connected” confirmation.
Check the connection details
Once connected, the header shows everything at a glance: a Live pill (or Needs reconnect if something breaks), your connected account and Portal ID, how many triggers are active, and the date you connected. A Disconnect button lives in the same header for later.
Add a trigger
In the Triggers panel – “Each trigger maps a HubSpot event to one of your conversions.” – click Add trigger. In the New HubSpot trigger dialog:
- App – HubSpot (already selected).
- Object type – choose Contact or Deal.
- Event type – choose Created (a new record) or Property changed.
- Property (property-changed only) – pick which property to watch, e.g. Lifecycle stage, Lead status or Deal stage.
- Target value (optional) – leave blank to fire on any change, or pin it to a value. For Deal stage this becomes a dropdown of your pipeline stages (with Any stage change as the default).
- LeadJourney Event – pick the conversion type this HubSpot event should record, e.g.
WonClient. (No options? Create one under Settings → Events first.)
Click Continue.
Deal stages come from your pipelines
When you watch the Deal stage property, LeadJourney loads your HubSpot pipelines and lists every stage as Pipeline · Stage, so you can fire a conversion exactly when a deal reaches, say, Sales Pipeline · Closed won.
Receive data and confirm the mapping
The dialog opens a three-tab flow:
- Receive Data – click Check for Data to pull recent records for the object and event you picked. If nothing appears, create or update a record in HubSpot and check again, then select a record to map against.
- Configure Mapping – map the HubSpot record onto LeadJourney columns – Email, Full
name, First name, Last name, Phone, Zip, click_id, Revenue and
Cash collected – using Add custom field for anything extra. On Deal triggers you
can also pull values from the associated contact (
contact.…). Mappingclick_idis recommended but optional (see the callout below). - Filtering (optional) – add conditions so the trigger only fires for matching records.
Click Activate to finish.
How HubSpot records link to the right campaign
HubSpot doesn't capture LeadJourney's click ID on its own – you store it on the record and
map it here. The usual setup is a hidden field on your HubSpot form that holds the
visitor's click_id (LeadJourney's tracking script fills it in), written to a contact
property. On the Configure Mapping tab, point click_id at that property and every
contact or deal arrives already tied to the click – and therefore the campaign, ad set and
ad – that earned it. No click ID? LeadJourney falls back to matching on email or
phone.
Managing your triggers
Each trigger appears as a row – e.g. Deal · dealstage → conversion type – with an Active / Paused pill and a summary of how many fields and filters it uses.
- Pause / Resume – temporarily stop a trigger without deleting it.
- Edit – change the mapping, filters or target conversion.
- Delete – remove a single trigger; others keep running.
- Add another – use Add trigger again to map more HubSpot events (new contacts, new deals, stage changes) onto different conversions.
Reconnecting
If HubSpot revokes the app, the event subscription goes missing, or HubSpot is unreachable, the header flips to Needs reconnect and shows a banner explaining why. Click Reconnect to re-run the authorization – your triggers stay in place.
Disconnecting
To remove HubSpot, click Disconnect in the header and type disconnect to confirm.
This is deliberate because it's destructive:
Disconnect deletes your triggers
Disconnecting permanently removes the HubSpot connection, deletes every trigger and revokes the OAuth grant. HubSpot events stop flowing into your conversions immediately. You can reconnect later, but your trigger configuration won't be restored – you'll set them up again.
Troubleshooting
No records when you click “Check for Data”?
Nothing has happened in HubSpot for that object and event yet. Create or update a matching record – a new contact, a new deal, or a stage change – then click Check for Data again. The matching record should appear so you can finish the mapping.
Records come in but aren't attributed to a campaign?
LeadJourney needs to know which click the record belongs to. Check that (1) the tracking script is installed and recording clicks, (2) your HubSpot form stores the click ID on the record and the trigger maps click_id to that property, and (3) the trigger is Active. As a fallback, email or phone can be used to match.
Header shows “Needs reconnect”?
HubSpot has revoked the grant, the subscription is gone, or the API is unreachable. Click Reconnect in the banner to re-authorize. Your triggers are preserved.
Related articles
Connect Cal.com
Connect your Cal.com account in minutes – no API keys, no webhooks to wire by hand. Authorize once, then map booking events like meetings booked, reschedules, cancellations and no-shows straight onto your conversions.
Connect Attio
Connect your Attio workspace in minutes – no API keys, no webhooks to wire by hand. Authorize once, then map CRM record events like new people, new deals, new companies and stage changes straight onto your conversions.