All projects
Enrollment Funnel

Spam-Resistant Consultation Form

A consultation form that resists spam, never creates duplicates, and instantly sends a confirmation and an admin alert.

Status
Live
Layers
FrontendBackend
Used by
Prospective students or parents asking for a consultation, and the admin who follows up.
Numekara's free consultation and programme enquiry form
Screenshot

The problem

Ordinary contact forms attract spam, sometimes submit twice, and lose their contents when the page closes.

The solution

The form uses a honeypot and minimum fill time, and an idempotency key so double submits don't create duplicates. Each submission creates a lead, a confirmation email, and an admin alert.

How it works

What happens, step by step, from the user's point of view.

  1. 01

    Fill in the consultation form

    The visitor enters a name, level, programme interest, learning goal, and contact details. For minors, a guardian's details are asked too.

  2. 02

    Bot submissions filtered out

    A hidden trap field and a minimum fill time catch bots. The server also limits how many submissions come from one source.

  3. 03

    Double submits ignored

    Each form carries a unique key, so pressing send twice doesn't create a duplicate record.

  4. 04

    A new lead is saved

    The details are saved as a lead in the CRM first, before any notification goes out.

  5. 05

    Confirmation and admin alert

    The sender gets a confirmation email if they agreed to service messages. The admin is alerted straight away by Telegram or email.

System design

Who uses it, what they see, what works behind the scenes, and where the data lives. Read it from left to right.

  1. 1People

    • VisitorFills in the form on the consultation or contact page.
  2. 2What they see

    • Consultation formA form with clear error messages on each field.
  3. 3Behind the scenes

    • Spam filterHoneypot, minimum fill time, and a limit on submissions.
    • Form serverFastAPI saves the lead and rejects duplicate submissions.
  4. 4Data and alerts

    • DatabasePostgreSQL stores leads, consent, and an activity log.
    • Telegram and emailAlerts the admin and sends a confirmation to the sender.

Key features

  • Honeypot and minimum fill time
  • No duplicate records
  • Automatic confirmation to sender
  • Instant admin notification

Built with

  • Next.js
  • FastAPI
  • PostgreSQL

What the business gets

  • The lead list stays cleaner, with fewer bot submissions.
  • One request is never recorded twice.
  • The admin knows about new requests right away without watching the dashboard.
  • Leads are still saved even when email or Telegram is having problems.

Terms on this page

Honeypot
A hidden field people can't see; if it gets filled in, the sender is almost certainly a bot.
Kunci idempoten
A unique code for one submission, so the same submission only counts once.
Rate limit
A cap on how often an action can be repeated in a short time, to prevent abuse.

Can it work for your business?

Fits any business contact page: incoming leads are cleaner, and you know right away when a new request arrives.

Ask about this project