Integrations

Connect a Form to HubSpot: Your AI Agent Sends Every Lead With Its Score (Step by Step, 2026)

Connect a form to HubSpot so every lead lands as a contact with its answers, UTMs and score. Your AI agent maps it; this guide shows each step.

Josue HernandezAI Specialist

Sales team in a bright office checking a laptop that shows the HubSpot logo after they connect a form to HubSpot

When you connect a form to HubSpot, every lead should land in your CRM the moment it arrives, with its answers in the right properties. In practice, many teams still export a CSV every Friday, or they paste answers into HubSpot by hand. Meanwhile, the hot lead from Tuesday waits three days for a call.

That gap is where deals go cold. A contact without the answers is just an email address, so your sales team still has to ask everything again. And a contact without a score gives them no way to decide who to call first.

This guide shows how to connect a form to HubSpot so each lead arrives as a contact with its answers, its campaign and its score. You set up the connection once. After that, your AI agent builds the form, maps it to HubSpot and checks the deliveries for you.

Why connect a form to HubSpot through your agent

Most form builders connect to HubSpot through a settings page or a Zapier step. That works, but someone still has to open the builder, find each property and match it by hand. For every new form, the same work starts over.

With dForms, the form builder for AI agents, the agent does that part. It reads your HubSpot contact properties, builds the form, scores the answers and sets HubSpot as the form's destination. You describe what you want in one message, then you review what it did.

What reaches HubSpot

dForms writes to contacts only. It does not create deals, companies or tickets. dForms matches each submission to a contact by email address. It updates the contact it finds, or creates a new one when there is no match. As a result, a form that never asks for an email has nothing to sync.

Here is what travels, and when. A form can save answers twice: once when the email is known (a partial submission) and again when the respondent finishes.

Sent on a partial submission (and again on complete) Sent only on a complete submission
The contact, created or updated by email The total score, in the property you pick
Every answer you mapped to a property The outcome heading the respondent saw
The five UTM parameters Fixed values you stamp on every lead
The submitted date A note on the contact with the answers
Company and website inferred from a work email A form submission activity in HubSpot

That split is deliberate. A lead who abandons halfway still lands in your CRM with a name and an email. Then the qualification data arrives if the person finishes.

Step 1: Connect HubSpot to dForms once

Before you connect a form to HubSpot, connect the account itself. The connection is account level, so you do it one time for every form in the workspace. Only an owner or an admin of the workspace can connect it.

  1. In dForms, click Integrations in the left rail. The page is called Connections.
  2. On the HubSpot card, click Connect and paste a HubSpot access token.
  3. dForms validates the token against your portal, stores it encrypted and never shows it again. The card then reads Connected.

The token needs contact read and write scopes. If you also want each submission to appear as a form submission activity on the contact, add the forms and form-submissions-write scopes.

A note on HubSpot private apps

The dForms docs describe this token as a private app access token. However, HubSpot's own documentation now says that legacy private apps can no longer be created as of October 26, 2026. Existing ones keep working. If your portal already has one, its token works here. For new integrations, HubSpot points to its new developer platform.

Connecting is the one step your agent cannot do for you. No API or connector tool connects or disconnects HubSpot, by design: a person with the right role does it in the dashboard.

Step 2: Ask your agent for the form and its scoring

Next, connect your agent to dForms. In Claude, add the dForms connector at https://mcp.dforms.ai/mcp and sign in. Our guide on how to create a form with Claude walks through it. For a script or another agent, create an API key on the Developers page.

Then ask for the form and the scoring in the same message. Give every answer option points, so the total tells sales who to call first. The 25 lead qualification questions are a good starting spec.

Create a form in dForms called "Demo request".
Questions: work email, full name, company website, job title,
team size (1 / 2 to 10 / 11 to 50 / 51 to 200 / 200+),
what they want to automate (open text),
when they want to start (this month / this quarter / just exploring).
Give each choice points: bigger teams and "this month" score higher.
Show a booking step only when the score is 70% or more.
Leave it as a draft and send me the preview link.

