Turn listing traffic into
qualified viewings, not cold calls.
Add a property inquiry or viewing-request form to every listing page. Budget, timeline, and financing status arrive as structured fields your team can actually act on — no server, no CRM plugin, no backend to run.
- Multi-agent email routing
- Spam filtered server-side
- Free to start — no credit card
$450,000
123 Maple Grove Ave, Austin, TX
Recent inquiries
Jordan M.
Interested — $450k, pre-approved
Priya R.
Requesting a tour this weekend
The Alvarez Family
3BR search, budget up to $500k
Routed to Agent Maria
123 Maple Grove Ave inquiry
Why "Contact us" loses buyers
A bare mailto link or a phone number on a listing page tells you nothing about who's actually interested — or how soon they want to see the place.
Inquiries scattered everywhere
A call here, a text there, a random email — nothing tells you which listing actually brought the lead in.
Browsers, not buyers
A bare contact form can't tell a financed, serious buyer from someone just curious about the asking price.
Hot leads go cold
A buyer who wants to view this weekend needs a reply today — not whenever someone checks a shared inbox.
No idea which listing converts
Without view tracking, you can't tell if a listing page is generating real interest or just page views.
Built for how listings actually convert
Every property inquiry form comes with the qualifying details and routing an agency needs — not just a name and a message.
Pre-approval & ID uploads
Let serious buyers attach a pre-approval letter or ID right in the inquiry — single or multiple files, no extra software.
Viewing-request date field
Add a date field so buyers name a preferred viewing day up front — a clean date picker, no calendar sync required.
Multi-agent routing
Send inquiries to the listing agent, CC the broker, and point a separate form at your rental team entirely.
A hosted page per listing
No site for a new listing yet? Publish an inquiry page at its own subdomain with photos and details in minutes.
Spam filtering built in
Server-side spam detection runs on every submission automatically, with optional reCAPTCHA or Turnstile on top.
CRM sync via Zapier & webhooks
Push every inquiry into your CRM, spreadsheet, or Slack the moment it arrives — connect Zapier, Make, or any webhook.
High-converting lead forms for real estate
A property inquiry is usually the whole point of a listing page — yet most sites still route it through a plain mailto link or a phone number nobody answers on the first ring. NBForms turns it into a structured form that posts straight to your endpoint: budget range, whether the visitor is buying, selling, or renting, and a preferred viewing date, arriving as clean fields instead of a text message you have to decode. Every submission lands in a shared dashboard the whole team can see, with role-based access so admins manage the forms while agents just read and work the leads.
Routing is built in. Send new buyer inquiries to the listing agent, CC the broker, and point a separate rental form at a different inbox entirely — all with multiple notification recipients per form. Connect Zapier, Make, or a plain webhook to push each inquiry into your CRM, and add a hidden _redirect field to send buyers straight to a booking page after they submit. A date field lets visitors name a preferred viewing day up front — it's a clean date picker, not a synced calendar — and server-side spam filtering runs on every submission automatically, with optional reCAPTCHA or Turnstile for listings that get heavy traffic.
Because it's just an HTML form action, it works with whatever the listing site is built in — a static page, WordPress, Webflow, or a framework-based app — and there are ready-made snippets for 16 frameworks when the site is React, Vue, or something else. No site for a new listing yet? Publish a hosted inquiry page from the real estate template in the template library and start collecting inquiries before the property even hits the MLS. Getting started is free with no credit card, and pricing beyond that is pay-as-you-go credits — nothing recurring per agent or per listing.
At a glance
- No backend or server required — just an HTML form action
- Multiple recipients + CC — route by agent, listing, or team
- Date field for preferred viewing day, no calendar sync claimed
- Single & multi-file uploads for pre-approval letters or ID
- View-tracking pixel pairs with stats for a real conversion rate
- Free to start, pay-as-you-go credits beyond that
A property inquiry form you can paste today
Qualify buyers on arrival — budget and viewing date come in as structured fields, and a pre-approval letter can be attached right in the form. Styled with Tailwind CSS out of the box.
<form action="https://api.nbforms.com" method="POST" class="space-y-5 max-w-md min-w-[400px]"> <input type="hidden" name="_token" value="YOUR_TOKEN" /> <input type="hidden" name="_redirect" value="https://yoursite.com/thank-you" /> <div class="mb-1"> <h2 class="text-xl font-bold text-gray-900 tracking-tight">Request property info</h2> <p class="text-sm text-gray-500 mt-1">An agent will follow up within one business day.</p> </div> <div> <label class="block text-xs font-semibold text-gray-700 mb-1.5">Full name</label> <input type="text" name="name" required class="w-full rounded-xl border border-gray-200 bg-gray-50 px-3.5 py-2.5 text-sm text-gray-900 shadow-sm outline-none transition-all focus:bg-white focus:border-[#92400e] focus:ring-4 focus:ring-[#92400e]/10" /> </div> <div class="grid grid-cols-2 gap-4"> <div> <label class="block text-xs font-semibold text-gray-700 mb-1.5">Email</label> <input type="email" name="email" required class="w-full rounded-xl border border-gray-200 bg-gray-50 px-3.5 py-2.5 text-sm text-gray-900 shadow-sm outline-none transition-all focus:bg-white focus:border-[#92400e] focus:ring-4 focus:ring-[#92400e]/10" /> </div> <div> <label class="block text-xs font-semibold text-gray-700 mb-1.5">Phone</label> <input type="tel" name="phone" class="w-full rounded-xl border border-gray-200 bg-gray-50 px-3.5 py-2.5 text-sm text-gray-900 shadow-sm outline-none transition-all focus:bg-white focus:border-[#92400e] focus:ring-4 focus:ring-[#92400e]/10" /> </div> </div> <div> <label class="block text-xs font-semibold text-gray-700 mb-1.5">I'm interested in</label> <select name="interest" class="w-full rounded-xl border border-gray-200 bg-gray-50 px-3.5 py-2.5 text-sm text-gray-900 shadow-sm outline-none transition-all focus:bg-white focus:border-[#92400e] focus:ring-4 focus:ring-[#92400e]/10"> <option>Buying</option> <option>Renting</option> <option>Selling</option> </select> </div> <div class="grid grid-cols-2 gap-4"> <div> <label class="block text-xs font-semibold text-gray-700 mb-1.5">Budget range</label> <select name="budget" class="w-full rounded-xl border border-gray-200 bg-gray-50 px-3.5 py-2.5 text-sm text-gray-900 shadow-sm outline-none transition-all focus:bg-white focus:border-[#92400e] focus:ring-4 focus:ring-[#92400e]/10"> <option>Under $250k</option> <option>$250k – $500k</option> <option>$500k – $1M</option> <option>$1M+</option> </select> </div> <div> <label class="block text-xs font-semibold text-gray-700 mb-1.5">Viewing date</label> <input type="date" name="viewing_date" class="w-full rounded-xl border border-gray-200 bg-gray-50 px-3.5 py-2.5 text-sm text-gray-900 shadow-sm outline-none transition-all focus:bg-white focus:border-[#92400e] focus:ring-4 focus:ring-[#92400e]/10" /> </div> </div> <div> <label class="block text-xs font-semibold text-gray-700 mb-1.5">Pre-approval letter (optional)</label> <input type="file" name="preapproval" class="w-full text-sm text-gray-600 file:mr-3 file:rounded-lg file:border-0 file:bg-[#92400e]/10 file:px-3 file:py-2 file:text-xs file:font-semibold file:text-[#92400e] hover:file:bg-[#92400e]/15 transition-colors" /> </div> <div> <label class="block text-xs font-semibold text-gray-700 mb-1.5">Message</label> <textarea name="message" rows="3" class="w-full rounded-xl border border-gray-200 bg-gray-50 px-3.5 py-2.5 text-sm text-gray-900 shadow-sm outline-none transition-all focus:bg-white focus:border-[#92400e] focus:ring-4 focus:ring-[#92400e]/10"></textarea> </div> <button type="submit" class="w-full rounded-full bg-gradient-to-r from-[#c2703d] to-[#92400e] px-4 py-3 text-sm font-semibold text-white shadow-lg shadow-[#92400e]/25 transition-all hover:brightness-110">Send Inquiry</button> </form>
Replace YOUR_TOKEN with the token from your form's setup page, and _redirect with your own booking or thank-you URL. Keep or drop the Tailwind classes — NBForms only cares about the action and field names.
Real estate lead forms — FAQ
Can I capture a buyer's budget and financing status upfront?
Yes. Add select fields for budget range and buying/renting/selling intent, so agents see qualifying details the moment an inquiry arrives instead of digging for them on a call.
Can buyers request a specific viewing date?
Yes, using a date field — it's a clean date picker on the form, not a synced calendar or scheduling tool. The preferred date arrives with the rest of the submission for an agent to confirm.
Can inquiries be routed to different agents automatically?
Each form supports multiple notification recipients plus CC, so one listing's form can alert its agent while a separate rental-inquiry form notifies a different team entirely.
Can buyers upload a pre-approval letter or ID?
Yes. Add a file field to accept a single upload or multiple files — useful for pre-approval letters, ID verification, or any document you want attached to the inquiry.
Does this sync with my CRM?
NBForms doesn't sync to a CRM directly, but you can connect Zapier, Make, or a plain webhook to push every inquiry into your CRM, spreadsheet, or Slack the moment it arrives.
Do I need a website for a brand-new listing?
No. Publish an inquiry page as its own hosted page at a free nbforms.com subdomain, using the real estate template — photos, pricing, and the form are live before the listing even hits the MLS.
Stop losing buyers to slow follow-ups
Free to start. No credit card. Add routing, file uploads, and a hosted page whenever you're ready.
Build Real Estate Form