Client intake form
The longer form you send after the first reply. Scope, timeline and files, in one link.
See the templateA website contact form that asks six short questions, sorts each inquiry by type before it reaches you, and never caps how many people can send one. Clone it to your account, change the wording, embed it on your contact page.
No credit card. Unlimited forms and unlimited responses on the free plan.
What's in the template
Each one uses the question type that fits it, so the field validates itself and the answer lands in your table already clean.
The easiest possible opener. One field, no title dropdown.
Validated as an address, so a typo is caught before you hit reply.
Optional on purpose. It helps you triage a business inquiry without blocking anyone else.
Sales, Support, Partnership or Something else, answered with A, B, C or D. Your routing runs on this field.
The open box. Shift+Enter starts a new line, Enter moves on.
Confirms the message arrived and sets a reply time. Add a redirect to send people on to pricing or docs.
4 →
What can we help with?
Pick the closest one. It decides who reads this first.
The published form loads your logo, font and background behind a short branded overlay, then paints the first question. On a phone every option is a full-width tap target with a sticky back and next bar.
6
Questions, one per screen
∞
Inquiries a month, never capped
20
Logic operators to route with
$0
To publish and embed it
An email address printed on a page is the cheapest contact method and the most expensive to live with. Scrapers harvest it within days, so a good share of what arrives is not from customers. What is from customers arrives as free text: no company, no category, sometimes no reply address that matches the sender. You sort it by hand, every day, forever.
A form fixes three things at once. Bots get nothing to harvest, because there is no address in the markup and public submissions run through invisible reCAPTCHA v3. Every inquiry arrives structured, with a name, a valid email and a category attached. And that category is a routing signal, which is the difference between an inbox and a queue. Send it straight to a channel with the Slack integration and the right person sees it first. A mailto link also tells you nothing about itself; a form tells you who opened it, who started, who finished and where the rest stopped, which is the point of per-question drop-off analytics.
Four to six. Below four you are missing something you will have to email back and ask for; above six you are asking strangers to fill in a job application before they know whether you can help. Name, email, category and message is the irreducible set. Company earns its place when a business inquiry is worth handling differently, which is why it sits here as an optional fifth.
Everything past six should be earned rather than shown. Need a budget range? Ask it only of the people who said Sales. Need an order number? Ask it only of the people who said Support. That is what the logic in this template does, and it is why the form stays short for everyone while still collecting what you need from the people who matter. More on that trade-off in our guide to form design best practices. Two things to leave off: a phone number, unless you really will call, and a dropdown asking how they heard about you.
On a page of its own at /contact, linked from the footer of every page, carrying the form and almost nothing else. Someone who reached your contact page has already decided. Then embed the same form where the question actually occurs: at the bottom of pricing, at the end of a long docs page, inside the help center. Sharing and embedding gives you a public link and an iframe snippet from one published form, so every placement writes into a single responses table. For a paid landing page, use a lead capture form instead. Different job, different questions.
Already wired in
The template ships with conditional logic on the inquiry-type question. Nothing to build. Clone it and the branching is live.
Question 5 of 7, shown because you picked Sales
Roughly what budget are you working with?
A range is fine. It only decides who picks this up.
Routing
Responses land in the Upform table with search, filters, CSV export and a drawer per inquiry. Connect your own account to any of these and it goes out the moment it arrives.
Every integration is on the free plan, and every one connects with your own account. See them all on the integrations directory.
Related templates
The longer form you send after the first reply. Scope, timeline and files, in one link.
See the templateFor visitors who already know what they want. Budget up front, so your first reply carries a number.
See the templateWhen the next step is a slot, not a reply. Date, preferred time and the details you need first.
See the templateThe other half of inbound. Ask the people who already bought what worked.
See the templateOne email field and a consent line, wired to Mailchimp or Klaviyo with double opt-in intact.
See the templateEvery starting point we ship, with category filters and a live preview. One click to clone.
Browse the galleryYes, and it stays free. The free plan gives you unlimited forms, unlimited responses, all 21 question types, conditional logic and every integration, with 100 MB of file storage. Your form carries a small Upform mark. Pro is $12 a month and removes the mark, lifts the storage cap and adds up to five team members.
Every published form gets a public link and an embed snippet. Paste the snippet into your contact page and the form renders inline at whatever height you set, or link to the public URL from a button if you would rather send people to a full-screen version. Both work on Webflow, WordPress, Shopify, Framer and plain HTML, and nothing about the setup changes when you edit the questions later.
Yes. The template already asks what the inquiry is about, so you have a clean field to route on. Connect Slack and post each response to a channel, or connect HubSpot to create the contact, and use the inquiry type to decide which channel or owner it belongs to. Responses also stay in the Upform table with search, filters and CSV export.
Public submissions run through invisible reCAPTCHA v3, so most bot traffic never reaches your responses table and nobody has to click pictures of traffic lights. A published address in your page source is what bots harvest, and a form gives them nothing to harvest. If something does slip through, the response drawer shows the full answer set so you can see it for what it is in one glance.
Four to six is the sweet spot for a general website contact form: who you are, how to reach you, what it is about and what you need. Anything beyond that should be earned by conditional logic rather than shown to everyone. This template asks six things and uses logic so the extra question only appears for people it applies to.
Yes. Cloning the template puts a normal form on your account, so you can rename questions, delete them, drag the order around and add any of the 21 question types. The logic rules move with the questions you keep, and the live preview on the right of the builder shows every change at full size before you publish.
Get started
Clone the template, change five words, publish. Unlimited inquiries, on the plan that costs nothing.
No credit card. Unlimited forms and responses on the free plan.