splitforms.com
CREATIVE AGENCY · CONTACT FORM TEMPLATE

Interior Designer Project Inquiry Form

Interior design inquiries split into e-design ($500-2k for digital deliverables) and full-service ($10-100k+ with site visits, sourcing, project management). The form sorts both before the consult.

1,000/mo free·no card·works on any host
form.htmlhtml54 lines
01<form action="https://splitforms.com/api/submit" method="POST">
02 <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY">
03 <input type="hidden" name="subject" value="New interior design inquiry">
04
05 <label for="name">Full name *</label>
06 <input id="name" type="text" name="name" placeholder="Marie Dubois" required>
07 <label for="email">Email *</label>
08 <input id="email" type="email" name="email" placeholder="marie@example.com" required>
09 <label for="phone">Phone</label>
10 <input id="phone" type="tel" name="phone" placeholder="+1 555 0142">
11 <label for="scope">Project scope *</label>
12 <select id="scope" name="scope" required>
13 <option value="">Choose…</option>
14 <option>Single room</option>
15 <option>Multiple rooms</option>
16 <option>Whole home</option>
17 <option>Commercial / office</option>
18 <option>E-design only</option>
19 </select>
20 <label for="rooms">Which rooms?</label>
21 <input id="rooms" type="text" name="rooms" placeholder="Living room, primary bedroom, kitchen…">
22 <label for="budget">Budget (furniture + fees) *</label>
23 <select id="budget" name="budget" required>
24 <option value="">Choose…</option>
25 <option>Under $10k</option>
26 <option>$10k–$25k</option>
27 <option>$25k–$75k</option>
28 <option>$75k–$200k</option>
29 <option>$200k+</option>
30 </select>
31 <label for="style">Style preference</label>
32 <select id="style" name="style">
33 <option value="">Choose…</option>
34 <option>Modern</option>
35 <option>Traditional</option>
36 <option>Mid-century</option>
37 <option>Scandinavian / minimalist</option>
38 <option>Bohemian</option>
39 <option>Coastal</option>
40 <option>Industrial</option>
41 <option>Eclectic / mixed</option>
42 </select>
43 <label for="details">Tell us about the project</label>
44 <textarea id="details" name="details" placeholder="Pinterest links, photos, lifestyle (kids / pets), priorities…"></textarea>
45
46 <!-- honeypot — bots fill every field -->
47 <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off">
48
49 <button type="submit">Send</button>
50</form>
51
52<p style="margin-top:12px;font-size:11px;color:#888;text-align:right">
53 Powered by <a href="https://splitforms.com" style="color:#888;text-decoration:none" target="_blank" rel="noopener">splitforms</a>
54</p>
1,000
submissions / mo, free
8
fields, ready to ship
5
code outputs
60s
from copy to inbox
Interior Designer Project Inquiry Form — example splitforms template with submissions inbox
§ 01Why it mattersthe qualifying-fields argument

Interior design pricing scales from $500 for a single-room e-design package to $50k+ for a whole-home full-service engagement. The form has to capture which type of engagement the prospect wants. Full-service includes 3D renderings, sourcing, contractor coordination, and 6-12 months of project management — designers typically charge a flat design fee plus 15-25% on furnishing markup. E-design is async — the client photos their space, designer delivers a moodboard / shopping list / 3D render, no site visits. The form captures rooms, budget, style preference, and an inspiration upload (Pinterest / Instagram). Without that filter, every consult call burns 30 minutes on basics.

Inspiration upload (Pro) · webhooks into HoneyBook / Studio Designer / Mydoma.
✦ at a glance
  • Interior design inquiry · 8 fields
  • HTML, JS, React, PHP, cURL outputs
  • One POST endpoint, no SDK
  • Honeypot + classifier, no CAPTCHA
§ 02Live previewinteractive · sandboxed · no key required

See exactly what your visitors see — and you’ll receive.

Left: the rendered form, fully interactive in a sandboxed iframe. Right: the email and dashboard view that lands the moment a visitor submits.

preview · interior-designer-contact-formlocalhost:3000
✦ what you’ll see in your inbox

Every submission becomes an email plus a dashboard row. The fields below are the exact payload your form will send. Reply-to is wired to the visitor’s email so hitting reply goes back to them.

