Skip to main content

Connect a HubSpot form

Import a form you already publish in HubSpot into Jicoo, and route each submission to a booking page based on what the visitor answered.

What you will learn

  • What you need before connecting a HubSpot form to Jicoo

  • The setup steps on the HubSpot side and on the Jicoo side

  • Which embed methods work, and which do not

For external form import in general, see What is external form import?.


Requirements

You need the newer embed format

Jicoo runs routing when it receives the submission-complete notification that HubSpot publishes. Only the newer embed format publishes that notification.

If your embed code contains v2.js or hbspt.forms.create, it is the older format. Submissions cannot be detected in that case — go back to the HubSpot form editor and get the newer embed code.

You must be able to add Jicoo's code to the page that displays the form

Jicoo detects submissions through code that runs on the page where your form is displayed, so you need to be able to add that code to the page.

  • Embedded on a page of your own site — supported

  • Embedded on a HubSpot landing page or website page — supported when the page settings let you add code

  • A shared form link (the standalone form page)not supported, because there is no way to add code to it

Note: whether you can add code to a HubSpot page depends on your HubSpot plan. If the option is unavailable, consider embedding the form on a page of your own site instead.

Requirements on the Jicoo side

  • A Business plan or above

  • External forms can be created by team members with the Owner, Admin, or Member role

  • Please talk to us before you start


Setting up in HubSpot

1. Create the form

Create an embedded form from the form builder. For a demo or a trial run, a set of fields like this works well.

  • Email

  • Full name

  • Company

  • Inquiry type (a radio button or another choice field)

Include one choice field such as "Inquiry type" so you can route submissions based on the answer.

2. Use ASCII characters for the property internal name

A choice field has to be connected to a CRM property. If the field editor shows that it is not connected, create one from Create new property.

If the property label contains only non-Latin characters, HubSpot cannot generate an internal name and the create button stays disabled. Use Edit internal name and enter something like inquiry_type in ASCII characters.

3. Give the choice options meaningful internal values

Option internal values cannot be generated from non-Latin labels either, so HubSpot fills them with random strings such as 2yWP_B7CqLOsyIjVcTjz.

That still works, but Jicoo's routing screen shows those raw strings, which makes the rules hard to read. We recommend overwriting the value fields on the right with the option labels, or with readable ASCII values.

4. Combine first and last name into one field (optional)

If you keep HubSpot's "First name" and "Last name" as separate fields, only the first name is carried into the booking form. To carry the full name, combine them into a single field in HubSpot. See "Limitations" at the end of this article.

5. Publish the form and copy the embed code

Publish the form and copy the embed code from Share.

6. Publish the page that hosts the form

Add the embed code to the page where you want the form to appear, and publish it. Do this now even if you are using a HubSpot landing page.

Make a note of the published page URL. You will register it in Jicoo in the next step.


Setting up in Jicoo

1. Open the HubSpot creation screen

In the dashboard, go to RoutingAdd FormImport from Other ServicesCreate, then choose Create under HubSpot.

Note: if an introduction screen appears and you cannot continue, reach us from the chat at the bottom right.

2. Set up the form fields

Enter the URL of the page hosting your form under Form URL and select Load. You cannot add fields until you do this.

HubSpot forms cannot always be read automatically. It is fine if you see "No form fields were detected" — add them by hand with Add field.

Configure each field as follows.

  • Label — the name used to identify the field inside Jicoo. Any text works

  • Field type — match the original form. Use Email for the email field, Name for the name field, and Single choice for choice fields

  • Source mapping — set the source key type to name and enter the HubSpot internal name as the value

For choice fields, enter the HubSpot option internal values under Choices, one per line.

How to find the HubSpot internal names

You can check an internal name in the HubSpot form editor by selecting the field and looking at the panel on the right.

To see exactly what gets submitted, open the page hosting your form in a browser, run the following single line in the developer tools console, then submit the form. The submitted field names and values are printed as a list.

window.addEventListener('hs-form-event:on-submission:success', async (e) => console.log(await window.HubSpotFormsV4.getFormFromEvent(e).getFormFieldValues()));

Note: field names may appear in a form such as 0-1/email. Jicoo accepts either that full form or the shortened form (email).

3. Configure routing

Decide what happens based on the answers.

  • Conditions — the destination when "Inquiry type" matches a particular choice

  • Destination — choose Booking Page, then set Display Method to Popup or Redirect

  • If the above conditions do not apply — leave this as No routing for answers that should not lead to a booking

A newly added route starts with No routing selected. Nothing will happen after submission until you change it, so be sure to choose a destination.

Note: the Routing timing setting is not used with the HubSpot integration. Routing runs as soon as Jicoo receives HubSpot's submission-complete notification, so either option behaves the same.

4. Get the embed code

Copy the generated code. Copy it exactly as shown, without editing it. Retyping any part of the address will stop it from working.

Note: with the HubSpot integration you do not need to install anything on a thank-you page. The page hosting the form is enough.


Install the code and publish

Add the copied code to the page hosting your form.

On a HubSpot page

In the page editor, open SettingsAdvanced and paste it into Head HTML under additional code snippets.

After saving, you must publish the page again. The change does not reach the live page until you select Update at the top right of the editor. Saving the settings alone is not enough — check this first if things are not working.

On a page of your own site

Add it to the same page as the HubSpot embed code. It works inside <head> or anywhere after the form.


Verify it works

Open the published page, choose an answer that matches your booking-page condition, and submit the form for real.

  • An answer that matches the condition — the scheduling screen appears after submission

  • An answer that does not match — HubSpot's own completion screen appears as usual

Also check that the email and name are already filled in on the scheduling screen.

Even when something is misconfigured, the form submission itself still succeeds and no error appears on screen. Please always test before going live.


If it is not working

  1. Check that you published the page again
    On a HubSpot page, saving the settings is not enough. Select Update to publish

  2. Check that the URLs match
    Compare the form URL registered in Jicoo with the URL of the page you installed the code on, including https versus http and the presence of www

  3. Check the embed format
    Make sure the HubSpot embed code does not contain v2.js or hbspt.forms.create

  4. Check the source mapping
    Make sure each value matches the HubSpot internal name

  5. Check the choices
    Make sure the choice used in your routing condition matches the HubSpot option internal value

  6. Check that the form is enabled
    Submissions are not accepted while the form is disabled in Jicoo

If it still does not work, contact Jicoo support with the following:

  • The URL of the page hosting your form

  • The destination and condition you configured

  • When you sent the test submission

  • Any message starting with [Jicoo] in the browser developer tools console


Limitations

First and last name cannot be carried over separately

If you keep HubSpot's "First name" and "Last name" as separate fields, only the first name is carried into the booking form. This does not change even when the booking page splits its own name field into first and last name.

To carry the full name, combine them into a single field in HubSpot and set it up as one field with the Name field type in Jicoo.

Only certain fields are carried over automatically

Fields with the Name, Email, or Phone number field type are carried into the booking form automatically.

To carry company, inquiry type, or a question specific to the booking page, map them under Prefill mapping in the external form edit screen. Mapping is configured per booking page.

Note: you cannot assign more than one field to the same booking form input.

Only one form URL can be registered

If you use separate pages for testing and production, create a separate external form for each. The same embed code cannot be reused across several domains.


Related articles

Did this answer your question?