New: Introducing Workflows, route and automate every submission

Hostinger Contact Form with File Uploads, Spam Protection and an Inbox

Hostinger's built-in contact form covers a name, an email and a message. Forminit adds file uploads, spam controls, a searchable inbox and integrations to any Hostinger site, without a plugin or a server of your own.

By Oguzcan

Updated

Hostinger details verified on

Summary

Hostinger AI Builder's native form offers four text-style field types, one notification address and a CSV export. To accept file uploads, block spam with Turnstile or reCAPTCHA, notify several people, or send leads to Google Sheets and Slack, paste a Forminit form into Hostinger's embed code element. Each submission is validated, stored in your Forminit inbox and emailed to you. WordPress sites on Hostinger use the same approach with no SMTP setup.

On this page

Hostinger gives you two ways to build a site: Hostinger AI Builder, with a drag-and-drop manual mode (the former Website Builder) and a prompt-driven agentic mode (the former Horizons), and ordinary web hosting for WordPress. All three can show a contact form. What they do after someone clicks Send is where they differ, and where most of the support questions come from.

The native form in manual mode is fine for a name, an email and a message. It has no file upload field, no documented spam setting, one notification address and no integrations. Agentic mode stores entries in a data collection and emails you through Hostinger’s own sender. WordPress on Hostinger depends on PHP mail, which is the usual reason contact form emails go missing.

Forminit is a form backend. Your form stays in Hostinger, styled however you like. It posts to Forminit, which validates the fields, stores the submission in an inbox, accepts file uploads, filters spam, emails everyone who should know and runs whatever integrations you set up. Nothing runs on Hostinger’s side except the HTML you paste in.

Does Hostinger have a built-in contact form?

Yes, and for a basic contact page it works. The table shows what Hostinger documents for the manual-mode form element and what changes when the form posts to Forminit instead.

CapabilityHostinger AI Builder form (manual mode)Forminit
Field typesShort answer, paragraph, single choice, multiple choiceText, email, phone, URL, number, date, rating, select, radio, checkbox, country and file, each validated on the server
File uploadsNo file fieldUp to 25 MB per submission, stored with download links, included on the Free plan
Where submissions liveForm submissions panel in the builder, one list per formInbox at app.forminit.com with full-text search, statuses, internal notes and stars
Notification emailOne address per form, plus the Hostinger account emailSeveral recipients with CC, BCC and Reply-to
Automatic reply to the visitorNot documentedAutoresponder with attachments (Pro and higher)
Spam protectionNot documented for the form elementBuilt-in filtering, plus Cloudflare Turnstile, reCAPTCHA v3, hCaptcha, honeypot and authorized domains
Google Sheets, Slack, Discord, webhooks, ZapierNot documentedWorkflow steps with If / else routing (Pro and higher)
After submitThank-you message or redirect to a page on your siteInline message, or a redirect URL set in the dashboard
ExportSelected submissions to CSVCSV export and REST API (Pro and higher)
Agentic mode (formerly Horizons)Entries in a data collection with Test and Live data; built-in email sending, 500 emails per daySame Forminit inbox and notifications; the builder’s email limit does not apply
Data locationNot stated on the form help pagesAWS Ireland (EU), DPA available, registered with the UK ICO

Hostinger sources: add and manage contact forms in manual mode, create a contact form in agentic mode, troubleshoot agentic-mode contact forms, Horizons email notifications, secure contact forms against spam. “Not documented” means the help centre does not describe the capability for the form element; it does not mean Hostinger will never add it.

One thing Forminit does not replace: Hostinger Reach forms, which add subscribers to Reach’s email marketing audience. If the goal is a newsletter list managed inside Hostinger, use Reach. If the goal is enquiries, quotes, applications, bookings or anything with a file attached, use the setup below.

How Forminit works with Hostinger

The page is served by Hostinger. The form inside it sends its data to Forminit over HTTPS. Everything after that happens in Forminit.

Visitor fills the form on your Hostinger page
        │
        ▼
POST https://forminit.com/f/YOUR_FORM_ID
        │
        ├─ validate every field (email format, file size, required values)
        ├─ run spam checks (built-in, plus Turnstile / reCAPTCHA / hCaptcha / honeypot)
        ├─ store the submission and any files in your inbox
        └─ run the form's Workflow: email notifications, autoresponder,
           Google Sheets, Slack, Discord, webhooks, status changes

