splitforms.com
← Back to the journal

Client Intake Form for Agencies: Fields, Workflow, and Routing

Build a client intake form for agencies that qualifies leads, routes submissions to the right person, stores a searchable record, and syncs to your CRM…

Start free — 500 submissions/moSee pricing →No credit card. Paid plans from $5/mo.

The job of an agency intake form

An agency intake form is not just a contact form with more fields. It is a qualification system. The form should answer three questions before anyone books a call: is this a real prospect, is the project a fit, and who should handle the next step?

The mistake is asking every question the agency might ever want. That creates a form nobody finishes. The better version asks enough to route the lead and leaves discovery details for the call.

Fields to include

  • Name and email. Required. Add phone only if calls are part of your sales process.
  • Company and website URL. Gives the team context before replying.
  • Project type. Website, SEO, paid ads, branding, automation, maintenance, or consulting.
  • Budget range. Use ranges like under $2k, $2k-$5k, $5k-$15k, $15k+.
  • Timeline. This week, this month, this quarter, or exploring.
  • Decision maker. Ask whether the person submitting can approve budget.
  • Current stack. Webflow, WordPress, Shopify, Next.js, HubSpot, or other.
  • Primary goal. More leads, better conversion, redesign, speed, automation, or support.
  • Upload. Optional brief, RFP, logo, brand guide, or screenshot.

Copy-paste HTML template

This version works on plain HTML, Webflow embeds, WordPress Custom HTML blocks, static sites, and most framework components.

<form action="https://splitforms.com/api/submit" method="POST" enctype="multipart/form-data">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
  <input type="hidden" name="form_type" value="agency_client_intake" />
  <input type="hidden" name="source_page" value="agency-site-homepage" />

  <label>Name <input name="name" required /></label>
  <label>Email <input name="email" type="email" required /></label>
  <label>Company <input name="company" /></label>
  <label>Website <input name="website" type="url" /></label>

  <label>Project type
    <select name="project_type" required>
      <option value="">Choose one</option>
      <option>Website redesign</option>
      <option>SEO</option>
      <option>Paid ads</option>
      <option>Branding</option>
      <option>Automation</option>
      <option>Ongoing support</option>
    </select>
  </label>

  <label>Budget range
    <select name="budget" required>
      <option value="">Choose one</option>
      <option>Under $2k</option>
      <option>$2k-$5k</option>
      <option>$5k-$15k</option>
      <option>$15k+</option>
    </select>
  </label>

  <label>Timeline
    <select name="timeline" required>
      <option value="">Choose one</option>
      <option>This week</option>
      <option>This month</option>
      <option>This quarter</option>
      <option>Just exploring</option>
    </select>
  </label>

  <label>What are you trying to fix?
    <textarea name="goals" required></textarea>
  </label>

  <label>Upload a brief or brand file
    <input type="file" name="brief" />
  </label>

  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" />
  <button type="submit">Request a proposal</button>
</form>

Route leads by budget, service, and urgency

The form is only half the system. Routing decides whether the lead gets answered in minutes or buried in a shared inbox.

  • High budget + urgent timeline: notify the sales owner and agency Slack channel.
  • Maintenance requests: route to support or operations instead of sales.
  • Low budget: send a helpful autoresponder, template offer, or partner referral.
  • RFP upload: create a CRM task and assign an owner.
  • Existing client: send to account management, not the new-business pipeline.

splitforms can send owner email on every plan and signed webhooks on paid plans. That lets you keep the form simple while routing qualified leads to Slack, Google Sheets, a CRM, or your own webhook handler.

Using one system across client sites

Agencies often manage forms for many client sites. The important part is keeping the data separated. Use one form per client or hidden fields for client ID, site URL, campaign, and service line. Add allowed-domain locking so a copied form cannot submit from an unexpected origin.

On Pro and 3-Year, unlimited forms make this easier: each client can have its own form, routing, notification recipients, and export path.

Common mistakes

  • Asking 25 questions before the first conversation.
  • Using one generic inbox for every client and service line.
  • Letting spam submissions count as leads in reports.
  • Forgetting hidden source fields, which makes attribution messy.
  • Not storing submissions anywhere except email.

FAQ

What fields should an agency client intake form include?

Collect contact details, company URL, project type, budget range, timeline, decision maker, current stack, goals, blockers, and file uploads for briefs or brand assets. Keep the first screen short and branch only when needed.

Should agency intake forms ask for budget?

Yes. Use ranges instead of a blank text field. Budget ranges qualify urgency and fit without making the prospect calculate a perfect number before they submit.

Where should intake submissions go?

At minimum, send owner email and store the submission in a dashboard. For sales teams, route qualified leads to a CRM, Slack channel, Google Sheet, or project-management intake board.

Can I use one intake form across many client sites?

Yes, but separate each client or campaign with hidden fields, allowed-domain locking, and per-form routing so leads do not mix together.

Related articles

More practical guidance from guides.

Browse the journal →
Guides

Elementor Form Not Sending Email? 5 Fixes That Work (2026)

Why Elementor form notifications never arrive: the wp_mail root cause, how to confirm it in

8 min readRead →
Guides

Why mailto: Doesn't Work as a Form Action (and What Converts 3–10× Better)

Using action="mailto:you@example.com" opens the visitor's mail app instead of sending anythi

6 min readRead →
Guides

Why Your Form Works in Preview but Not on the Live Site

Form submits perfectly in your builder's preview but fails in production? The usual causes:

7 min readRead →

Explore this topic

Start with the overview, then move into focused guides.

OverviewWhat Is a Form Backend? (Complete Guide)Start here →GuideSelf-Hosted vs SaaS Form BackendRead →GuideForm Backend vs Form BuilderRead →GuideWhere Do Form Submissions Go?Read →ReferenceForm backend guideOpen →

Building forms with ChatGPT, Claude, Cursor, or v0? Connect the native MCP server and give your agent a production form backend.

Explore the MCP server →

Give your form a production backend.

One endpoint adds delivery, spam filtering, storage, and integrations. Start with 500 submissions a month for free.

Create free accountRead the docs →
Secure checkoutSSL encryptionPrivacyProtected
VISAAMERICANEXPRESSstripe