dashboard · new submission14ms · 200 OK
SUBJECT · New interior design inquiry
Full name
Maya Iyer
Email
maya@studio71.co
Phone
+1 415 555 0142
Project scope
Single room
Which rooms?
Budget (furniture + fees)
$650k — $850k
Style preference
Modern
Tell us about the project
Loved your last open house in Hayes — looking for similar with parking. Pre-approved through Wells Fargo.

Iframe is sandboxed — submit doesn’t actually fire. Get your access key to wire it up live.

§ 03Three steps3 steps · ~60 seconds

Generate, embed, receive.

Three actions stand between you and your first lead. None of them require a backend, a database, or a CAPTCHA library.

STEP 01GENERATE

Capture engagement type

Required: e-design / full-service / not sure, rooms in scope (single / multiple / whole home), project type (refresh / renovation / new build).

Create your form
key=sk_live_••••••••
STEP 02EMBED

Qualify on budget

Furnishing budget ranges ($5-15k / $15-50k / $50-150k / $150k+) plus design-fee budget. The two are separate — clients often underestimate furnishings by 2-3x. Honest ranges save the post-quote sticker shock.

snippethtml
<form action="https://splitforms.com/api/submit" method="POST">
  …
</form>
STEP 03RECEIVE

Inspiration upload

Pro file upload — Pinterest screenshots, Instagram saves, magazine tear sheets. Designers walk into the consult aligned on aesthetic; close rate jumps 30-40% on calls that start with shared visual reference.

inbox · 1 newjust now
FROM contact@yoursite.com
New interior design inquiry
Maya Iyer maya@studio71.co
Loved your last open house in Hayes — looking for similar with parking. Pre-approved through Wells Fargo.
§ 04Copy & ship5 languages · same endpoint

Five outputs. One backend.

HTML by default. Click open the language you ship in — every variant POSTs to the same /api/submit endpoint.

01HTMLform.html54 lines
<form action="https://splitforms.com/api/submit" method="POST">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY">
  <input type="hidden" name="subject" value="New interior design inquiry">

  <label for="name">Full name *</label>
  <input id="name" type="text" name="name" placeholder="Marie Dubois" required>
  <label for="email">Email *</label>
  <input id="email" type="email" name="email" placeholder="marie@example.com" required>
  <label for="phone">Phone</label>
  <input id="phone" type="tel" name="phone" placeholder="+1 555 0142">
  <label for="scope">Project scope *</label>
  <select id="scope" name="scope" required>
    <option value="">Choose…</option>
    <option>Single room</option>
    <option>Multiple rooms</option>
    <option>Whole home</option>
    <option>Commercial / office</option>
    <option>E-design only</option>
  </select>
  <label for="rooms">Which rooms?</label>
  <input id="rooms" type="text" name="rooms" placeholder="Living room, primary bedroom, kitchen…">
  <label for="budget">Budget (furniture + fees) *</label>
  <select id="budget" name="budget" required>
    <option value="">Choose…</option>
    <option>Under $10k</option>
    <option>$10k–$25k</option>
    <option>$25k–$75k</option>
    <option>$75k–$200k</option>
    <option>$200k+</option>
  </select>
  <label for="style">Style preference</label>
  <select id="style" name="style">
    <option value="">Choose…</option>
    <option>Modern</option>
    <option>Traditional</option>
    <option>Mid-century</option>
    <option>Scandinavian / minimalist</option>
    <option>Bohemian</option>
    <option>Coastal</option>
    <option>Industrial</option>
    <option>Eclectic / mixed</option>
  </select>
  <label for="details">Tell us about the project</label>
  <textarea id="details" name="details" placeholder="Pinterest links, photos, lifestyle (kids / pets), priorities…"></textarea>

  <!-- honeypot — bots fill every field -->
  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off">

  <button type="submit">Send</button>
</form>

<p style="margin-top:12px;font-size:11px;color:#888;text-align:right">
  Powered by <a href="https://splitforms.com" style="color:#888;text-decoration:none" target="_blank" rel="noopener">splitforms</a>