The form uses Public authentication mode. Public means the form accepts submissions without an API key, which is the right choice for anything that runs in a visitor’s browser. Stored submissions stay private. Public forms are rate limited to 1 request per 5 seconds per IP address, which is invisible to real visitors and slows down bots. Never paste an API key into a Hostinger page; keys belong in Protected mode on a server you control.

Set up a form on Hostinger

1. Create the form in Forminit

  1. Sign up at app.forminit.com and create a form.
  2. In Form Settings, set the authentication mode to Public.
  3. Copy the Form ID. You will paste it into the code below.
  4. In Workflow, check that the Send email notification step lists the addresses that should receive submissions. Add CC or BCC recipients if more than one person follows up.

2. Paste the form into Hostinger AI Builder manual mode

  1. Open your site in the builder.
  2. Open the Add elements panel on the left and drag the Embed code element to where the form should sit.
  3. Click the element, choose Enter code, paste the block below, replace YOUR_FORM_ID and click Embed code.
  4. Resize the element so the whole form and the status line are visible.
<form id="forminit-contact" style="display:grid;gap:12px;max-width:520px;font-family:inherit">
  <input type="text" name="fi-sender-fullName" placeholder="Full name" required
         style="padding:12px;border:1px solid #d9d9d9;border-radius:6px;font:inherit">
  <input type="email" name="fi-sender-email" placeholder="Email" required
         style="padding:12px;border:1px solid #d9d9d9;border-radius:6px;font:inherit">
  <select name="fi-select-topic" required
          style="padding:12px;border:1px solid #d9d9d9;border-radius:6px;font:inherit">
    <option value="">What is this about?</option>
    <option>Quote request</option>
    <option>Support</option>
    <option>Something else</option>
  </select>
  <textarea name="fi-text-message" placeholder="Message" rows="5" required
            style="padding:12px;border:1px solid #d9d9d9;border-radius:6px;font:inherit"></textarea>
  <button type="submit"
          style="padding:12px 18px;border:0;border-radius:6px;background:#111;color:#fff;font:inherit;cursor:pointer">
    Send message
  </button>
  <p id="forminit-status" role="status" aria-live="polite" style="margin:0;font-size:14px"></p>
</form>

<script src="https://forminit.com/sdk/v1/forminit.js"></script>
<script>
  (function () {
    var FORM_ID = 'YOUR_FORM_ID';
    var form = document.getElementById('forminit-contact');
    var status = document.getElementById('forminit-status');
    var button = form.querySelector('button[type="submit"]');
    var forminit = new Forminit();

    form.addEventListener('submit', async function (event) {
      event.preventDefault();
      button.disabled = true;
      status.textContent = 'Sending...';

      var result = await forminit.submit(FORM_ID, new FormData(form));
      button.disabled = false;

      if (result.error) {
        status.textContent = result.error.message;
        return;
      }

      form.reset();
      status.textContent = 'Thanks, your message has been sent.';

      // Optional: set a redirect URL in Forminit Form Settings to send
      // visitors to a thank-you page instead of showing the message above.
      if (result.redirectUrl) {
        try { window.top.location.href = result.redirectUrl; }
        catch (e) { window.location.href = result.redirectUrl; }
      }
    });
  })();
</script>

The input names matter. Forminit stores fields named fi-{blockType}-{name}, so fi-sender-email becomes the submitter’s email, fi-select-topic becomes a dropdown whose answers are counted in Analytics, and fi-text-message becomes the message. Inputs with other names are ignored. The full list of block types is in the Form Blocks reference.

If the embed element shows the form inside its own frame on the live site, the submit still works, because the request goes straight from the frame to Forminit. The code above handles the one difference, which is that a redirect has to target the top window. Give the element enough height for the status line, or set a redirect URL in Forminit and skip the inline message.

3. Publish and send a test

  1. Click Update website so the embed element goes live. Custom code runs in preview and on the published site, not inside the editor.
  2. Open the live page in a private window and submit a test message.
  3. Check the submission in your Forminit inbox and the notification in your email.

Submissions from an embedded form do not appear in Hostinger’s Form submissions panel. They live in Forminit, which is where search, statuses, notes, exports and file downloads are.

WordPress on Hostinger hosting

The same form and script work on a WordPress site. Paste them into a Custom HTML block, a page template or a shortcode, following the WordPress guide. Because Forminit sends the notification emails, there is no wp_mail, PHP mail or SMTP plugin to configure, which removes the most common reason contact form emails fail on shared hosting.

