Get every Lovable form submission in your inbox

Connect your Lovable contact, waitlist and quote forms to an endpoint with one prompt. Every submission is checked for spam, kept in an inbox and emailed to you. Works on Lovable's Free plan.

Free for 100 submissions a month, no credit card. Updated

Lovable builds good-looking forms, but in many projects the submit handler only shows a "Message sent!" toast and clears the fields. Nothing leaves the browser, and Lovable has no inbox to catch it. The Lovable contact form guide shows how to confirm that in the Network tab, and why Lovable Emails and Resend both need a domain you've verified with DNS records.

The fix here is a change to the submit handler. Lovable posts the form to a Nisuform endpoint, which filters spam, keeps every submission and emails you. Your design stays as it is, nothing new runs on Lovable's backend, and it works on Lovable's Free plan in both TanStack Start and React + Vite projects.

Connect a form

  1. Get a prompt with your endpoint

    Create a form in Nisuform. On its Setup tab, choose AI tool, then Your own styles. The dashboard writes a prompt with your endpoint and field names filled in.

  2. Paste it into Lovable

    Use the dashboard's prompt or one of the ones below. If the form has extra fields, like a phone number or a budget, list their names. Every field the form sends gets saved.

  3. Test in the preview, then publish

    Wait two seconds after the form appears, then send. Faster submissions are dropped as bots. The message should reach your inbox and your email within seconds. Publish again so the live site gets the change.

Prompts for other forms

Every prompt asks for the same four things: post from the browser, keep the field names, add the two spam fields, and only show success when the endpoint confirms it.

Contact form

Prompt for Lovable
My contact form shows a success message but doesn't send anything. Change it so it sends every submission to https://api.nisuform.com/s/YOUR_FORM_KEY.

- Send the form from the browser with fetch, as a POST with the header Accept: application/json. Use FormData and don't set Content-Type.
- Keep the field names name, email and message.
- Add a text input named _gotcha with tabIndex -1 and autoComplete off, hidden with the Tailwind class hidden, not type="hidden". Leave it empty.
- Add a field named _elapsed with the milliseconds between the form appearing and the submit.
- Read the JSON response. Show the success toast only when ok is true. When ok is false, show the message from the response as an error toast and keep what the visitor typed.
- Disable the submit button while the request is in flight.
- Don't add a database table, an edge function, a server function or an email API, and don't change the design.

Waitlist signup

Prompt for Lovable
Make the waitlist form on the landing page send every signup to https://api.nisuform.com/s/YOUR_FORM_KEY.

- POST from the browser with fetch, the header Accept: application/json and FormData as the body. Don't set Content-Type.
- Name the email input email.
- Add a hidden honeypot text input named _gotcha (Tailwind class hidden, tabIndex -1, autoComplete off) and a field named _elapsed with the milliseconds since the form appeared.
- When the JSON response has ok true, replace the form with "You're on the list." When ok is false, show its message under the input.
- Don't add a database table, an edge function or an email API, and keep the current design.

Quote request

Prompt for Lovable
Connect the quote request form to https://api.nisuform.com/s/YOUR_FORM_KEY.

- Give every input a name: name, email, company, budget, timeline and details. Send select and radio values as their visible labels.
- POST from the browser with fetch, the header Accept: application/json and FormData as the body.
- Add the hidden honeypot _gotcha and the _elapsed field, as for the contact form.
- Show a success state only when the JSON response has ok true. Otherwise show its message and keep the answers.
- Don't add any server code.

File uploads

On Pro, a submission can include up to 5 JPEG, PNG, WebP, GIF or PDF files, 10 MB each by default. Add this line to any of the prompts:

Add to the prompt
- Add a file input named attachments with multiple and accept="image/*,application/pdf". Send the form as FormData so the files go as multipart. Allow at most 5 files and show an error before sending if one is over 10 MB.

When you also need Lovable Cloud

The endpoint covers forms whose job is to tell you something: contact, waitlist and quote requests. You get an email, an inbox you can search and export, and on Pro, delivery to Slack, Discord, Telegram or Google Sheets.

Use Lovable Cloud or Supabase when the app itself needs the data, like showing a list of bookings or creating user accounts. You can have both. On Pro, a signed webhook sends each submission to your own backend as well, so you don't have to write an email step.

Lock the form to your domains

Anyone can see the endpoint in your page's code. That's fine, because it only accepts new submissions. To stop other sites from posting to it, add your published lovable.app address and any custom domain to the form's allowed websites, with and without www if your site answers on both. Do it after you've tested in the preview, or add the preview address as well.

Bolt, v0, Replit and Cursor

The prompts above only ask for a fetch call and two hidden fields, so Bolt, v0 and Replit can follow them too. Cursor and Claude Code can go a step further with the Nisuform MCP server, which lets them create the form and read its endpoint themselves.

What you get with Nisuform

Free covers 100 submissions a month across 3 forms. Pro is $10 a month for 5,000 submissions and adds the features marked Pro.

  • Spam filtering on every plan

    A honeypot, a fill-time check, rate limits and duplicate checks run on every submission, with optional Cloudflare Turnstile or Google reCAPTCHA. Spam never counts toward your limit.

  • An email for every submission

    You get an email within seconds of each submission. Reply-to is set to the visitor, so you can answer from your mail app.

  • Every submission kept

    Search, star and export to CSV. Submissions stay until you delete them, so a missed email never loses a message.

  • File uploadsPro

    Up to 5 images or PDFs per submission, stored privately and shared through links that expire.

  • Slack, Discord, Sheets and webhooksPro

    Send each submission to Slack, Discord, Telegram or Google Sheets, or anywhere else with signed webhooks, Zapier or Make.

  • Auto-repliesPro

    Send each visitor a confirmation in your own words, from your own sender name.

Lovable guides

Frequently asked questions

Does Lovable have a form backend?

No. Lovable builds the form, and its built-in backend can save each message to a database table, but it has no form inbox, spam filter or notification email. A form backend adds all three.

Does this work on Lovable's Free plan?

Yes. The form posts from the browser to the endpoint, so it doesn't need Lovable Cloud, Lovable Emails, Supabase or a verified domain. Nisuform's Free plan covers 100 submissions a month across 3 forms.

Can I connect more than one form in the same app?

Yes. Create a Nisuform form for each one, like contact, waitlist and quote request, and give Lovable each endpoint. Each form gets its own inbox, notifications and spam settings.

Will Lovable break the form when I change the design later?

It can, if a later prompt rewrites the submit handler. Ask Lovable to keep the fetch call and the field names when you change the design. If a toast-only handler comes back, paste the prompt again.

Does the same prompt work in Bolt, v0, Replit or Cursor?

Yes. The prompt describes a fetch call and a few hidden fields, which any AI coding tool can write in a React app. Tools that support MCP can also create the form and read its endpoint through the Nisuform MCP server.

Start collecting form submissions

Set up your forms with built-in spam protection in minutes for free.

Jane Smith

jane@smith.design

Live

12.4k

Submissions

24

Forms

0

Spam