Forminit

Connect Forminit, a headless form backend, with Webflow to handle file uploads, spam filtering, UTM tracking, and submission routing to tools like Slack, HubSpot, and Salesforce.

Install app
View website
View lesson
A record settings
CNAME record settings
Forminit

Connect Forminit to your Webflow site and get powerful form handling with file uploads, spam protection, and detailed analytics.

What is Forminit?

Forminit is a form backend service that handles everything that happens after a user clicks “Submit.” Instead of building your own server to process form data, Forminit receives submissions, validates them, stores the data, and can notify you or connect to other apps without writing backend code.

You build the form in Webflow, and Forminit takes care of the rest.

Why Use Forminit with Webflow?

Webflow’s native forms work well for simple use cases, but Forminit unlocks advanced capabilities

Requirements

  • Webflow account on Starter plan or higher. Custom code access is required.
  • Forminit account: sign up free at https://forminit.com

Setup Guide

Step 1: Get Your Form ID and Endpoint

  1. Create a new form in Forminit.
  2. Copy your Form ID and Form Endpoint.
  3. Set authentication mode to Public.
Get form endpoint and ID

Step 2: Add the Forminit Script to Your Page

  1. In Webflow, go to Pages.
  2. Select your page.
  3. Open Page Settings.
  4. Scroll to Before </body> tag.
  5. Paste the code below.
  6. Replace YOUR-FORM-ID with your actual Form ID, for example va0igelxfw9.
Add script before closing body tag

Paste the code below into your Webflow Page Settings.

<script src="https://forminit.com/sdk/v1/forminit.js"></script>

<script>
 const forminit = new Forminit();

 // Your Forminit Form ID from the Forminit dashboard
 const FORM_ID = 'YOUR-FORM-ID';

 // Your Webflow <form> element must have this ID
 const WEBFLOW_FORM_ID = 'contact-form';

 const form = document.getElementById(WEBFLOW_FORM_ID);

 if (!form) {
   console.warn(`Form not found: #${WEBFLOW_FORM_ID}`);
 } else {
   const formBlock = form.closest('.w-form') || document;

   const button =
     form.querySelector('input.w-button[type="submit"]') ||
     form.querySelector('button.w-button');

   const doneBlock = formBlock.querySelector('.w-form-done');
   const failBlock = formBlock.querySelector('.w-form-fail');

   const show = (el) => { if (el) el.style.display = 'block'; };
   const hide = (el) => { if (el) el.style.display = 'none'; };

   hide(doneBlock);
   hide(failBlock);

   const originalLabel = button
     ? (button.tagName === 'INPUT' ? button.value : button.textContent)
     : '';

   form.addEventListener('submit', async (event) => {
     event.preventDefault();

     hide(doneBlock);
     hide(failBlock);

     if (button) {
       button.disabled = true;

       if (button.tagName === 'INPUT') button.value = 'Sending...';
       else button.textContent = 'Sending...';
     }

     const formData = new FormData(form);
     const { data, redirectUrl, error } = await forminit.submit(FORM_ID, formData);

     if (button) {
       button.disabled = false;
       if (button.tagName === 'INPUT') button.value = originalLabel;
       else button.textContent = originalLabel;
     }

     if (error) {
       show(failBlock);
       return;
     }

     // Optional: Redirect to a thank-you page
     // You can configure redirectUrl in your Forminit form settings
     // if (redirectUrl) {
     //   window.location.href = redirectUrl;
     // }

     form.reset();
     form.style.display = 'none';
     show(doneBlock);
   });
 }
</script>

Step 3: Add a Form Block

  1. Open the Add Elements panel. Keyboard shortcut: A.
  2. Drag a Form Block onto your page.
Add form block element

Step 4: Set the Form ID

  1. Select the <form> element inside your form block.
  2. In the Element Settings panel, set the ID to contact-form.

This must match the ID in your script:

const WEBFLOW_FORM_ID = 'contact-form';

Set form ID to contact-form

Step 5: Configure the Form Action

  1. Select the form block.
  2. Open Form Settings.
  3. Under Send To, remove any existing webhooks or email notifications.
  4. Add a Custom Action.
  5. Paste your Forminit form endpoint.
  6. Set method to POST.
Configure custom form action

Step 6: Rename Input Fields

Select each input field and update the Name attribute to match Forminit’s field naming convention.

For submitter information: Sender Block

FieldName AttributeEmailfi-sender-emailFirst Namefi-sender-firstNameLast Namefi-sender-lastNamePhonefi-sender-phone

For other fields: Single Blocks

See all available form blocks: /docs/form-blocks/

Rename input fields

Step 7: Test Your Form

  1. Publish your Webflow site.
  2. Submit a test entry.
  3. View the submission in your Forminit dashboard: https://app.forminit.com

For select fields, you’ll see analytics showing how often each option was chosen across all submissions.

View submissions in dashboard

Adding File Uploads

Webflow’s native file upload requires a Business plan. With Forminit, file uploads work on any plan.

Add a File Input

  1. Open the Add Elements panel.
  2. Drag a Code Embed element into your form block.
  3. Add one of the following code snippets.

Single file upload:

<input type="file" name="fi-file-resume" />

Multiple file upload:

<input type="file" name="fi-file-documents[]" multiple />

  1. Save and publish your site.