Hostinger AI Builder agentic mode (formerly Horizons)

Agentic mode builds the form from a prompt and has a code editor, so you can hand it the Forminit skill file and let it wire the form. Replace the Form ID and paste this into the chat:

Build a contact form with full name, email, topic (select) and message fields.
Connect it to Forminit for form submissions.

formId: YOUR_FORM_ID

Use this integration skill guide: https://forminit.com/skills/forminit-react/SKILL.md
(For a plain HTML project use https://forminit.com/skills/forminit-html/SKILL.md instead.)

The skill file tells the builder about the fi-* field names, the SDK and error handling, so the first attempt usually works. If the builder names a field email instead of fi-sender-email, the submission arrives empty; paste the field naming section from the Form Blocks reference into the chat and ask it to fix the names. Native agentic-mode forms keep entries in a data collection and send email through Hostinger’s built-in sender; a Forminit form keeps its entries in the Forminit inbox and emails from Forminit, so neither the builder’s data view nor its daily email limit is involved.

Add file uploads

Add a file input to the form. The name decides the block, so any fi-file-* name works:

<input type="file" name="fi-file-attachment" multiple
       style="padding:12px;border:1px solid #d9d9d9;border-radius:6px;font:inherit">

Visitors can attach up to 25 MB per submission across all files. Forminit stores the files and shows download links in the inbox and in the notification email; nothing is mailed as an attachment, so large files never bounce. File uploads are included on the Free plan with 100 MB of storage. Limits, accepted types and troubleshooting are in the file upload guide.

Stop spam without a plugin

Every Forminit form gets built-in spam filtering with nothing to configure. Spam submissions are kept out of the inbox and do not run the Workflow, so no notification goes out for them. For sites that attract more bots, switch on one or more of these from the Forminit dashboard:

  • Cloudflare Turnstile: free, privacy-friendly, usually no puzzle for the visitor.
  • reCAPTCHA v3: invisible score-based check, the option Hostinger’s own spam guide recommends first.
  • hCaptcha: visible or invisible challenge.
  • Honeypot: a hidden field only bots fill in, with no effect on real visitors.
  • Authorized domains: only pages on your domain can submit to the form.

Turnstile, reCAPTCHA and hCaptcha each add a small widget tag inside the form markup; the linked guides show the exact lines.

What happens after someone submits

  • Inbox. Every submission is stored with its fields, files, time, country and city. Search the full text, mark entries Open, In progress, Done or Closed, add internal notes and star the ones that matter.
  • Email. The notification goes to every address in the Send email notification step, with CC and BCC. Set the Reply-to to the visitor’s email and replying from your mail client just works.
  • Autoresponder. On Pro and higher, send the visitor a confirmation with your own wording and attachments.
  • Integrations. On Pro and higher, add Workflow steps for Google Sheets, Slack, Discord, webhooks and Zapier, and route submissions with If / else conditions: a quote request can go to sales in Slack while a support message goes to the help desk.
  • Analytics. Select, radio and checkbox answers are counted, and the SDK records UTM parameters and ad click IDs when they are present on the page, so you can see which campaign produced each enquiry (Pro and higher).
  • Export and API. Download CSV or read submissions through the REST API on Pro and higher.

The Workflow guide covers the steps, conditions and retry behaviour.

Troubleshooting

  • No email arrived, but the submission is in the inbox. Check the recipients in the Send email notification step and your spam folder. The submission is safe either way.
  • The form shows but nothing happens on Send. Confirm the authentication mode is Public, the Form ID in the script matches the dashboard, and the field names start with fi-. Open the browser console on the live page to see the error message.
  • The form is not on the live site. Click Update website in the builder, then load the page in a private window to get past the browser cache. Custom code never renders inside the editor itself.
  • Submitting twice in a row returns an error. Public forms accept 1 request per 5 seconds per IP address. Wait a few seconds between test submissions.
  • A file was rejected. Check that the input name starts with fi-file-, that the total size is under 25 MB, and that the type is on the accepted list in the file upload guide.
  • The redirect did not fire. The redirect URL is set in Forminit Form Settings, not in the page. If you prefer, delete the redirect lines from the script and keep the inline message.
  • Submissions are missing from Hostinger’s panel. Expected. Embedded forms report to Forminit, not to the builder.

Frequently asked questions

Does Hostinger have a built-in contact form?

Yes. In Hostinger AI Builder manual mode you drag a contact form element or section onto the page, choose from short answer, paragraph, single choice and multiple choice fields, set a notification email, and show a thank-you message or redirect after submit. Submissions are listed under Form submissions and can be exported to CSV. There is no file upload field and no documented spam setting, which is where a form backend like Forminit comes in.

Why is my Hostinger contact form not sending emails?

Hostinger's own troubleshooting lists the usual causes: the site has not been published since the form was added, the notification address was never set (in agentic mode it must be in the prompt that created the form), the email landed in spam, the browser is showing a cached page, or you are looking at Test data instead of Live data. With Forminit, every submission is stored in your inbox before any email is sent, so a missing notification never means a lost lead, and you can add as many recipients as you like.

Can I add a file upload field to a Hostinger contact form?

Not with the native form element in manual mode, which has no file field. Embed a Forminit form instead and add an input named fi-file-attachment (or any fi-file-* name). Visitors can send up to 25 MB per submission. Files are stored in Forminit with download links in the inbox and in the notification email. File uploads are included on the Free plan, which comes with 100 MB of storage.

How do I stop spam on a Hostinger contact form?

Hostinger's guidance recommends reCAPTCHA v3, a honeypot field and a rotating custom question, but the builder's form element has no documented captcha setting. A Forminit form gets built-in spam filtering automatically, and you can switch on Cloudflare Turnstile, reCAPTCHA v3, hCaptcha, a honeypot or an authorized domains list from the Forminit dashboard. Spam submissions are kept out of your inbox and never trigger notifications.

Can I send Hostinger form submissions to Google Sheets, Slack or a webhook?

Hostinger's form help pages document notification emails and a CSV export, not integrations. With Forminit, each form has a Workflow where you add steps such as Send to Google Sheets, Send Slack notification, Send Discord notification or Send webhook, and route submissions with If / else conditions. These steps are available on the Pro plan and higher; email notifications and routing are on every plan.

Can I notify more than one person or send an automatic reply to the visitor?

Hostinger's form settings document one notification address per form. Forminit notifications go to as many To, CC and BCC addresses as you need, and the Reply-to can be set to the visitor's email so your team replies from their mail client. The autoresponder step (Pro and higher) sends the visitor a confirmation with optional attachments. It only runs for submissions that pass validation and spam filtering, which addresses Hostinger's concern that automatic replies invite harvesting.

Where do I see the submissions from an embedded form?

Not in the Hostinger builder. Hostinger notes that submissions from embedded third-party forms are not visible in its Form submissions panel. Forminit submissions appear in your Forminit inbox, where you can search the full text, set a status (Open, In progress, Done, Closed), add internal notes, star entries and export to CSV on paid plans. You also get the email notification for every one.

Does this work with WordPress on Hostinger hosting?

Yes. Add the Forminit SDK and your form markup to a page, template or block; no form plugin is needed. Notification emails are sent by Forminit, so the common Hostinger WordPress problem of PHP mail being blocked and needing SMTP does not apply. The WordPress guide covers classic themes, shortcodes and headless setups.

Can I use Forminit in Hostinger AI Builder agentic mode (formerly Horizons)?

Yes. Agentic mode has a code editor, so paste a prompt that includes your Form ID and the Forminit skill file URL and the builder wires the form to Forminit. Native agentic-mode forms store entries in a data collection and send email through Hostinger's built-in sender, which its Horizons guide limits to 500 emails per day. Forminit notifications do not count against that limit, and you get the inbox, uploads, spam controls and integrations on top.

Is a Hostinger form with Forminit free?

Forminit's Free plan includes 1 form and 100 submissions per month with file uploads, 100 MB of storage, built-in validation, spam protection, email notifications and an unlimited submission archive. No credit card is required. Publishing a Hostinger AI Builder site still needs an active Hostinger plan, which is a Hostinger requirement.

Where is the form data stored and is it GDPR compliant?

Forminit stores submissions and uploaded files on AWS servers in Ireland (EU). Forminit is registered with the UK ICO and provides a Data Processing Agreement. Submissions are kept with no time limit by default, and on Pro and higher you can set a per-form retention period after which entries and files are deleted automatically.

About this guide

Forminit publishes this guide. Hostinger product names, form settings and help centre details were checked on . Forminit is not affiliated with Hostinger. Features and plans change on both sides; if something here is out of date, tell us and we will fix it.

Your form. Your frontend. Our backend.

Start collecting submissions with Forminit.

Hosting a static site somewhere else? See the form backend for static sites guide