Your agent builds the questions, the points and the logic, and it applies your workspace's logo and colors. Review the preview, ask for changes in plain words, and publish when it looks right. Keep in mind that a published form is live at its link right away, and you can revert it to the version that was live before.

Step 3: Send every response to HubSpot (or a webhook)

Now ask your agent to connect a form to HubSpot, in this case the one it just built. It lists your portal's contact properties first, so it maps to properties that really exist, with their exact internal names.

Read my HubSpot contact properties.
Then set HubSpot as the destination of "Demo request":
work email to email, full name to firstname and lastname,
company website to website, job title to jobtitle,
team size to my "Team size" property,
the total score to my "dForms score" number property,
the outcome to my "Lead tier" property, and all five UTMs.
Show me exactly what will change before you save it.

Two things to know before you approve it:

  • It applies to the live form at once. Destinations are not part of the draft, so there is no publish step. That is why the connector marks the change as destructive and asks for your yes first.
  • One HubSpot destination per form. To send one answer to several properties, map the extra properties on the same destination instead of adding a second one.

The score and the outcome

The score property receives the total score as a number, on completed submissions only. So pick a number property in HubSpot. The outcome property receives the heading of the score range that matched, which is the same text the respondent sees on the ending screen. For example, a lead at 82% might carry "Hot lead" into a property your team filters on.

Prefer a webhook, or want both?

A form can also send each submission to your own endpoint as JSON. Ask your agent to add a webhook with an https URL, choose partial or complete events, and send a test delivery. You can run a webhook next to HubSpot, which is also the easiest way to see the exact payload. The AI SDR lead qualification form guide shows how teams route that data after the form.

Step 4: Check the contact, the score and the routing

Send yourself one test submission with a real email, then open HubSpot. You should see the contact with every mapped answer, the five UTMs, and, after a complete submission, the score, the outcome and a note on the timeline.

If a lead did not arrive, check in this order:

  1. Is the destination enabled? Ask your agent to read the form's destinations.
  2. Did the submission include an email? Without one, nothing syncs, and that is expected.
  3. Is a question mapped to email? Without that mapping, no contact is created.
  4. Was it a partial submission? The score, the outcome and the note arrive only when the respondent finishes.
  5. Is spam protection on? Then partial submissions do not reach HubSpot; the contact appears when the form is completed.
  6. What does the history say? The HubSpot card keeps a delivery log with Delivered, In progress, Failed or Skipped, and the reason for a failure.

Deliveries retry on their own with growing delays, so a portal that was briefly unavailable usually catches up. After that, you can ask your agent for the week's leads sorted by score, straight from dForms:

List this week's responses to "Demo request" sorted by score.
For each one at 70% or more, tell me in one line why it looks like a fit.

dForms is free with unlimited responses and open source under the MIT license, so the next time you connect a form to HubSpot, it costs you one message. For the full picture of what an agent needs from a form builder, read the AI form generator guide.

Frequently asked questions

Can I connect a form to HubSpot without Zapier?

Yes. You can connect a form to HubSpot directly in dForms, so each submission creates or updates a contact without a Zapier step. You connect HubSpot once, then map each form to it.

Does dForms create deals or companies in HubSpot?

No. dForms writes to contacts only. It can fill the company and website properties from a work email, but it does not create deals, companies or tickets.

Can my AI agent connect HubSpot for me?

No, and that is deliberate. A workspace owner or admin connects HubSpot once in the dashboard. After that, your agent can read your contact properties and map any form to them.

Is the lead score sent to HubSpot?

Yes. The total score goes to a number property you choose, and the matching outcome heading can go to another property. Both are sent when the respondent completes the form.

What happens if someone abandons the form halfway?

They still land in HubSpot as a contact once their email is known, with the answers you mapped and their UTMs. The score and the outcome are added if they finish.

Is the HubSpot integration free?

Yes. dForms is free, responses are not counted or billed, and the HubSpot connection is included. The project is MIT licensed, so you can also self-host it.

Keep reading