Guide · Make.com · Tally → HubSpot

Tally to HubSpot with Make: create or update contacts from form submissions

Short answer: Tally doesn't have a direct HubSpot integration, and HubSpot's non-HubSpot forms tool can't read embedded Tally forms. Connect them with Make: Tally › Watch New Responses (instant) and HubSpot CRM › Create or Update a Contact, which matches contacts by email. That's two or three modules, works on the free plans of all three tools, and handles repeat submissions without duplicate contacts.

By Flowpaja · Published · Facts checked

This guide contains affiliate links, marked “affiliate link”.

Tally new response goes through Make to HubSpot, where a contact is created or updated by email
One Tally submission, one HubSpot contact, matched by email.
Checked on 3 October 2026: module names and behaviour come from Make's Tally and HubSpot CRM app docs, Tally's Help Center and HubSpot's Knowledge Base and developer docs, as of 3 October 2026 (sources at the end). We build on Make and sell Make templates, so read the "when Make is worth it" section with that in mind.

Does Tally have a native HubSpot integration?

No, not as of 3 October 2026. Tally's integrations page lists direct integrations with Google Sheets, Notion, Coda, Airtable, Slack, Discord, Linear and Attio, plus webhooks. HubSpot isn't one of them. Tally reaches HubSpot through automation tools: Zapier, Make, n8n and others on the same page.

What about HubSpot catching the form by itself? HubSpot's non-HubSpot forms tool collects submissions from forms on your own site, but HubSpot's Knowledge Base says the form must be a static HTML form and "must not be in an <iframe>". Tally's developer docs say an inline embed renders the form inside an iframe. So that route doesn't work for Tally. (If you search "Tally HubSpot integration" you'll also find TallyPrime, the accounting software. That's a different product.)

Your realistic options:

OptionGood forWatch out for
HubSpot's own forms instead of TallySimple lead forms where HubSpot tracking matters mostYou give up Tally's form builder and design
ZapierA quick "new response → create contact" with a ready templateZapier Free is limited to 100 tasks a month and two-step Zaps (checked 3 Oct 2026)
Make (this guide)Create-or-update by email, dropdown translation, notes, deals and routing in one scenarioA small learning curve; field mapping needs one formula
Tally webhook + your own codeDevelopers who already run a serverYou handle retries, signatures and HubSpot auth yourself

Comparing the automation tools in general? See Make vs Zapier vs n8n.

When Make is worth it, and when it isn't

  • Use Make when the same person might submit twice (you want an update, not an error), when you have dropdowns or checkboxes that must land in HubSpot dropdown properties, or when one submission should do more than one thing: contact, note, deal, Slack alert.
  • Skip Make if a HubSpot form does the job, or if you already pay for Zapier and only need "create a contact" with no logic.
  • Cost: the scenario below uses about 3 Make credits per submission. Make's Free plan includes 1,000 credits a month and 2 active scenarios (Make pricing page, 3 October 2026). Tally's Make integration and webhooks are free for all Tally users, and contacts and custom properties work in HubSpot's free tools.

What you need

  • A Tally (affiliate link) form with at least an email question. Tally's free plan has unlimited forms and submissions, within Tally's fair use guidelines.
  • A HubSpot account where you can create properties. Make's docs say a Super Admin must pre-approve the Make app before anyone can connect HubSpot, including after Make adds new scopes.
  • A Make account. No account yet? Create a free Make account (affiliate link).

Affiliate disclosure: links marked "affiliate link" include our partner code for Tally or Make. If you sign up or later buy a paid plan through them, Flowpaja may earn a commission at no extra cost to you. More on the tools page.

The scenario at a glance

Tally › Watch New Responses → Tools › Set multiple variables (pick answers by label) → filter: email exists → HubSpot CRM › Create or Update a Contact → optional HubSpot CRM › Create an Engagement (a note with the full answers).

Step 1: Prepare HubSpot properties

  • Email, First name, Last name, Phone number and Company name already exist as default contact properties. Use them.
  • For anything else, create custom contact properties under Settings › Properties, for example "Lead budget" (dropdown) and "Lead message" (multi-line text). The number of custom properties you can create depends on your HubSpot subscription.
  • For UTM or source tracking, add Tally hidden fields (type /hidden in the form editor) and store them in your own custom properties.
  • Dropdown gotcha: every option has a label and an internal value. HubSpot's developer docs say the internal value "must be used when setting the property value through the API". Open each dropdown property and note the internal values.

