Docs

Send submissions to HubSpot

Connect HubSpot once, choose which forms send to it, and each new submission from those forms goes to HubSpot as a contact, found by your customer's email, with the answers and results you choose.

What it does

You connect your HubSpot account from the CalcForms web portal. Then, for each form you want, you match its answers and results to HubSpot contact properties, send a test, and switch it on. From then on, every new submission of that form is sent to HubSpot right after it arrives: submissions from your public form link, from private invites you send, and from quotes you save in your internal view.

Sending goes one way, from CalcForms to HubSpot. CalcForms creates contacts and, where this page says so, updates the properties you matched on them. It does not download or list your contacts, it never deletes anything in HubSpot, and it does not touch companies, deals or any other records. Nothing you change in HubSpot comes back to CalcForms.

Sending to HubSpot is part of CalcForms Pro.

What is sent, and when

Each new submission of a form you switched on, and each test you send, goes from CalcForms to HubSpot:

From CalcFormsTo HubSpot
Your customer's email on the submissionThe contact's Email, which finds the contact or creates it
The answers and results you matchedThe contact properties you chose for them

CalcForms reads only these from HubSpot:

From HubSpotUsed forWhen
Your contact properties: names, types and dropdown choicesThe Match fields listWhen you open or save a form's Send to HubSpot page
Your HubSpot account ID and domainShowing which account is connectedWhen you connect

Before you start

Connect HubSpot

  1. Sign in to the web portal, open the form you want to send, and choose Settings, then Send to HubSpot. You can also open the CRM page directly at /admin/crm.
  2. Choose Connect HubSpot. CalcForms sends you to HubSpot's own screen.
  3. In HubSpot, choose the account and approve the three permissions below.
  4. HubSpot sends you back to where you started: the form's Send to HubSpot page, or the CRM page. The CRM page shows the connected account, for example "Connected to acme.com (HubSpot account 1234567) since Sep 23, 2026", with the date in your browser's format.

CalcForms is not listed on the HubSpot App Marketplace yet, so HubSpot will show a warning for an app it has not reviewed yet. It is safe to continue.

CalcForms asks HubSpot for exactly three permissions:

PermissionWhy CalcForms needs it
crm.objects.contacts.writeTo create contacts and, where this page says so, update the properties you matched.
crm.objects.contacts.readTo read your list of contact properties for Match fields. CalcForms does not download or list your contacts.
oauthHubSpot's basic permission, which HubSpot requires of every app that connects this way (see HubSpot's list of permissions). It gives CalcForms no access to your CRM data.

CalcForms never asks for HubSpot's sensitive data permissions, which is why properties HubSpot marks as sensitive are not offered. It stores the tokens HubSpot issues encrypted, never shows them, and deletes them when you disconnect.

Connecting a different HubSpot account later switches sending off on every form until you set each form up again.

Choose what a form sends

Open the form's Send to HubSpot page: in the portal, Settings, then Send to HubSpot, or the form's link in the Forms list on the CRM page.

Match fields

The table lists your form's answers, then its results. The first row, Your customer's email, always goes to HubSpot's Email property: it is used to find or create the contact. If your form also has an email question (one of the email type, or one labelled Email, E-mail, Your email, Your email address or Email address), that question is not listed, because the form already collects your customer's email separately, and its answer is not sent. The exception is a question you already chose a property for, which stays listed so you can change it.

For every other row, choose a HubSpot property or Don't send. The Example column shows what your latest submission would send. The page refuses a property of the wrong kind: a number goes to a number, text or dropdown property, a date to a date, text or dropdown property, a yes or no answer to a checkbox, text or dropdown property, and text to a text or dropdown property. For a dropdown, the answer must match one of the property's options, or HubSpot refuses it. Read-only, calculated and sensitive properties are not offered.

The first time you set up a form, before anything is saved for it, CalcForms matches the rows it recognizes for you. It matches an answer, or a result your customer sees, when its label is the same as a HubSpot property's and the kind fits. It also matches a text answer with a common contact label, such as Telephone to Phone number or Zip code to Postal code. When it has matched a row, the page says "CalcForms matched the rows it recognized. Check each one before you send a test." Nothing is saved until you choose Save changes or Send a test. No new submission is sent until a test goes through and you switch the form on.

A single name question, such as Name or Full name, is not matched to First name or Last name for you. While it stays on Don't send and no row sends First name or Last name, its row says "HubSpot keeps first and last names in separate properties. Choose First name or Last name to send the whole name there."

If a question is later removed from the form, for example when you change the form in ChatGPT, its row moves to No longer on this form and nothing is sent for it. Saving your changes clears it.

