Skip to content

HubSpot

For Brands

The HubSpot integration pushes leads captured through KynectLocal forms directly into your HubSpot CRM as contacts. Every time a visitor submits a form on a location page, KynectLocal creates or updates the matching contact in HubSpot — no manual export required.


  • Trigger: A visitor submits any form on a location page.
  • Action: KynectLocal queues a push job that calls the HubSpot Contacts API (v3).
  • Result: A new contact is created in HubSpot with firstname, lastname, email, phone, and hs_lead_status: NEW. If the email already exists in HubSpot, the existing contact is updated instead.
  • Visibility: Every push attempt (success or failure) appears in the Recent Activity table on the integration detail page.

HubSpot connects via a Private App Token — not OAuth. You create the token once inside your HubSpot account.

  1. Log in to app.hubspot.com.
  2. Click the Settings gear icon (top-right).
  3. In the left sidebar, go to Integrations → Private Apps.
  4. Click Create a private app.
  5. Give it a name (e.g. “KynectLocal Integration”).
  6. Go to the Scopes tab and enable:
    • crm.objects.contacts.write
    • crm.objects.contacts.read
  7. Click Create app, then Continue creating in the confirmation dialog.
  8. Copy the token — you will only see it once. Treat it like a password.

Integrations page with HubSpot shown as a card in the CRM category, including stat badges for leads pushed.
  1. Go to Apps → Integrations.
  2. Find HubSpot in the CRM category and click Connect.
HubSpot integration detail page showing the Connect form with the Private App Token field and optional Portal ID field.
  1. Paste your Private App Token into the Private App Token field.
  2. (Optional) Enter your Portal ID — found in the URL of your HubSpot account (app.hubspot.com/contacts/{portalId}). This is not required for pushing contacts but is useful for reference.
  3. Click Connect.

KynectLocal encrypts the token with AES-256-GCM before storing it. It is never stored in plain text.


Once connected, a Location Settings section appears below the connect form. Each franchisee location can supply its own Private App Token so that leads from that location push to both the brand HubSpot account and the franchisee’s own HubSpot account simultaneously.

Location Settings section showing a per-location Private App Token field with a 'Token saved' label indicating the token is set.

Franchisees set this token from their own Grow → Integrations page — see Franchisee Integrations for details.


Every successful form submission on a KynectLocal location page triggers a push. The following fields are sent to HubSpot:

HubSpot fieldSource
emailForm field named email
firstnameFirst word of the form field named name
lastnameRemaining words of the form field named name
phoneForm field named phone (if present)
hs_lead_statusAlways set to NEW

If the email address already exists as a contact in HubSpot, the contact is updated (PATCH) rather than creating a duplicate.


After connecting, a Recent Activity table appears at the bottom of the HubSpot integration detail page. It shows the last 20 push attempts:

Recent Activity table showing push log entries with green Success and red Failed status badges, lead names, and timestamps.
ColumnDescription
LeadName and email of the form submitter
StatusGreen Success or red Failed
TimeWhen the push was attempted

Failed rows display the error message inline (e.g. “Lead has no email address”, “HubSpot API error 401”).


  1. Open the HubSpot integration detail page.
  2. Scroll to Danger zone.
  3. Click Disconnect HubSpot and confirm.

Disconnecting removes the stored token. Any push jobs already in the queue will fail gracefully (logged as Integration not connected). Existing contacts in HubSpot are not affected.