Step 2: Add the Tally trigger

  • In Make, create a scenario and add Tally › Watch New Responses. Make marks it as an instant trigger, so it runs when a response arrives, with no polling.
  • Click Create a webhook, then Create a connection. Choose Tally OAuth (sign in to Tally) or Tally Personal API Key (create a key in Tally under Settings › API keys).
  • Pick your form and save. Click Run once, then submit the form with fictional data, such as "Ana Example" and ana@example.com.

Prefer a raw webhook? You can point Tally's webhook at a Make Custom webhook instead. Our Tally to Google Sheets guide shows both options and the full payload.

Step 3: Pick each answer by its label

Tally sends answers as a list of fields (each with a label, type and value), not as named fields. Add Tools › Set multiple variables and pick answers with map(). Here 1.fields stands for the fields list from the trigger; select it in the mapping panel rather than typing it.

  • email: {{lower(trim(first(map(1.fields; "value"; "label"; "Email"))))}}
  • first_name: {{first(map(1.fields; "value"; "label"; "First name"))}}
  • budget_text: dropdowns and multiple-choice questions return option IDs, not text. Turn the ID into the option text as shown in step 5 of our Tally to Google Sheets guide.

The label must match the question exactly. If you rename a question in Tally, the variable comes back empty, so keep labels stable.

Then add a filter after this module: email Exists. The HubSpot module matches on email, so a response without one should stop here.

Step 4: Create or update the HubSpot contact

  • Add HubSpot CRM › Create or Update a Contact and connect HubSpot. Make describes the module as: "Creates a new contact if the specified email address in the properties does not exist; otherwise, updates the existing contact."
  • Map email to the standard Email property, not a custom "work email" field. HubSpot deduplicates contacts by the Email property.
  • Map first name, last name, phone, company and your custom properties.
  • Dropdowns: translate the Tally text to the HubSpot internal value with switch(), for example {{switch(budget_text; "Under $1k"; "under_1k"; "$1k–$5k"; "1k_5k"; "$5k+"; "5k_plus")}}. Use your property's real internal values.
  • Lifecycle stage: HubSpot's Knowledge Base says tools such as the API can only move lifecycle stage forward. Setting "Lead" won't downgrade an existing Customer. Test this with one existing contact before relying on it.

Already built this with Search for Contacts plus a router to Create or Update? That works too, and it's the pattern in our Google Forms to HubSpot guide. The single upsert module is simpler and saves a credit.

Step 5 (optional): Add a note with all the answers

Long answers don't fit neatly into properties. Add HubSpot CRM › Create an Engagement as a note on the contact, using the contact ID from step 4's output, with a body like "Tally form: Contact · Budget: $5k+ · Message: …". Check in a test run that step 4's output includes the contact ID; Make's docs only spell out the returned ID for its Create modules, so if it's missing, add HubSpot CRM › Search for Contacts by email and take the ID from there. Only create the note when you need it: Tally retries a webhook if it doesn't get a success response within 10 seconds, so a rare duplicate delivery updates the contact harmlessly but would add a second note.

Want a deal as well? Add HubSpot CRM › Create a Deal and Create an Association to link it to the contact. Put a filter in front, for example budget equal to "$5k+", so not every newsletter-style signup becomes a deal.

Step 6: Test, add error handling and switch on