</p>
02JavaScriptform.js70 lines
<form id="lf-form">
  <label for="name">Full name *</label>
  <input id="name" type="text" name="name" placeholder="Marie Dubois" required>
  <label for="email">Email *</label>
  <input id="email" type="email" name="email" placeholder="marie@example.com" required>
  <label for="phone">Phone</label>
  <input id="phone" type="tel" name="phone" placeholder="+1 555 0142">
  <label for="scope">Project scope *</label>
  <select id="scope" name="scope" required>
    <option value="">Choose…</option>
    <option>Single room</option>
    <option>Multiple rooms</option>
    <option>Whole home</option>
    <option>Commercial / office</option>
    <option>E-design only</option>
  </select>
  <label for="rooms">Which rooms?</label>
  <input id="rooms" type="text" name="rooms" placeholder="Living room, primary bedroom, kitchen…">
  <label for="budget">Budget (furniture + fees) *</label>
  <select id="budget" name="budget" required>
    <option value="">Choose…</option>
    <option>Under $10k</option>
    <option>$10k–$25k</option>
    <option>$25k–$75k</option>
    <option>$75k–$200k</option>
    <option>$200k+</option>
  </select>
  <label for="style">Style preference</label>
  <select id="style" name="style">
    <option value="">Choose…</option>
    <option>Modern</option>
    <option>Traditional</option>
    <option>Mid-century</option>
    <option>Scandinavian / minimalist</option>
    <option>Bohemian</option>
    <option>Coastal</option>
    <option>Industrial</option>
    <option>Eclectic / mixed</option>
  </select>
  <label for="details">Tell us about the project</label>
  <textarea id="details" name="details" placeholder="Pinterest links, photos, lifestyle (kids / pets), priorities…"></textarea>
  <button type="submit">Send</button>
</form>

<p style="margin-top:12px;font-size:11px;color:#888;text-align:right">
  Powered by <a href="https://splitforms.com" style="color:#888;text-decoration:none" target="_blank" rel="noopener">splitforms</a>
</p>

<script>
  document.getElementById('lf-form').addEventListener('submit', async (e) => {
    e.preventDefault();
    const data = new FormData(e.target);
    data.set('access_key', 'YOUR_ACCESS_KEY');
    data.set('subject', 'New interior design inquiry');

    const res = await fetch('https://splitforms.com/api/submit', {
      method: 'POST',
      body: data,
      headers: { Accept: 'application/json' },
    });

    const json = await res.json();
    if (json.success) {
      e.target.reset();
      alert('Sent!');
    } else {
      alert('Error: ' + (json.message || 'Try again'));
    }
  });
</script>
03React / Next.jsForm.tsx85 lines
'use client';

import { useState, type FormEvent } from 'react';

