The HubSpot integration pushes form submission data directly into HubSpot CRM, automatically creating a new contact (and optionally a deal) every time someone submits your form. This eliminates manual data entry and ensures every lead is captured in your sales pipeline immediately, with no delay and no chance of a lead slipping through the cracks.
For teams that use HubSpot as their source of truth for customer relationships, this integration means your website forms feed directly into the same system your sales and marketing teams use every day.
What You Need Before Starting
- A HubSpot account (the free CRM works, or any paid plan)
- A HubSpot Private App Token (for API access)
Setup Walkthrough
Step 1 — Create a Private App in HubSpot- Log in to HubSpot and go to Settings (gear icon in the top navigation).
- In the left sidebar, go to Integrations > Private Apps.
- Click Create a Private App.
- Give it a name like “Form Forge Integration.”
- Under the Scopes tab, grant these permissions:
crm.objects.contacts.write — to create and update contacts
– crm.objects.contacts.read — to check for existing contacts (prevents duplicates)
– crm.objects.deals.write — to create deals (optional, only if you want deal creation)
– crm.objects.deals.read — to read deal properties (optional)
- Click Create App and copy the generated Access Token.
- In WordPress, go to Form Forge > Settings > HubSpot.
- Click Connect and paste your Access Token.
- Form Forge verifies the connection and shows “Connected.” If the site license connection is incomplete, the card shows the specific Avakode/site-token warning.
- Open your form in the builder.
- Go to the form’s Integrations settings tab.
- Toggle on HubSpot.
- Map your form fields to HubSpot contact properties. At minimum, map:
– Your Name fields to First Name and Last Name
– Your Phone field to Phone Number
- Optionally, map additional fields to any HubSpot property (Company, Job Title, etc.).
Creating Deals (Optional)
If each form submission should also create a deal in your sales pipeline:
- Toggle on Create Deal within the HubSpot integration settings.
- Select the Pipeline (for example, “Sales Pipeline”).
- Select the Deal Stage (for example, “New Lead” or “Qualified Lead”).
- Map a field to the deal name, or use a default template like “New Inquiry – {name}.”
- Optionally, set a deal amount from a form field or as a fixed value.
- Save the form.
How It Works
- When someone submits the form, Form Forge creates a contact in HubSpot with all the mapped field data.
- If a contact with that email already exists, the existing contact is updated with the new data. No duplicates.
- If deal creation is enabled, a new deal is created and associated with the contact.
- The form submission is also saved in Form Forge as usual.
- Deal creation is optional. With Create Deal off, Form Forge still creates or updates the HubSpot contact.
- If HubSpot rejects the request, the visitor still gets the normal success state and Form Forge records a diagnostic entry for support.
Troubleshooting HubSpot
| Problem | Most likely cause | Solution |
|---|---|---|
| Contacts not appearing | Private App Token lacks the correct scopes | Regenerate with contacts.write and contacts.read scopes |
| “Unauthorized” error | Token was revoked or expired | Create a new Private App in HubSpot and reconnect |
| Fields not mapping correctly | Wrong form field mapped to wrong HubSpot property | Double-check each mapping in the form’s Integrations tab |
| Deals not being created | Deal scopes not granted, or pipeline/stage not selected | Add deal scopes to the Private App and configure pipeline settings |
| Duplicate contacts | This should not happen (HubSpot deduplicates by email) | If it does, check that the email mapping is correct |
| Submission is saved but the diagnostic log says “Invalid request” | The Worker rejected the HubSpot payload before calling HubSpot | Update to the current Forge API build; empty property maps are normalized and scalar property values are sent as strings |
> Tip: Start by mapping only the essential fields (email, name, phone). Once you confirm the integration works, add more field mappings for company, job title, and custom properties. This makes troubleshooting easier.
> Good to know: Without PRO, the HubSpot integration is not available. You can export submissions to CSV and import them into HubSpot manually, or use the Webhook integration to connect through a middleware tool like Zapier or Make.
Common Mistakes to Avoid
- Creating the Private App without the right scopes and wondering why contacts do not appear. Always include both read and write scopes for contacts.
- Mapping the Name field to HubSpot’s Email property by accident. Triple-check your field mappings.
- Forgetting to select a pipeline and stage when deal creation is enabled. Without these, deal creation silently fails.
[Screenshot: The HubSpot integration settings on a form showing field mapping rows — Email to HubSpot Email, First Name to HubSpot First Name, Company to HubSpot Company — with a Create Deal toggle and Pipeline dropdown below]
—