A small team shouldn’t need a paid plan to publish a four-question client intake form. But add a file upload, a conditional question and a Google Sheets connection, and the free plan can start to feel pretty limited.

I built the same form in Tally and Typeform, tested the different paths and checked what I could actually publish. Tally let me start without an account and publish the original form with its file upload for free. With Typeform, I had to sign up first, then either upgrade or change the form to publish it.

Typeform login screen shown after opening admin.typeform.com/create while signed out
Signed out, Typeform’s form-creation URL sends you straight to this login screen. There is no draft editor to try first.

For a small team setting up client intake, I would start with Tally. Here’s what worked in each tool, the logic mistake I made in Tally and what happened when I connected the forms to Google Sheets.

How I tested

One brief, built twice: collect a company name, ask whether the prospect needs website design or advertising, collect a project description, and request a file upload only from the website-design branch. Then preview both answer paths, publish both forms, send a test entry down each route, and follow the data into Google Sheets.

That is small enough to build in minutes and realistic enough to expose the editor, the field menu, the logic model, the upload limits and the account boundary. Both builds were done by hand, in the browser, to the same depth: same questions, same branch, same preview checks on both routes. I did not read one product’s documentation and test the other.

How far the test went. My first Tally build needed no account at all. To publish, I switched to a free Tally account. Typeform needed an account from the start, so I used its free plan. Both forms went live and took test entries on both branches, and I tried to connect each one to Google Sheets. The screenshots below are from those sessions. Where I lean on a vendor’s own documentation instead, I say so.

Where each product stands

What small teams decide onTallyTypeform
Build before signing upYes, full editor at /createNo, login required first
Free monthly responsesUnlimited (fair use)10, across the whole account
File upload on freeIncluded, 10 MB per fileBlocks publishing on free
Entry paid plan$29/mo ($24 annual)$29/mo, capped at 100 responses
Google Sheets on freeConnected first tryListed as free; failed in my test
Payment block on freeYes, via StripePaid (Stripe and PayPal)
Editing a long formOne scrollable pageOne screen per question
Branching setupInline rule, needs one extra stepRouted, no extra step

Tally gets you live today, no account required

This is the clearest result in the test, and it is not close. In Tally I went from a cold browser tab to a four-question draft with working conditional logic without creating an account. The editor at /create opened a blank document, I typed a title, and a / command produced the block menu.

Tally editor showing a slash command opening the block menu with question and input options
Tally’s slash menu, opened in a signed-out draft. Every question type in the test was available here, including file upload.

Typeform asked first. Logged out, I could not reach an editor at all. It bounced me straight to a login screen, and there is no equivalent of Tally’s anonymous draft. Once I was in, the new-form screen opened on an AI prompt rather than a blank page, with “Start from scratch” sitting underneath as the second option.

That gap matters more than it sounds. The cost of evaluating a tool is not the subscription, it is the half hour you spend before you know whether it fits. Tally lets you answer that question with the actual form you need, in your own browser, before you have given anyone an email address.

The structural difference compounds it. Tally keeps the whole form on one scrollable page, so I could see all four questions at once while editing the branch. Typeform gives each question its own page and its own screen. That is a real design choice rather than a flaw. But reviewing a Typeform means clicking through it, while reviewing a Tally form means scrolling. When the person editing the form next month is a colleague rather than you, legibility is worth more than polish.

A smaller annoyance, worth flagging because it caught me out: in Typeform’s choice editor, pressing Enter did not create a second choice. It ran the text onto the end of the first one, so I ended up with “Website designAdvertising” and had to clear the field and use “Add choice” instead. In Tally, Enter created the next option, the way you would expect.

The free plan is the real difference

Feature tables tend to bury this, so I will put it plainly: Typeform’s free plan allows 10 responses per month across the entire account, not per form. That figure was not something I had to look up. The account said so in two places, a banner above the form list and a counter reading “0 / 10”.

Typeform account banner reading You can collect 10 form responses this month for free
The free-plan limit as Typeform’s own account states it.

Ten enquiries is a fortnight for a working intake form, and then the form stops collecting. That is not a free plan you can build a process on; it is a trial with a counter on it.

Tally’s free plan offers unlimited forms and submissions, subject to a fair use policy. You can put a Tally form on a live page, leave it there, and only think about paying when you want the branding gone or a custom domain on it. The decision to upgrade comes after you know the product works for you, which is the right order.

File uploads, and what each actually costs

Both products showed a 10 MB per-file limit on their free tier, so file size is a tie. Availability is not.

In Tally, the upload block worked in a signed-out draft, with the limit and the upgrade path stated in place.

Tally file upload block showing Size limit 10 MB and a link to upgrade to Tally Pro for unlimited file uploads
Tally’s upload block in a signed-out draft: usable, with the free limit stated where you need it.