Private results

Results marked Private are hidden from your customer on the form. On this page they start as Don't send and are never matched for you. You can still send one, for example a margin your sales team should see, but anything you send is visible to everyone who can see the contact in HubSpot.

New contacts and existing contacts

An update changes only the properties you matched that have a value in the submission. Everything else on the contact stays as it is.

Send a test

Send a test saves your changes and sends your latest submission to HubSpot as a real contact. Wherever that submission came from, the test only creates a contact while Update contacts that already exist is off: when HubSpot already has a contact with that email, the test leaves it as it is. When the form has no submission yet, or its latest one has no usable email, the test uses the email you sign in to CalcForms with and sends only that email. The result shows under the button, for example "Created a contact for sam@example.com in HubSpot.", with a link to open the contact in HubSpot.

Switch it on

Send new submissions to HubSpot stays off until a test goes through; until then the page says "Send a test first." Then switch it on and choose Save changes. Only submissions that arrive after that are sent; submissions from before are not sent. Switching it off stops sending right away, and anything still waiting to be sent for that form is not sent.

What happens to each submission

Once a form has been set up to send to HubSpot, the portal shows a HubSpot column in the form's submissions, and each submission shows a HubSpot line with one of these:

StatusWhat it means
SendingCalcForms is sending it, or will try again soon. The submission shows when the last try was and when the next one is.
SentHubSpot accepted it. The submission links to the contact.
FailedHubSpot refused it, or every try was used. The submission says why, and Try again sends it again, except when HubSpot did not accept the email address.
Not sentNothing was sent, on purpose. The submission says why, for example that sending was not switched on for this form when it came in.

Retries. If HubSpot does not answer, or asks CalcForms to slow down, CalcForms tries again after 1 minute, 5 minutes, 30 minutes, 2 hours, 12 hours and 24 hours: 7 tries over about a day and a half. Retries are picked up every 10 minutes, so the early ones can take a little longer. When HubSpot refuses a value, trying again would not help, so the submission shows Failed at once with the reason. After you fix the cause, Try again sends it again, and starts the retries over if HubSpot does not answer. The exception is an email address HubSpot does not accept: the address on a submission cannot be changed in CalcForms, so there is no Try again for it.

Daily limit. Each form can make at most 200 sends of public submissions in a 24-hour period, and HubSpot and Salesforce share that limit: a public submission sent to both counts twice, so a form that sends to both reaches it after 100 public submissions. The period starts with the form's first try to send a public submission to a CRM after the previous period ended, and ends 24 hours later. A public submission counts on its first try, even a first try that finds HubSpot disconnected and waits for you to reconnect it, and again each time you choose Try again on it. So does a submission your customer finishes after choosing Save and come back later on your public form, because it is a public submission. Automatic retries, invites you send and quotes from your internal view do not count. Submissions over the limit show Not sent, with Try again.

Edits and deletions. Edits to a submission after it was sent are not sent again. Deleting a submission or a form in CalcForms deletes nothing in HubSpot.

Disconnect

On the CRM page, choose Disconnect under HubSpot and confirm. CalcForms then:

Contacts already sent stay in HubSpot. Your matched fields are kept, so after you connect again, send a test and switch each form back on.

You can disconnect even when Pro is no longer active, and when sending to HubSpot is not available for your account. In both cases the CRM page shows a Disconnect HubSpot button. If sending is not available for your account while Pro is active and HubSpot is still set up in CalcForms, the portal says "Sending to HubSpot is not available for your account right now. You can still disconnect it.", with a Disconnect HubSpot link to the CRM page. When Salesforce is set up too, it reads "Sending to HubSpot and Salesforce is not available for your account right now. You can still disconnect them."

Disconnect does not remove the CalcForms app from your HubSpot account. To remove it completely, uninstall CalcForms in HubSpot: open Settings, find CalcForms under Connected Apps, and uninstall it there. HubSpot lets a super admin, or a user allowed to uninstall apps, do this.

If CalcForms is uninstalled in HubSpot while it is still connected in CalcForms, CalcForms notices the next time it sends, or at its weekly check while Pro is active and sending to a CRM is available to your account, and the portal then says "HubSpot is disconnected. New submissions wait until you reconnect it." Reconnect to send what is waiting, or disconnect in CalcForms too, which deletes the stored tokens and marks what is waiting as Not sent.

Troubleshooting

Every message below is the exact sentence CalcForms shows.

Connecting