Add file upload via code embed

Redirecting After Submission

By default, the form displays a success message after submission. If you’d prefer to redirect users to a thank-you page or another URL:

  1. In your Forminit dashboard, open your form settings and set your Redirect URL.
  2. In your Webflow page script, find the commented redirect code and uncomment it:

if (redirectUrl) {
 window.location.href = redirectUrl;
}

The redirectUrl value comes from your Forminit form settings, so you can change the destination anytime without updating your Webflow code.

Troubleshooting

Form not submitting?

  • Verify the form ID matches in both Webflow and your script.
  • Check that authentication mode is set to Public in Forminit.
  • Open browser developer tools to check for JavaScript errors.

Success or error messages not showing?

  • Ensure your form block has the default .w-form-done and .w-form-fail elements.

File uploads not working?

  • File inputs must use the fi-file-{name} naming pattern.
  • For multiple files, add [] to the name and include the multiple attribute.

Next Steps

  • Add spam protection with reCAPTCHA: /docs/recaptcha/
  • Set up email notifications: /docs/email-notifications/
  • Connect to Zapier or Make: /docs/zapier/

Frequently asked questions

  • Yes. Webflow's built-in submission storage and email notifications cannot run at the same time as a custom action URL. When you add a custom action pointing to Forminit, you must first delete the existing Webflow and Email notification destinations in the form's Send To section. Getform then handles submission storage, email notifications, and spam filtering. The Webflow form documentation confirms this constraint.

  • The no-code form action URL method works on all Webflow plans, including the free Starter tier. The JavaScript SDK method requires a paid Webflow site plan because it uses custom code injection. File upload fields added via Code Embed elements also require a paid plan. For full details on plan-level feature access, see the Webflow pricing page.

  • Yes. Create a separate form endpoint in the Getform dashboard for each form on your site — for example, one for contact inquiries and another for newsletter signups. Each Webflow Form Block gets its own custom action URL and its own Element ID if you are using the JavaScript SDK. This allows different notification rules, spam settings, and webhook destinations per form. The Getform Webflow guide covers multi-form configuration.

  • Several verified causes exist. If site-level reCAPTCHA is enabled in Webflow's site settings, every form on the page must include a reCAPTCHA element — even forms using a custom action — or submissions will fail. CORS errors appear when your Webflow domain is not listed in Forminit's authorized domains setting. Also, custom code does not execute in Webflow's preview mode, so always test on the published site. Check the Getform troubleshooting guide for a complete list of common issues and fixes.

  • Yes. Getform.io rebranded to Forminit in January 2026. All features, accounts, endpoints, and data carried over with no migration required. The getform.io domain redirects to forminit.com, and the Zapier connector is accessible under both names. If your existing Webflow forms point to getform.io endpoints, they should continue to resolve, but review them to confirm. The official rebrand announcement has full details.

Forminit
Forminit
Joined in

Description

Routes Webflow form submissions to Forminit for server-side validation, file uploads, spam protection, and email notifications via custom form actions or the JavaScript SDK.

Install app

This integration page is provided for informational and convenience purposes only.


Other Forms & surveys integrations

Other Forms & surveys integrations

Form Sparrow

Form Sparrow

Connect Form Sparrow to Webflow for serverless form handling without backend code. Process submissions, manage email notifications, and protect against spam — all while maintaining full design control in Webflow.

Forms & surveys
Learn more
FormToEmail

FormToEmail

Connect FormToEmail, a hosted form-to-email backend, with Webflow to route form submissions to specific inboxes, send autoresponder emails, and filter spam with reCAPTCHA and IP blocking.

Forms & surveys
Learn more
FormBucket

FormBucket

Route Webflow form submissions through FormBucket to get spam filtering, email notifications, webhooks, and API access without server infrastructure.

Forms & surveys
Learn more
Formstack

Formstack

Connect Formstack, a data capture and workflow automation platform, with Webflow to embed advanced forms and sync submissions using Code Embed, Zapier, or APIs.

Forms & surveys
Learn more
Formcarry

Formcarry

Connect Formcarry, a form endpoint service, with Webflow to collect submissions with file uploads, send auto-reply emails, filter spam, and restore form processing on exported sites.

Forms & surveys
Learn more
Formspree

Formspree

Redirect your form submissions to your email. Use Formspree for testing and development with unlimited projects and forms, limited to 50 submissions/mo.

Forms & surveys
Learn more
Form Data

Form Data

Connect Form Data, a form backend service, with Webflow to add spam filtering, auto-response emails, file uploads, and webhook-driven workflows to any form.

Forms & surveys
Learn more
Enrollsy

Enrollsy

Connect your enrollment management system with your Webflow site to streamline class registrations, manage programs, and process payments seamlessly.

Forms & surveys
Learn more
Elfsight Contact Form

Elfsight Contact Form

Capture leads and customer inquiries on your Webflow site with Elfsight's customizable contact form widget. Build professional forms with drag-and-drop simplicity, add custom fields, and automate email notifications — all without writing code.

Forms & surveys
Learn more

Related integrations

No items found.

Get started for free

Try Webflow for as long as you like with our free Starter plan. Purchase a paid Site plan to publish, host, and unlock additional features.

Get started — it’s free