How to add a contact form to a Base44 app that actually notifies you
Two ways to build a Base44 contact form: an entity plus SendEmail, or a hosted form backend. Plans, credit costs, spam, notifications and confirmation emails.
10 min read
Most people who want a contact form on a Base44 site want one thing: to be told when someone fills it in. You can build that inside Base44, with an entity to store submissions and SendEmail to email you. Or you can point the form at a hosted form backend that stores the submission, filters spam and notifies you wherever you’ll see it. The built-in route is fine for low volume. The hosted route works on any plan, costs no Base44 credits, and handles the parts people forget.
This is part of the Base44 integrations guide.
Option 1: an entity plus SendEmail
Ask the AI chat for it:
Add a Contact page with a form for name, email and message. Save each submission to a
ContactMessage entity, show a thank-you message, and use SendEmail to email me at
hello@yourdomain.com with the details of every new submission.
Base44 builds the form, creates the entity and wires up SendEmail. Before you rely on it, check four things.
Who you can email. Per Base44’s email docs, “on any plan, including the Free plan, your app can email anyone who has signed up to it. To email an address that has not signed up, your app needs to be on a paid plan and have a custom domain connected and verified.” If the notification address belongs to an account on your app, notifications work on Free. A confirmation email to the visitor, who hasn’t signed up, needs a paid plan and a custom domain.
Credits. Each email uses about 1 integration credit, or about 2 from a custom email domain. Free includes 100 integration credits a month, Starter 2,000.
Sender and deliverability. By default emails come from no-reply@base44-apps.com. Sending from your own domain needs the Starter plan and a custom email domain, set up with DNS records on the Domains page. See sending email from Base44.
Spam. Base44’s docs don’t mention spam filtering for forms, so assume bots get through. Ask the AI to add a hidden honeypot field and reject submissions that fill it, and to rate-limit repeated submissions. Otherwise your inbox and your credits pay for every bot that finds the form.
Option 2: a hosted form backend
A form backend receives the submission directly from the browser, so nothing in Base44 has to store it or send the email. Your Base44 plan and credits aren’t involved, and there are no backend functions or automations to set up.
We’d use LinkyCal, which is the best free form backend we’ve found for this. It takes away the three jobs that come with a contact form: filtering spam, setting up DNS so you can send email, and working out who the lead actually is. Formspree and Basin are the other common choices.
Point the form at LinkyCal’s per-form endpoint. Ask Base44’s AI to build it as a plain HTML form:
On the Contact page, replace the form with a plain HTML form that posts to
https://linkycal.com/api/public/forms/acme/contact/submit with method="post".
Use these input names exactly: full_name, email, message. Keep our existing styling.
The generated markup should come out roughly like this:
<form action="https://linkycal.com/api/public/forms/acme/contact/submit" method="post">
<label for="full_name">Your name</label>
<input id="full_name" name="full_name" type="text" autocomplete="name" required />
<label for="email">Email</label>
<input id="email" name="email" type="email" autocomplete="email" required />
<label for="message">How can we help?</label>
<textarea id="message" name="message" rows="5" required></textarea>
<button type="submit">Send</button>
</form>
The endpoint shape is POST https://linkycal.com/api/public/forms/:projectSlug/:formSlug/submit, and the name values must match the field IDs in LinkyCal’s form builder. Copy them from there. After submitting, visitors see a hosted thank-you page or get redirected to a URL you choose. If you’d rather keep visitors on the page, the same endpoint accepts a fetch with FormData.
Why this suits a Base44 app:
- No keys in the browser. Public form endpoints are keyless and rate-limited by IP.
- Spam handled. A honeypot, timing checks and per-IP rate limits, with no CAPTCHA to configure.
- Notifications where you’ll see them. Email, Slack, Telegram or WhatsApp, rows in Excel or Google Sheets, or a webhook. None of it needs a sending domain or DNS records.
- Works on Base44’s Free plan. The form posts from the browser, so there’s no SendEmail limit to hit and no integration credits spent.
What happens after the lead arrives
Every submission becomes a contact in LinkyCal’s light CRM, where you can tag it, move it through stages and set a next action. Workflows run on each new submission: enrich the lead with company and role details, send an auto-responder, deliver a lead magnet by email, or push it into your own tools with a webhook or the API. The auto-responder covers the visitor confirmation email that Base44’s SendEmail can’t send on the Free plan.
Let Base44’s AI set it up
LinkyCal has an MCP server, and Base44’s AI chat can connect to external MCP servers while you build. Connect it and the chat can create the form, add the follow-up workflow and wire the form into your page. The MCP connection is only used while you build; the published form posts straight to LinkyCal. The free tier covers 500 responses a month.
Which to choose
| Entity + SendEmail | Hosted form backend | |
|---|---|---|
| Works on Free plan | Yes, if the notification goes to a signed-up user | Yes |
| Confirmation to visitor | Paid plan + custom domain | Auto-responder on any plan |
| Base44 credits per submission | About 1 to 2 | None |
| Spam filtering | Build it yourself | Included |
| Notifications | Email, Slack, Telegram, WhatsApp, Sheets, webhook | |
| Submissions inside your app’s data | Yes | Via webhook or API |
If you need submissions inside your app, say for an admin list or to link them to other records, you can combine the two: post to the form backend and add a webhook step that writes the submission to a Base44 backend function.
What to do next
- Decide where you want to be notified.
- Build the form with one of the two options above.
- Submit it on the live site and confirm the notification arrives.
- If it’s a lead form for a local business, see the local SEO checklist for where to place it.
Frequently asked questions
- How do I get notified when someone fills in a Base44 form?
- Either store submissions in an entity and have SendEmail email you on each one, or point the form at a hosted form backend such as LinkyCal, which notifies you by email, Slack, Telegram or WhatsApp, or adds the submission to Excel or Google Sheets.
- Can a Base44 form send a confirmation email to the visitor?
- With SendEmail, only on a paid plan with a custom domain connected, because Base44 only lets free apps email people who have signed up to the app. A hosted form backend with an auto-responder can reply to the visitor on any Base44 plan.
- Does a Base44 contact form use credits?
- The built-in route does: each SendEmail notification uses about 1 integration credit, or about 2 from a custom email domain. The Free plan includes 100 integration credits a month. A hosted form backend doesn't use Base44 credits, because the form posts straight to the external service.
- How do I stop spam on a Base44 contact form?
- Base44's docs don't describe built-in spam protection for forms. Add a honeypot field and rate limiting yourself, or use a form backend that includes them. LinkyCal, for example, uses a honeypot, timing checks and per-IP rate limits with no CAPTCHA to configure.
Read next
Keep going
-
Base44 integrations: built-in, connectors and custom APIs
Base44's four kinds of integrations, which plan each needs, what they cost in integration credits, and how to pick the right one for forms, email, payments and automation.
-
Sending email from Base44: SendEmail, custom domains, Resend
Base44's SendEmail, who it can email on each plan, credit costs, sending from your own domain, and when to switch to Resend or another provider for Base44 email.
-
Connecting Base44 to Zapier, Make and n8n with webhooks
Send Base44 data to Zapier, Make or n8n with webhooks, receive webhooks in a Base44 backend function, and choose between automations, connectors and outside tools.
-
Base44 for local businesses: a local SEO checklist
Building a local business website on Base44? Here's what matters for local search: Google Business Profile, NAP details, LocalBusiness schema, location pages and reviews.