What's in the template

Six questions, in this order

Each one uses the question type that fits it, so the field validates itself and the answer lands in your table already clean.

  1. What's your name? Full Name

    The easiest possible opener. One field, no title dropdown.

  2. What email should we reply to? Email

    Validated as an address, so a typo is caught before you hit reply.

  3. Which company are you with? Company Name (optional)

    Optional on purpose. It helps you triage a business inquiry without blocking anyone else.

  4. What can we help with? Single Choice

    Sales, Support, Partnership or Something else, answered with A, B, C or D. Your routing runs on this field.

  5. Tell us a bit more Long Text

    The open box. Shift+Enter starts a new line, Enter moves on.

  6. Thanks, we'll be in touch Thank You

    Confirms the message arrived and sets a reply time. Add a redirect to send people on to pricing or docs.

upform.com/f/contact

4 →

What can we help with?

Pick the closest one. It decides who reads this first.

A Sales
B Support
C Partnership
D Something else
Next →press Enter ↵

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

Why a contact form beats a mailto link

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.

How many fields a contact form should have

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.

Where to put the contact form

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.

Set a reply time and keep it The thank-you screen is the last thing anyone reads, so put a number on it: "we reply within one business day" beats "we'll be in touch soon". A promise you keep is the cheapest trust you will ever buy, and it cuts the follow-up emails asking whether the first one arrived.

Already wired in

Two rules that make one form behave like three

The template ships with conditional logic on the inquiry-type question. Nothing to build. Clone it and the branching is live.

  • If "What can we help with?" equals Sales, show a budget range question before the message box.
  • If it equals Support, show an order-number question instead, so the first reply can already be useful.
  • Partnership and Something else see neither. Their form stays six screens long.
  • Add your own with 20 operators and four actions: show, hide, jump to a question, or end the form.
How conditional logic works

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.

A Under $1,000
B $1,000 – $10,000
C Over $10,000
D Not sure yet
Next →press Enter ↵

Routing

Every inquiry, delivered where you already work

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

Forms that usually sit next to a contact form

Frequently asked questions

Is this contact form template really free?

Yes, 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.

How do I add the contact form to my website?

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.

Can I send inquiries to different people?

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.

How do I stop spam coming through the contact form?

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.

How many fields should a contact form have?

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.

Can I change the questions in this template?

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

Put this contact form on your site today

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.