export default function InteriorDesignInquiryForm() {
  const [status, setStatus] = useState<'idle' | 'sending' | 'sent' | 'error'>('idle');

  async function onSubmit(e: FormEvent<HTMLFormElement>) {
    e.preventDefault();
    setStatus('sending');

    const data = new FormData(e.currentTarget);
    data.set('access_key', 'YOUR_ACCESS_KEY');
    data.set('subject', 'New interior design inquiry');

    const res = await fetch('https://splitforms.com/api/submit', {
      method: 'POST',
      body: data,
      headers: { Accept: 'application/json' },
    });

    const json = await res.json();
    setStatus(json.success ? 'sent' : 'error');
    if (json.success) e.currentTarget.reset();
  }

  if (status === 'sent') return <p>Thanks — we&rsquo;ll be in touch.</p>;

  return (
    <>
    <form onSubmit={onSubmit}>
      <label htmlFor="name">Full name *</label>
      <input id="name" type="text" name="name" placeholder="Marie Dubois" required />
      <label htmlFor="email">Email *</label>
      <input id="email" type="email" name="email" placeholder="marie@example.com" required />
      <label htmlFor="phone">Phone</label>
      <input id="phone" type="tel" name="phone" placeholder="+1 555 0142" />
      <label htmlFor="scope">Project scope *</label>
      <select id="scope" name="scope" required>
        <option value="">Choose…</option>
        <option>Single room</option>
        <option>Multiple rooms</option>
        <option>Whole home</option>
        <option>Commercial / office</option>
        <option>E-design only</option>
      </select>
      <label htmlFor="rooms">Which rooms?</label>
      <input id="rooms" type="text" name="rooms" placeholder="Living room, primary bedroom, kitchen…" />
      <label htmlFor="budget">Budget (furniture + fees) *</label>
      <select id="budget" name="budget" required>
        <option value="">Choose…</option>
        <option>Under $10k</option>
        <option>$10k–$25k</option>
        <option>$25k–$75k</option>
        <option>$75k–$200k</option>
        <option>$200k+</option>
      </select>
      <label htmlFor="style">Style preference</label>
      <select id="style" name="style">
        <option value="">Choose…</option>
        <option>Modern</option>
        <option>Traditional</option>
        <option>Mid-century</option>
        <option>Scandinavian / minimalist</option>
        <option>Bohemian</option>
        <option>Coastal</option>
        <option>Industrial</option>
        <option>Eclectic / mixed</option>
      </select>
      <label htmlFor="details">Tell us about the project</label>
      <textarea id="details" name="details" placeholder="Pinterest links, photos, lifestyle (kids / pets), priorities…" />

      <button type="submit" disabled={status === 'sending'}>
        {status === 'sending' ? 'Sending…' : 'Send'}
      </button>

      {status === 'error' && <p>Something went wrong. Try again.</p>}
    </form>

      <p style={{ marginTop: 12, fontSize: 11, color: '#888', textAlign: 'right' }}>
        Powered by <a href="https://splitforms.com" target="_blank" rel="noopener" style={{ color: '#888', textDecoration: 'none' }}>splitforms</a>
      </p>
    </>
  );
}
04PHPsubmit.php28 lines
<?php
// Drop into a PHP page. Receives a form POST and proxies it to splitforms.com.
// Useful when you want to add server-side validation or rate limiting.

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $allowed = ['name', 'email', 'phone', 'scope', 'rooms', 'budget', 'style', 'details'];
    $payload = ['access_key' => 'YOUR_ACCESS_KEY'];
    $payload['subject'] = 'New interior design inquiry';

    foreach ($allowed as $f) {
        if (isset($_POST[$f])) $payload[$f] = $_POST[$f];
    }

    $ch = curl_init('https://splitforms.com/api/submit');
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($payload));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, ['Accept: application/json']);
    $response = curl_exec($ch);
    $status   = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    header('Content-Type: application/json');
    http_response_code($status);
    echo $response;
    exit;
}
?>
05cURLtest.sh12 lines
curl -X POST https://splitforms.com/api/submit \
  -H "Accept: application/json" \
  -d "access_key=YOUR_ACCESS_KEY" \
  -d "subject=New interior design inquiry" \
  -d "name=Jane Builder" \
  -d "email=jane@example.com" \
  -d "phone=+15555555555" \
  -d "scope=Single room" \
  -d "rooms=Jane Builder" \
  -d "budget=Under $10k" \
  -d "style=Modern" \
  -d "details=Hello from cURL" 

Replace YOUR_ACCESS_KEY with the key from your dashboard. That’s the only edit.

§ 06FAQ4 answered

Things people ask before they ship.

Direct answers, no marketing fluff. Missing one? Email hello@splitforms.com.

01Should I show design fees on the website?
Show e-design package pricing (it's standardised — $500/room is industry baseline) and 'starts at $X' for full-service. Hiding fees entirely drives the budget-conscious leads to competitors who're transparent. The premium full-service market still expects a custom quote, but the floor should be public.
02Can I integrate with HoneyBook / Studio Designer / Ivy / Mydoma?
Yes — webhook the JSON. HoneyBook is the lightweight option; Studio Designer and Mydoma are interior-design-specific (sourcing, billing, client portals). All accept inbound leads via Zapier or native APIs.
03How do I price a discovery / consultation call?
Most designers charge $200-500 for a 60-90 min in-home consultation, credited toward the project if the client books. Hourly virtual consults run $150-300. Free consults attract tire-kickers; paid consults filter for serious clients.
04What about commercial vs residential?
Add a 'residential / commercial / both' radio. Commercial work (offices, hospitality, retail) is project-managed differently — bid documents, contractor coordination, FF&E specs. Different rate card, often a different team. Route accordingly in the webhook.
✻ ✻ ✻

Ship your interior designer project inquiry form in 60 seconds.

1,000 free submissions per month. No credit card. Copy the snippet, paste your access key, watch leads land in your inbox.

Get free access key →Browse all 60 templates →
v0.1 · founders pricing locked in · early access open