In Typeform’s element picker, File Upload carries an upgrade badge, as do Signature and Payment. The editor still let me add the question and preview it, so nothing stops you until the very last step.

Typeform Add form elements panel showing upgrade badges beside File Upload, Signature, Payment and other elements
Typeform’s element picker. The badge beside File Upload, Signature and Payment marks a paid feature.

Then I clicked Share to publish, and Typeform refused. The panel names the reason, Receive file uploads, and offers two ways out: upgrade, or remove the feature. On the free plan, a form that asks for a file cannot go live at all.

Typeform panel reading This form uses features that aren't in your plan, Receive file uploads, with Upgrade and Remove features buttons
Typeform’s response to Share on the free plan. The upload has to go, or the plan has to change.

Tally published the same brief, upload block included, on its free plan without a single prompt. I opened the live form, attached a PDF on the Website design route and submitted it.

Live Tally form with a PDF named test-brief.pdf attached to the upload field, above the Submit button
The live Tally form on the free plan, with a real file attached just before submitting.

So a client-intake form that accepts a brief, an extremely ordinary requirement, is a paid form in Typeform and a free one in Tally. That now holds on live forms, not just in the editor.

On price, check the toggle before you quote a number. Tally’s pricing page defaults to annual billing, so the first figure a US visitor sees is $24 for Pro, not the monthly rate. The page also picks its currency by location, so readers in Europe get euros instead. This is the page as the Internet Archive captured it from the US on 16 September 2026.

Tally pricing page captured by the Wayback Machine on 16 September 2026, yearly view, showing Pro at $24 per month and Business at $74 per month
Tally’s pricing page as served in the US, from the Wayback Machine capture of 16 September 2026. The yearly view is the default: Pro $24, Business $74 a month.

Tally Pro is $29 per month billed monthly, or $24 a month billed annually; Business is $89, or $74 a month annually. The monthly figures match Tally’s help documentation. For that, Pro removes Tally branding, adds custom domains, partial submissions and unlimited team members, and it does not meter your responses. Typeform’s entry Basic plan is $29 per month billed monthly, or $25 a month billed annually, and still caps you at 100 responses. Typeform also notes that it experiments with pricing, so the plans in your account may differ from its published page.

One thing to get right when you build in Tally

Every tool has one step that behaves differently from the way it reads. This is Tally’s. It cost me a single preview, and once you know about it, it never catches you again.

I placed a logic block, set When “What service do you need?” Is “Website design”, and chose the Show blocks action targeting the upload field. The rule reads exactly like the behaviour I wanted.

Tally conditional logic block with the Then action menu open, showing Jump to page, Calculate, Require answer, Show blocks, Hide blocks and Hide button to disable completion
Tally’s logic block. Readable, which is why the next step is easy to skip.

Previewing the Advertising path showed the catch. The upload was still on screen, and still marked required.

Tally respondent preview with Advertising selected, showing the file upload field still visible and still marked required
Before the fix: “Advertising” is selected and the upload field is still there.

The reason is simple once you know it. Show blocks reveals a block that is already hidden. It does not hide anything by itself. So the block needs hiding first, from its own menu, where Hide sits alongside Delete and Duplicate.

Tally file upload block menu showing Required, Multiple files, Max file size, Allowed files, Delete, Duplicate, Hide and Add conditional logic
The step to remember: Hide lives on the block, not in the rule.

One click, and both routes behaved correctly: Advertising went straight to Submit, Website design revealed the upload.

Tally respondent preview with Website design selected, showing the upload field correctly revealed
After the fix: same form, Website design path, upload correctly revealed.

The rule to remember: in Tally, hide the block first, then use a Show blocks rule to reveal it. Build your branches before you write the rest of the copy, and preview every route once. That single habit is what turned a form that looked configured into one that behaved correctly, and it is the same habit that catches mistakes in any form builder, including Typeform.

What happened when real submissions came in

To publish the Typeform at all, I duplicated it and swapped the upload for a free “Link to your brief” question. Everything else stayed identical, branch included. Then I sent one entry down each route in both tools.

Both live forms routed correctly. Advertising stopped at question three, and Website design went on to the fourth step. Tally’s Submissions tab showed both entries, with the uploaded file counted separately at the top.

Tally Submissions tab showing two completed entries, one Advertising and one Website design, and a Download 1 file upload button
Two live entries in Tally, one per route. The PDF from the Website design entry is ready to download.

Typeform counted its two entries against the account immediately.

Typeform banner reading You've used 20% of your Free plan's 10 responses a month
Two test entries, and a fifth of the free month is gone.

Then Google Sheets. In Tally it took one consent screen and a click on Create a new spreadsheet. Both entries appeared as rows within seconds, and the uploaded PDF arrived as a link in its own column.

