For digital agencies

Contact forms your
whole agency can run.

Client inquiries, project briefs, and quote requests — collected in one spam-filtered inbox your team shares, with alerts where your team already works. No backend required.

  • Spam filtered server-side
  • Shared team dashboard
  • Free tier — no credit card
Client briefs3 new
A

Acme Studio

Website redesign brief — Q4 launch

4m
N

northwind.io

SEO retainer quote request

1h
B

Bluebird Café

Branding project — new location

3h

Posted to #new-leads

Website redesign brief — Acme Studio

The agency inbox problem

When client inquiries arrive as plain email, they scatter across personal inboxes — and the fastest-growing agencies lose exactly the leads they worked hardest to win.

Scattered client emails

Inquiries land in whoever's inbox the client happened to have — and stay invisible to the rest of the team.

Spam overload

A public contact form without filtering means the real briefs drown between bot submissions.

Lost briefs

Requirements arrive as free-text email threads with no structure — budgets and scope get lost in the scroll.

Slow response times

Nobody is sure who replies, so nobody does. Hot leads cool off while the thread sits unread.

Built for teams, not inboxes

Every client intake form you point at NBForms lands in a shared dashboard with the guardrails an agency actually needs.

Team collaboration

Role-based access: admins manage forms and settings, members read and work the submissions.

Multiple recipients + CC

Route each form to the right people — partners on new business, PMs on support, CC the founder.

Slack alerts

Connect the Slack integration and every brief posts to your channel the moment it arrives.

Branded hosted forms

Publish an intake page at its own subdomain with your title, subtitle, and theme — perfect for proposals.

Client intake forms that fit your agency workflow

A digital agency runs on inbound work: new business inquiries, project briefs, quote requests, and referrals from past clients. NBForms turns each of those into a structured form that posts straight to your endpoint — no server, no plugins, no backend code. Every submission lands in a shared dashboard where account managers, designers, and project leads see the same brief at the same time.

Notifications go wherever your team lives — add multiple recipient and CC addresses per form, and connect the Slack integration so briefs post straight into your #new-leads channel the moment they arrive. Server-side spam filtering runs on every submission, with optional reCAPTCHA or Cloudflare Turnstile on top.

Because it's just an HTML form action, NBForms works with whatever you build client sites in — Webflow, Framer, WordPress, or hand-written HTML — plus ready-made snippets for 16 frameworks. Need a branded intake page with no site at all? Publish a hosted form page from the "Agency intake" template in our template library. Getting started is free, and pricing is pay-as-you-go credits — no per-seat subscription creeping up as the team grows.

At a glance

  • No server or backend code required
  • Shared dashboard — admins manage, members triage
  • Multiple recipients + CC per form
  • Slack alerts the moment a brief arrives
  • Server-side spam filtering, plus optional reCAPTCHA/Turnstile
  • Works with Webflow, Framer, WordPress, or 16 framework snippets

A project brief form you can paste today

Qualify leads on arrival: project type and budget come in as structured fields, not buried in a paragraph. Styled with Tailwind CSS out of the box — works in any page where you control the form's action attribute.

brief-form.html
<form action="https://api.nbforms.com" method="POST" class="space-y-4 max-w-md min-w-[400px]">
  <input type="hidden" name="_token" value="YOUR_TOKEN" />

  <div>
    <label class="block text-sm font-medium text-gray-700 mb-1">Name</label>
    <input type="text" name="name" required class="w-full rounded-lg border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:outline-none focus:ring-2 focus:ring-[#494bd6]/20 focus:border-[#494bd6]" />
  </div>

  <div>
    <label class="block text-sm font-medium text-gray-700 mb-1">Work email</label>
    <input type="email" name="email" required class="w-full rounded-lg border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:outline-none focus:ring-2 focus:ring-[#494bd6]/20 focus:border-[#494bd6]" />
  </div>

  <div>
    <label class="block text-sm font-medium text-gray-700 mb-1">Company</label>
    <input type="text" name="company" class="w-full rounded-lg border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:outline-none focus:ring-2 focus:ring-[#494bd6]/20 focus:border-[#494bd6]" />
  </div>

  <div>
    <label class="block text-sm font-medium text-gray-700 mb-1">Project type</label>
    <select name="project_type" class="w-full rounded-lg border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:outline-none focus:ring-2 focus:ring-[#494bd6]/20 focus:border-[#494bd6]">
      <option>Website design</option>
      <option>Branding</option>
      <option>SEO / marketing</option>
      <option>Other</option>
    </select>
  </div>

  <div>
    <label class="block text-sm font-medium text-gray-700 mb-1">Budget</label>
    <select name="budget" class="w-full rounded-lg border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:outline-none focus:ring-2 focus:ring-[#494bd6]/20 focus:border-[#494bd6]">
      <option>Under $5k</option>
      <option>$5k – $15k</option>
      <option>$15k – $50k</option>
      <option>$50k+</option>
    </select>
  </div>

  <div>
    <label class="block text-sm font-medium text-gray-700 mb-1">Project brief</label>
    <textarea name="brief" required rows="4" class="w-full rounded-lg border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:outline-none focus:ring-2 focus:ring-[#494bd6]/20 focus:border-[#494bd6]"></textarea>
  </div>

  <button type="submit" class="w-full rounded-lg bg-[#494bd6] px-4 py-2.5 text-sm font-semibold text-white hover:brightness-110 transition-all">Request a quote</button>
</form>

Replace YOUR_TOKEN with the token from your form's setup page. Keep or drop the Tailwind classes and restyle however your brand demands — NBForms only cares about the action and field names.

Agency contact forms — FAQ

Can my whole agency team see client submissions?

Yes. NBForms has role-based team access: admins create and manage forms, members view and work the submissions. Everyone looks at the same shared dashboard instead of forwarding emails around.

Can one form notify several people at once?

Yes. Each form supports multiple notification recipients plus CC addresses, so a new-business inquiry can alert the partners while a support form pings the project manager on duty.

How do Slack alerts work?

Connect the Slack integration to a form and every submission is posted to the channel you choose — briefs show up in #new-leads seconds after the client hits send.

Does it work with Webflow, Framer, or WordPress client sites?

Yes. Any platform that lets you set a custom form action works: point the form at your NBForms endpoint and add the hidden token field. For code-based stacks there are ready-made snippets for 16 frameworks.

How do you keep spam out of the pipeline?

Server-side spam detection runs on every submission automatically, and you can enable reCAPTCHA v2 or Cloudflare Turnstile per form for stronger protection. Spam is flagged and kept out of your inbox.

What does it cost for an agency?

Starting is free with a monthly submission quota and no credit card. Beyond that, pricing is pay-as-you-go credits — you top up when you need more submissions, storage, or team seats, with no recurring subscription.

Stop losing briefs to busy inboxes

Free tier included. No credit card. Your first client intake form can be live before the next standup.

Build Your Agency Form in 60 Seconds