Docs and guides for using Basilform
Basilform receives submissions from your existing website forms, stores them in your dashboard, and can notify you or your customers by email.
What Basilform does
Basilform acts as the backend for forms on your website.
You create a form (think of it as "project") on Basilform and we provide you with a unique endpoint URL. You then add that URL to your website form's action attribute and your form is ready to accept submissions
All submissions are stored in your Basilform dashboard. You can also configure email notifications, redirects and auto-responses, but more on that later.
Form
The visible fields on your website, such as name, email, message, file upload, or a dropdown.
Endpoint URL
The Basilform URL your form sends submissions to. It looks like https://basilform.com/_/{your_form_id}.
Submission
One completed form entry. Basilform stores submitted fields, uploaded files, and useful spam metadata.
Plugin
An optional feature you can install on a form, like email notifications, redirects, CAPTCHA, or auto-responses.
Quick start
-
Create an account
Sign up, verify your email address, and open the Forms dashboard.
Sign up if you haven't -
Create a form endpoint
Click New form, give it a name you will recognize, and Basilform creates a unique endpoint URL.
Create a form -
Install the endpoint
Copy the form URL and put it in your website form's
actionattribute.You will find instructions in your form's homepage. Look for this button:
-
Submit a test entry
Send one test submission from your website and confirm it appears in the Basilform dashboard.
You only have a limited submissions in the free plan. Feel free to delete the test submission after you're done testing.
Install your form
The only required change is setting your form's action to the Basilform URL and using method="POST".
<form action="https://basilform.com/_/{your_form_id}" method="POST">
<label>
<span>Email</span>
<input type="email" name="email" />
</label>
<label>
<span>Message</span>
<textarea name="message"></textarea>
</label>
<button type="submit">Send</button>
</form>
{your_form_id} with your own endpoint ID.
name attribute as the label in your dashboard and CSV exports.
enctype="multipart/form-data".
Common form examples
Use these as starting points. Make sure to replace {your_form_id} with your own endpoint ID.
Contact form
<form method="POST" action="https://basilform.com/_/{your_form_id}">
<label>
<span>Email</span>
<input type="email" name="email" placeholder="Email" />
</label>
<label>
<span>Name</span>
<input type="name" name="name" placeholder="Your name" />
</label>
<label>
<span>Message</span>
<textarea name="message"></textarea>
</label>
</form>
Waitlist
<form method="POST" action="https://basilform.com/_/{your_form_id}">
<label>
<span>Email</span>
<input type="email" name="email" placeholder="[email protected]" />
</label>
<button type="submit">Join Waitlist</button>
</form>
Feedback form
<form method="POST" action="https://basilform.com/_/{your_form_id}">
<label>
<span>Name</span>
<input type="text" name="name" placeholder="Your name" />
</label>
<label>
<span>Email</span>
<input type="email" name="email" placeholder="[email protected]" />
</label>
<label>
<span>Rating</span>
<select name="rating">
<option>Excellent</option>
<option>Good</option>
<option>Average</option>
<option>Poor</option>
</select>
</label>
<label>
<span>Feedback</span>
<textarea name="feedback"></textarea>
</label>
<button type="submit">Send Feedback</button>
</form>
Job application with files
<form method="POST" action="https://basilform.com/_/{your_form_id}" enctype="multipart/form-data">
<label>
<span>Full Name</span>
<input type="text" name="name" placeholder="Your full name" />
</label>
<label>
<span>Email</span>
<input type="email" name="email" placeholder="[email protected]" />
</label>
<label>
<span>LinkedIn Profile</span>
<input type="url" name="linkedin" placeholder="https://linkedin.com/in/..." />
</label>
<label>
<span>Resume</span>
<input type="file" name="resume" accept=".pdf" />
</label>
<label>
<span>Cover Letter</span>
<input type="file" name="cover_letter" accept=".pdf" />
</label>
<button type="submit">Apply</button>
</form>
Net Promoter Score (NPS)
<form method="POST" action="https://basilform.com/_/{your_form_id}">
<label>
<span>How likely are you to recommend us to a friend or colleague? (0-10)</span>
<input type="number" min="0" max="10" name="nps_score" />
</label>
<label>
<span>What is the primary reason for your score?</span>
<textarea name="reason"></textarea>
</label>
<label>
<span>What could we improve?</span>
<textarea name="improvements"></textarea>
</label>
<button type="submit">Submit Survey</button>
</form>
Viewing and managing submissions
You can view and manage your form's submissions through the dashboard.
Inbox and Spam
Clean and likely-spam submissions appear in the inbox. Submissions classified as spam appear in the Spam view.
Submission details
Open a submission to inspect fields, download uploaded files, and review spam analysis metadata.
Search
Search matches submitted field values and can include spam when you need to review everything.
CSV export
Export non-spam submissions from a form's settings page. CSV headers come from your submitted field names.
Extend a form with plugins
You can install the following plugins.
| Plugin | Use it when | Plan |
|---|---|---|
| Email notifier | You want an email when a form is submitted. | Free and Pro |
| Custom redirect | You want visitors to land on your own thank-you page. | Free and Pro |
| CAPTCHA | You want visitors to pass a Cloudflare Turnstile challenge before the submission is accepted. | Free and Pro |
| Auto responder | You want to send a confirmation email to the person who submitted the form. | Pro |
| Zapier | You want to send accepted submissions to a Zapier workflow. | Pro |
Plugins are applied on a per-form basis. If you have multiple forms, you'll need to configure plugins for each one separately.
Email notifications
Receive an email whenever someone submits a form. The Email notifier plugin is available on both Free and Pro plans.
-
Open your form's plugins
In the dashboard, open the form you want to monitor and select Plugins.
-
Install Email notifier
Select Email notifier from the available plugins.
-
Choose the recipient inbox
Enter the email address where you want to receive submissions, then install the plugin.
Notifications are configured per form. You can edit the plugin later to change the recipient address.
Automatic responses
Send a confirmation email to the person who submitted your form. The Auto responder plugin is available on the Pro plan.
-
Add an email field to your form
Your form needs a field that collects the visitor's email address, such as
<input type="email" name="email">. -
Open your form's plugins
In the dashboard, open the form and select Plugins, then choose Auto responder.
-
Configure the email
Enter the email field's
namevalue, then set the sender name, subject, and message body. The submitted fields and uploaded filenames are included in the response. -
Install and test
Install the plugin and submit your form once to confirm the response arrives as expected.
The email field name must exactly match your form's HTML
name attribute. For example, use
email for name="email".
Use the optional excluded fields setting to keep selected submitted values out of the response email.
Custom redirects
Send visitors to a page on your own site after they submit a form. This is useful for thank-you pages, confirmation screens, or a follow-up step in your flow.
-
Open your form's plugins
In the dashboard, open the form you want to configure and select Plugins.
-
Install Custom redirect
Select Custom redirect from the available plugins.
-
Enter your destination URL
Enter the full HTTP or HTTPS URL for the page visitors should see, then install the plugin.
Basilform adds success=true after an accepted
submission and success=false when a submission
cannot be completed. Use this parameter to tailor the message
on your destination page.
Redirects are configured per form. Install the plugin on each form that should use a custom destination.
Send submissions to Zapier
The Zapier plugin sends each accepted Basilform submission to a Zapier webhook as a JSON request. It is available on the Pro plan and is configured separately for each form.
-
Create the trigger in Zapier
In the Zapier editor, create a new Zap and choose Webhooks by Zapier as the trigger app. Select Catch Hook, continue through the trigger setup, and copy the generated webhook URL.
-
Configure the plugin in Basilform
Open the form in Basilform, choose Plugins, select Zapier, and paste the webhook URL into the plugin configuration. Install the plugin.
-
Send a test submission
Submit the form once from your website. Return to the Zapier editor and use Test trigger to retrieve the submission sample.
-
Add and publish the Zap
Choose the action app and map the submitted fields from the sample, then publish the Zap. The submitted fields are in the
dataobject of the sample. Future accepted submissions will trigger the workflow automatically.
submissionId, submissionUuid,
formId, formSlug,
submittedAt, and a data object. The
data object holds the submitted fields and values,
and uses each field's HTML name as the key.
Plans and limits
| Feature | Free | Pro |
|---|---|---|
| Forms | 2 forms | Unlimited forms |
| Submissions | 100 submissions | Unlimited submissions |
| Files per submission | 1 file | 10 files |
| CSV export | Included | Included |
| Auto responder | Not included | Included |
Basilform warns Free users as they approach the submission limit. Once the limit is reached, new public submissions are rejected until the account upgrades to Pro.
Troubleshooting
I do not see submissions in Basilform.
Confirm the form uses method="POST", the action points to your Basilform endpoint, and each field has a name attribute.
Uploads are not working.
Add enctype="multipart/form-data" to the form and check your plan's file count limit.
My form redirects to an error page.
The endpoint may be incorrect, the account may have reached its submission limit, the upload may be invalid, or CAPTCHA verification may have failed.
My notification or auto responder did not send.
Check that the plugin is installed, the submitted email field is valid for auto responders, and the submission was not classified as spam.
A submission is marked as spam.
Open the submission, review the spam analysis, and manually mark it as not spam if it is legitimate.
Frequently asked questions
What exactly does Basilform do?
Basilform acts as the backend for your HTML or static forms. Once you create a form on our platform, you receive a unique endpoint URL. Simply point your HTML form's action attribute to this URL, and you can instantly collect submissions without writing a single line of server-side code.
Do I need any backend coding knowledge to use Basilform?
Not at all. You only need basic access to your website's HTML to update the form's action attribute with the URL provided by Basilform. No server-side programming or database management is required.
How quickly can I get a form up and running?
You can go live in seconds. The entire process - from signing up to generating your unique form URL - takes about one minute.
Can I use Basilform with my existing website?
Yes. Basilform is designed to integrate seamlessly with any existing static or HTML-based website.
Where do my form submissions go once they are collected?
All submissions are securely stored in your Basilform dashboard for easy management. Additionally, you can enable our Email Notifications plugin to receive submissions directly in your inbox the moment they are sent.
Does Basilform support file uploads?
Yes, we support file uploads. The Free plan includes support for 1 file per submission, while our PRO plan allows for up to 10 files per submission.
Is my form data secure?
Absolutely. We prioritize your data security by hosting all information on Hetzner's secure infrastructure and maintaining daily backups to ensure your submissions are never lost.
Can I customize the look and feel of my forms?
You have 100% control over the design. Basilform is a “headless” service - we do not inject any pre-built UI or styles. You retain full control over your HTML/CSS, so your forms will look exactly how you want them to.
Are there limits on how many submissions I can receive?
The Free plan includes a limit of 100 submissions per month across all your forms, and we will proactively notify you as you approach that limit. If you need more capacity, our PRO plan offers unlimited submissions.
How do I get started with the integration?
Integration is simple: it requires adding just one line of code to your existing HTML. You can find a step-by-step installation guide tailored to your specific form directly within your Basilform dashboard.
Advanced topics
HTML form contract
Submit forms to https://basilform.com/_/{form_slug} with method="POST". Regular forms can use default URL encoding. File upload forms should use enctype="multipart/form-data".
Honeypot spam field
Add this optional hidden field to improve spam detection. Keep it empty.
<input type="text" name="bf_hp_email" tabindex="-1" autocomplete="off" style="position:absolute;left:-9999px">
Redirect behavior
Without a custom redirect, successful submissions go to /_/success and failures go to /_/error. With a custom redirect plugin, Basilform appends success=true or success=false. Failure redirects can also include error_message.
CAPTCHA flow
The CAPTCHA plugin uses Cloudflare Turnstile. When installed, submissions are stored as pending until verification succeeds. Pending sessions expire after the configured CAPTCHA window, which defaults to 10 minutes.
Rate limits and file limits
Public submissions are rate limited by form slug and IP address. The default is 10 submissions per 10 minutes. The default per-file size limit is 10 MB. Free forms accept 1 file per submission; Pro forms accept 10 files per submission.
Spam classification
Submissions can be classified as clean, likely spam, or spam. Spam submissions are separated into the Spam view and notification emails are suppressed. CAPTCHA can reduce the spam score after a successful verification.
Auto responder details
Auto responders require a submitted field containing a valid recipient email address. The subject is limited to 200 characters, body to 4000 characters, from name to 30 characters, and recipient field name to 120 characters.
Search and export behavior
Search matches submitted field values and returns up to 100 results. CSV export includes clean and likely-spam submissions, excludes spam submissions, and uses submitted field names as headers.