Loading…
Loading…
Jotform to HubSpot, wired so contacts aren't duplicated and properties actually populate.
HubSpot's own forms are good enough for a lot of teams. The reason you'd still use Jotform plus HubSpot is specific: you need conditional logic HubSpot forms can't do, you need payment collection at the same moment as lead capture, or you need a form experience that isn't hemmed in by HubSpot's styling system. The catch is that the Jotform-to-HubSpot handoff then has to be flawless, because HubSpot is where sales and marketing live.
Jotform has a native HubSpot integration that covers contact creation and property updates. Deal creation, company association, and list membership need either the native integration's deeper settings or a webhook approach. Done right, the two systems feel like one. Done wrong, HubSpot ends up with phantom contacts, empty properties, and deals that nobody can trace back to a source.
This page covers what the native integration does, where it hits limits, and how to architect a Jotform-HubSpot pipeline that doesn't create more cleanup work than it saves.
Jotform connects to a HubSpot portal via OAuth. The integration needs permissions on contacts, properties, and (if you're writing deals) the deals object. Use a HubSpot super-admin account for setup; the token persists across that user's session.
Each Jotform field maps to a HubSpot contact property. Standard properties (email, firstname, lastname, phone) are always available. Custom properties show up automatically. HubSpot contact ID is keyed on email: the integration updates an existing contact if the email matches, creates a new one if not.
Beyond contact creation, the integration can set lifecycle stage (MQL, SQL, customer), trigger a HubSpot workflow, or add to a specific list. Most teams set lifecycle at form submit, then let HubSpot workflows handle downstream routing, email sequences, and rep assignment.
Native Jotform integration doesn't create deals directly (as of the current version). The standard pattern is: form submits, contact is created or updated with a 'submitted_[form_name]' property, and a HubSpot workflow watches that property and creates the deal with the right pipeline and stage.
Demo form writes contact with company, role, team size, and use case as properties. A HubSpot workflow watches for the 'demo_requested_date' property change and creates a deal in the sales pipeline at the 'Demo Scheduled' stage, assigned to the AE mapped to the company's size segment.
Pricing form collects company details and a non-binding payment-intent signal. Contact is created or updated, lifecycle set to 'sqm', and a follow-up email sequence fires. The payment step (if present) isn't run here. It happens on a separate contract form after sales involvement.
Event registration creates or updates a contact and adds them to a HubSpot list tied to that specific event. Post-event, a webhook from the event platform flips an 'attended_[event]' property, which triggers the 'thanks for attending' sequence.
Post-purchase or post-onboarding feedback form updates existing contact properties (NPS score, CSAT, last_feedback_date) and, on low scores, creates a HubSpot ticket assigned to the CS lead. Detractor and promoter flows diverge from there.
HubSpot keys contacts on email. Same person, two emails (work and personal) = two contacts. Same email, different capitalization is not an issue (HubSpot normalizes). Same email, different domain alias (john@company.com vs john@corp.company.com) = two contacts. Enforce canonical email capture on the form side.
HubSpot dropdown (enumeration) properties have internal values and display labels, and they aren't always the same. If your Jotform sends 'United States' but HubSpot expects 'US', the property update silently fails and the field ends up blank on the contact. Audit enum mappings before launch.
HubSpot's API limits are generous but not infinite (100 requests per 10 seconds on most plans). A viral form hitting 500 submissions in a minute will start throttling. For spike events, buffer submissions via a queue or space them out with a workflow delay.
If you set up a HubSpot workflow after the Jotform integration has already been live, existing submissions won't enroll retroactively. Either manually enroll the relevant contacts or design workflows to be stateless (triggered by property changes, not by form submit events).
I ran into them for five years on the Jotform product team. Book a free call and I'll tell you exactly how to handle your HubSpot setup, or send me the details first.
If HubSpot's native form builder covers your needs (simple fields, basic conditional logic, clean styling), skip Jotform and use HubSpot forms directly. One fewer system to maintain, no handoff to worry about. Skip the native Jotform-HubSpot integration for complex multi-object workflows (contact plus company plus deal on one submit with custom logic between them). A webhook-plus-HubSpot-API pipeline will be more reliable. And if your marketing team lives in Marketo or Pardot instead, there are similar native integrations for each.

Lead capture with scoring, dedup, CRM sync, and Slack alerts on the ones worth interrupting for.

Quote requests that qualify themselves: conditional scope capture that routes to the right rep

Waitlist with referral tracking, drip emails, and launch-day handoff.
Use HubSpot forms for simple cases: basic fields, standard contact capture, HubSpot-native styling. Use Jotform when you need: payment at point of submission, heavy conditional logic, file uploads, complex multi-page flows, or a form experience outside HubSpot's styling constraints. For everything else, HubSpot forms are simpler.
Not directly from the native integration. The standard pattern is: form submits, contact is created or updated with a trigger property, and a HubSpot workflow creates the deal based on the property change. Alternatively, use a webhook plus HubSpot's Deals API for direct deal creation.
The native integration sends file upload URLs as property values. HubSpot can store the URL on the contact record, but not the file itself. For attaching files to a HubSpot contact or ticket, use a webhook to upload the file via HubSpot's Files API, then associate it with the record.
Partially. Native Jotform integration primarily writes to contacts, companies, and deals. For custom objects, you need to either use Zapier (which supports custom objects via HubSpot's private apps) or a direct webhook plus HubSpot API call.
Free 20-minute call. I'll tell you which workflow fits your HubSpot setup and what it would take to build, or you can send me the details first.