Connect HubSpot
Send leads captured on your hosted pages straight into HubSpot, each one carrying the page that produced it, so pipeline can be traced back to the content that created it.
When someone fills in a form on one of your hosted pages, PingAura captures the enquiry and scores it. Connecting HubSpot sends that person into your CRM, where your team already works, along with a note recording which page they came from.
That last part is the point. A lead with no source attached is a lead you cannot credit to anything. A lead carrying its page lets you answer the only question that matters about content: did it produce revenue.
Before you start
You need a HubSpot CRM account. The free tier is enough.
You do not need a HubSpot developer account. Developer accounts are for building apps for HubSpot's marketplace and hold no CRM data, so a credential from one would connect to nothing. If the left-hand menu says Projects, Legacy Apps and Marketplace Listings, you are in the wrong place.
Create a credential
HubSpot is moving between two credential types and both work here.
Service key, which HubSpot now recommends for integrations like this one:
- In HubSpot, go to Settings, then Integrations, then Service keys.
- Create a key and give it a name you will recognise later, such as PingAura.
- Select the scopes below.
- Copy the key.
Private app token, the older option, still fully supported:
- Go to Settings, then Integrations, then Private apps. HubSpot may list these under Legacy apps.
- Create a private app, name it, and open the Scopes tab.
- Select the scopes below.
- Create the app and copy the access token.
Scopes
| Scope | Needed for |
|---|---|
crm.objects.contacts.read | Finding an existing contact |
crm.objects.contacts.write | Creating and updating the contact |
crm.schemas.contacts.write | Optional, see below |
There is no notes scope to select, and you do not need one. HubSpot's engagement APIs, which is what a note is, run on the contact scope. If you go looking for crm.objects.notes.write in the scope picker you will not find it: HubSpot documents the name but does not offer it there.
The third scope is optional. With it, PingAura creates two contact properties, PingAura lead score and PingAura source page, so both are filterable in HubSpot. Without it, connecting still succeeds and every lead still arrives with its page recorded on the note. Nothing is lost except two columns.
If you are on a free HubSpot account, note that it allows ten custom properties in total across contacts. PingAura uses two of them, deliberately, which is why the enquiry text travels as a note rather than as more properties.
Connect it
- In PingAura, open Integrations and choose the CRM tab.
- Click HubSpot.
- Choose the domain this portal is for.
- Paste the key or token.
- Choose what happens to leads you have already captured.
PingAura checks the credential against HubSpot before storing anything, so an incorrect one is rejected immediately rather than failing silently later. The credential is encrypted before it is written to our database.
One HubSpot portal connects per domain, so two brands on the same PingAura account can send to two different portals and neither sees the other's leads. To move a domain to a different portal, disconnect it first.
Existing leads
Connecting asks whether to send leads you captured before now.
Only leads captured from now on is the default. Nothing already sitting in your PingAura inbox is sent.
Every lead, including ones already captured sends your whole back catalogue. On an established inbox that can be a large number of contacts arriving in HubSpot at once, and it is not something PingAura can undo for you afterwards. Choose it deliberately.
What arrives in HubSpot
Each lead becomes a contact with the email address, name and phone number the person supplied, plus a note containing:
- when the enquiry was captured
- the page title, its URL, and the type of page
- whatever the person wrote in the message field
If someone who is already in your CRM enquires again, PingAura updates the existing contact rather than creating a duplicate.
When it runs
Leads are pushed shortly after capture, not instantly. Capture never waits on HubSpot: if we made the form submission depend on a third party being reachable, an outage at HubSpot would become lost leads for you. So the enquiry is saved first and pushed a few minutes later.
If HubSpot is unavailable or rate limits us, PingAura retries. If HubSpot rejects a lead outright, for example because the email address is malformed, that lead is left alone rather than retried indefinitely, and the reason is recorded against it.
Seeing whether it worked
The lead inbox shows the CRM state of every lead once a portal is connected:
- In CRM, with the contact created or updated
- Queued, captured and waiting for the next push
- Failed, with the reason from HubSpot on hover
If the credential itself stops working, for example because the key was rotated or revoked, the integration is marked with an error in the Integrations page and the affected leads stay queued rather than being discarded. Reconnect with a working key and they go out.
If you disconnect
Contacts already in HubSpot stay there. They are yours, under your own retention policy, and PingAura does not reach into your CRM to remove them. New leads stop being pushed and remain available in your PingAura inbox.