Test four cases with fictional data:

  • a new email (a contact is created)
  • the same email again with a changed answer (the same contact is updated, with no duplicate)
  • each dropdown option (catches a wrong internal value)
  • an existing contact with an optional answer left blank (check the old value is still there; Make's erase keyword is the way to clear a value on purpose)
  • In the scenario settings, turn on Store incomplete executions, so failed runs are saved instead of lost. With an instant trigger, the "errors before deactivation" setting doesn't protect you.
  • Optional: add an error route on the HubSpot module that posts to Slack or emails you with the respondent's email. See Make error handlers.
  • Switch the scenario on and check History after the first real submissions.

Credits per submission

Make counts one credit per module action; filters, routers and error handlers don't use credits (Make pricing page, 3 October 2026).

SetupModules that runCredits per submission
MinimalTrigger + Create or Update a Contact2
RecommendedTrigger + Set multiple variables + Create or Update a Contact3
With a noteRecommended + Create an Engagement4
With a dealWith a note + Create a Deal + Create an Association6

At 3 credits per submission, 1,000 Free credits cover roughly 330 submissions a month, if nothing else uses them. More in Make credits explained.

Common problems and fixes

ProblemLikely causeFix
Can't create the HubSpot connectionThe Make app isn't approved in your HubSpot accountAsk a HubSpot Super Admin to approve it, then reconnect
"Property values were not valid" (HTTP 400)A dropdown label sent instead of its internal valueTranslate with switch() to the internal values
Dropdown arrives as a long IDTally sends option IDsMap the ID to the option text first (step 3)
Empty properties in HubSpotA question label changed in TallyUpdate the label in map()
Two contacts for one personDifferent email addresses, or a custom email property mappedMap the standard Email property; lower-case and trim it
Scenario never runsScenario off, or the webhook was removed in TallySwitch it on; check the form's Integrations tab. See webhook not receiving data
Scenario switched itself offAn error without stored incomplete executionsSee scenario stopped or disabled

Other error messages: Make error cheat sheet.

The other direction: prefill Tally from HubSpot emails

Tally's Help Center shows how to put HubSpot personalization tokens into a Tally form link in a marketing email, for example https://tally.so/r/xx?email={{personalization_token(...)}}&source=email. The values land in Tally hidden fields. Tally notes that tokens can't be added to HubSpot CTAs, so it suggests linking an image instead. Combined with this scenario, the answers flow back into the same HubSpot contact.

Sources checked (3 October 2026)

FAQ

Does Tally have a native HubSpot integration?
No. As of 3 October 2026, Tally's integrations page lists direct integrations with Google Sheets, Notion, Coda, Airtable, Slack, Discord, Linear and Attio, plus webhooks, but not HubSpot. You connect Tally to HubSpot through an automation tool such as Make, Zapier or n8n, or through a Tally webhook and your own code.
Can HubSpot capture Tally form submissions by itself?
Not with an embedded Tally form. HubSpot's non-HubSpot forms tool only collects static HTML forms that aren't inside an iframe, and Tally's inline embeds render in an iframe. Use an automation tool, or build the form in HubSpot instead.
How do I stop duplicate contacts when someone submits twice?
Use the HubSpot CRM > Create or Update a Contact module in Make and map the Tally email to HubSpot's standard Email property. The module updates the existing contact when the email already exists, and HubSpot deduplicates contacts by email. Lower-case and trim the email first.
Why does HubSpot reject my dropdown answer?
Tally sends dropdown and multiple-choice answers as option IDs, and HubSpot's API expects each dropdown option's internal value, not its label. Turn the Tally ID into the option text, then translate the text to the HubSpot internal value with Make's switch() function.
Do I need paid Tally, HubSpot or Make plans?
No. Tally's Make integration and webhooks are free for all Tally users, contacts and custom properties work in HubSpot's free tools, and Make's Free plan includes 1,000 credits a month and 2 active scenarios (checked 3 October 2026). A HubSpot Super Admin must approve the Make app before you can connect.
How many Make credits does each Tally submission use?
About 3 with our recommended setup: the Tally trigger, Set multiple variables and Create or Update a Contact. A note adds 1, and a deal with an association adds 2 more. Filters and error handlers use no credits. At 3 credits, Make's Free plan covers roughly 330 submissions a month.
Can I create a HubSpot deal from a Tally form?
Yes. After the contact module, add HubSpot CRM > Create a Deal and Create an Association to link the deal to the contact. Put a filter in front, for example on a budget answer, so only qualified submissions become deals.
Should I use Make or Zapier for Tally to HubSpot?
Zapier has ready-made Tally to HubSpot templates and is quick for a plain create-a-contact step, but its free plan is limited to two-step Zaps and 100 tasks a month. Make suits create-or-update by email, dropdown translation, notes, deals and routing in one scenario at about 3 credits per submission.

Skip the build: start from Lead Router

Our Lead Router Make template ($19) does the search, create or update, dropdown translation and Slack alert for HubSpot. It's built and tested for Google Forms; for Tally you swap the first module for Tally › Watch New Responses and remap the fields as its setup guide describes, adding the option-ID step from step 3 for Tally dropdowns. Prefer to have it built? We set it up on Fiverr, fully async.

Already built it and it fails? Make scenario fix / debugging on Fiverr, from $25: send the exported blueprint and a description of the error, no logins needed.

← All guides · All templates

Make, Tally, HubSpot, Zapier, n8n, Google and Slack are trademarks of their owners. Flowpaja is independent and not affiliated with or endorsed by them. Features, limits and menus change; check each vendor's current docs.