Google Sheet named Client intake with two rows of Tally submissions, including company name, service, project description and a file link
Tally entries landing in Google Sheets. The file link is private and tokenised, so I have blurred it.

Typeform lists Google Sheets without an upgrade badge, and the Google authorisation itself went through. The final step did not. I tried four times, with a new spreadsheet and with an existing one. Each time the Finish button did nothing visible, while Typeform’s own server answered with an error. From outside I cannot tell whether that was a passing fault or something about free accounts. What I can say is that it failed without telling me, which is the worst way for an integration to fail.

On a phone

Most intake forms get opened from a link on a phone, so I loaded both live forms in a frame 390 pixels wide, a typical phone width.

Typeform and Tally live forms side by side at phone width, Typeform with a large OK button at the bottom, Tally with a Next button under the field
Both live forms at phone width. Typeform pins a full-width OK button to the bottom; Tally keeps its button under the field.

This is where Typeform earns its reputation. One question fills the screen and the big OK button sits right where your thumb is. I walked the Website design route at this width and the branch behaved exactly as on desktop. Tally’s first page fitted the frame with no changes on my side. It reads like a clean web page, which is what it is.

Taking payment in the form

My brief did not charge anyone, but deposits and paid consultations are common enough that I checked what each free plan allows. I did not connect a real Stripe account in either tool.

In Tally, typing /payment added a payment block on the free plan. It asks for a price and a currency, then for a Stripe connection. No upgrade prompt appeared.

Tally payment block with Price and Currency fields and a Connect with Stripe button
Tally’s payment block on the free plan: set a price, connect Stripe.

In Typeform, choosing Payment opens a list of providers, and both Stripe and PayPal carry the upgrade badge.

Typeform Payment integrations panel with Stripe and PayPal, each marked with the paid-plan badge
Typeform’s payment options on the free plan. Both are paid.

When Typeform is the better call

Two situations, and they are narrower than Typeform’s marketing suggests.

When the form is the campaign. One question per screen, keyboard letters for choices, a progress bar, Enter to advance. For a branded quiz, a research questionnaire or a campaign landing flow, that pacing is the product. For a four-field contact form it turns one screen of scrolling into four screens of clicking, which is a cost rather than a feature. But when presentation is the point, Typeform is built for it and Tally is not.

When you are building many branches at once. Typeform’s logic routes rather than reveals: you set where a match should go to, and it makes you answer “All other cases go to” as well. For one branch that is ceremony. For six it is a genuine advantage, and the Workflow view draws the result so you can check it at a glance.

Typeform Branching panel with Go to set to the upload question, a When condition on the service question, and All other cases go to set to Default end
Typeform’s branching rule, which requires the fallback path to be defined.

In my test both Typeform routes worked on the first configuration. The Advertising path showed Submit at question three and skipped the upload, exactly as designed.

Typeform preview on the Advertising path showing the third question with a Submit button and a full progress bar
Typeform’s Advertising path: Submit at question three, upload correctly skipped.

There is also a switching cost worth weighing honestly. If your team already runs Typeforms with connected automations and people who maintain them, a nicer editor is not on its own a reason to migrate.

Moving an existing Typeform across

If you do decide to move, Tally has a Typeform importer: connect your Typeform account, pick the forms, import. I ran it twice, and the difference between the two runs is the useful part.

The first time, I imported the original test form, the one Typeform would not let me publish. Tally created a form with the right title and a single empty multiple-choice question. None of my four questions came across.

Tally editor after importing an unpublished Typeform, showing only a form title and an empty question with Choice 1 and Choice 2
Importing a Typeform that was never published: a title and one placeholder question.

The second time, I imported the duplicate I had published. Everything arrived: all four questions, the page breaks and the branching rule, rebuilt as Tally logic. Both routes worked in Tally’s preview without any changes from me.

Imported Tally form showing two logic rules: a catch-all rule that jumps to the thank-you page, and a rule sending Website design to page 4
The published Typeform, imported with its branch intact. The first rule is Typeform’s “all other cases” fallback, translated literally.

So publish your latest Typeform edits before you import, because the importer appears to read the published version. Tally’s documentation also says past responses do not come across, so export those from Typeform before you retire a form.

The verdict for small teams

Start with Tally. You can build the form you actually need before you sign up for anything, collect file uploads on the free plan, and run it in production without a response counter forcing a decision for you. In my test it also sent every entry, uploaded file included, straight into Google Sheets. When you do upgrade, it is because you want your branding on it, not because ten people replied.

Build your branches first, hide any block you intend to reveal, and walk both routes in preview. That takes about fifteen minutes and it will tell you more than any comparison article, including this one.

Try Tally out yourself for free, today!

← Back to all articles