What you seeWhat to do
Could not connect to HubSpot: your HubSpot user cannot install apps. Ask a HubSpot super admin to connect it.Whoever approves in HubSpot must be a super admin of that account, or a user allowed to install apps who can also edit contacts (see Before you start). If that is not you, connect together: choose Connect HubSpot in the portal and let them sign in to HubSpot and approve.
Could not connect to HubSpot: the connection was cancelled in HubSpot. Connect HubSpot again when you are ready.The connection was declined on HubSpot's screen. Start again with Connect HubSpot.
Could not connect to HubSpot: the connection request expired or was already used. Connect HubSpot again.A connection request works once and lasts 10 minutes. Start again with Connect HubSpot.
Could not connect to HubSpot: HubSpot did not confirm the connection. Connect HubSpot again, and if it keeps failing, ask a HubSpot super admin to connect it.Try once more. If it keeps failing, email us.

Sending

What you seeWhat to do
HubSpot is disconnected. New submissions wait until you reconnect it.
On a submission: Waiting for you to reconnect HubSpot. It will be sent once HubSpot is connected again.
HubSpot no longer accepts CalcForms' access, for example because the app was uninstalled in HubSpot. Choose Reconnect HubSpot. When you reconnect the same HubSpot account, what was waiting is sent.
Could not send to HubSpot: too many submissions were sent in a short time. It will be tried again in 30 minutes.HubSpot asked CalcForms to slow down. Nothing to do: CalcForms keeps trying on the schedule under Retries, and the time in the sentence is when the next try is due.
Could not send to HubSpot: the email address is not one HubSpot accepts. If you need this customer in HubSpot, add the contact there yourself.HubSpot does not accept this address. The address on a submission cannot be changed in CalcForms, so there is no Try again for it.
Could not send to HubSpot: HubSpot refused a value in a matched property. Check the matched properties, then try again.Usually a dropdown answer that is not one of the property's options, or a value the property's own rules in HubSpot do not allow. Change the match or the property, then choose Try again.
Could not send to HubSpot: HubSpot no longer accepts the connection. Reconnect HubSpot on the CRM page, then try again.HubSpot refused CalcForms' access on the last try, for example because the app was uninstalled in HubSpot. Reconnect HubSpot on the CRM page, then choose Try again.
Could not send to HubSpot after 7 tries over about a day and a half: HubSpot did not answer. Try again.HubSpot was unavailable for the whole retry period. Choose Try again.
Could not send to HubSpot after 7 tries over about a day and a half: too many submissions were sent in a short time. Try again.HubSpot kept asking CalcForms to slow down. Choose Try again.
Could not send to HubSpot after 7 tries over about a day and a half: CalcForms could not finish sending it. Try again, and if it keeps failing, reconnect HubSpot.A problem on our side stopped the last try. Choose Try again. If it fails again, reconnect HubSpot on the CRM page, and email us with the form link and the submission number.
Could not send to HubSpot. Try again, and if it keeps failing, reconnect HubSpot.Choose Try again. If it fails again, reconnect HubSpot on the CRM page, then try again.

Not sent

What you seeWhat it means
Not sent: sending to HubSpot was not switched on for this form when this submission came in.Sending to HubSpot was off for this form when the submission came in, so CalcForms never tried to send it. Submissions from before you first switched the form on show this line, and so do any that came in while it was switched off.
Not sent: this submission has no usable email address, and HubSpot needs one to find or create the contact.Usually a quote saved from your internal view without your customer's email, or an address with a typing mistake, such as no dot after the @.
Not sent: sending to HubSpot was switched off for this form.It was waiting when the form was switched off, or when sending to a CRM stopped being available to your account.
Not sent: HubSpot was not connected when this submission came in.HubSpot was disconnected, or a different HubSpot account was connected, before it was sent. Set the form up again on the CRM page.
Not sent: the CRM connection was off while Pro was inactive.Choose Try again once Pro is active.
This form has reached its daily limit of 200 sends to HubSpot. It can send again 24 hours after the first of them.
With both CRMs: This form has reached its daily limit of 200 sends to your CRMs; a submission sent to both HubSpot and Salesforce counts twice. It can send again 24 hours after the first of them.
The form reached its daily limit (see Daily limit, under What happens to each submission). The 24-hour period started with this form's first try to send a public submission to a CRM after the previous period ended; choose Try again after it ends.
Not sent: sending to HubSpot was not available when this submission came in.A problem on our side. Email us with the form link and the submission number.

Support

Email hello@badabingapp.cc with the form's link and the submission number, for example #1042 from the portal. For help setting it up, email us or book a 30-minute onboarding call; see /support.