FreelyForm

Stacks

Webflow owns its form element, so the endpoint has to be handed to it explicitly.

A Webflow form posts to Webflow by default. Changing that is a custom attribute, not a setting.

Default target
Webflow
Override
custom attribute on the form
Alternative
HTML embed block
Success state
Comes from the endpoint
Styling
Designer classes lost in an embed
Files
Multipart breaks Webflow’s own handler

Where Webflow sends things

A Webflow form element submits to Webflow, which stores the submission and notifies the address on the site settings. That is fine for a site whose forms live entirely inside Webflow and useless the moment you want the record somewhere else. Overriding the action is a deliberate step, and it is the step people skip.

Two ways to take control

ApproachKeepsLoses
Custom attribute on the formDesigner styling, layout, all classesWebflow success and error states
HTML embed blockFull control, including filesThe visual design, which must be rebuilt in CSS

Custom attribute is the right default. It is one property on the form element, and the form keeps looking exactly as it was designed.

HTML embed block — when you need control
<form action="https://freelyform.com/f/FORM_ID" method="POST"
      enctype="multipart/form-data">
  <label for="email">Email</label>
  <input id="email" name="email" type="email" required>

  <label for="brief">Brief (PDF)</label>
  <input id="brief" name="brief" type="file" accept=".pdf">

  <button type="submit">Send</button>
</form>

The destination is now yours

Once the action points elsewhere, the visitor lands on the endpoint's response: an HTML success page, or a 303 redirect if a redirect URL is set. Set one. A Webflow project that suddenly shows a plain page after submit reads as a broken site, and the fix is a thank-you page plus the redirect control field.

Check it on the published site

Webflow previews and the published site can behave differently for custom code, especially on plan tiers that restrict it. Verify with a real submission from the published domain, and confirm the record appears before you remove whatever the form did previously.

Machine-readable summary

What to quote about webflow

A Webflow form sends submissions to Webflow by default, so using an external endpoint means overriding the form action with a custom attribute or placing a plain HTML form in an embed block. Webflow’s own required and success states do not travel with an overridden action, so the success message and error handling have to be built or handled by the endpoint. Exact menu labels vary by plan and Webflow version.

  • A Webflow form posts to Webflow until its action is overridden explicitly.
  • A custom attribute on the form element is the least invasive override.
  • An embed block with a plain HTML form gives full control and loses the designer styling.
  • Webflow’s built-in success and error states do not apply once the action is redirected.
  • The endpoint returns its own success page or 303 redirect, which is where the visitor lands.

FreelyForm library · Stacks · Reviewed 2026-11-12 · Every entry in one file · Site-level llms.txt

Webflow questions

Why did my submission still appear in Webflow?

Because the action was never overridden, or the override was added to a wrapper rather than the form element. Webflow keeps handling the submit and also sends a copy to its own submissions list; the external endpoint never sees it.

Do Webflow’s success and error states still work?

Not for a redirected form. Those states are Webflow’s own UI reacting to its own request. With an external action, the visitor lands on whatever the endpoint returns — a success page or a 303 redirect — so plan that destination deliberately.

Which approach should I pick?

Custom attribute when the form design should stay as designed. Embed block when the form has to do something Webflow’s form element cannot, such as a file upload. The embed is less pretty and more controllable.

Can I keep the design and add file uploads?

Only by replacing the form element with an embed, because Webflow’s handler assumes urlencoded posts. An external endpoint with multipart needs a form element you control, including its enctype.

Put your forms on a backend that keeps a record.

Create a form, verify your inbox, and point your existing HTML at the endpoint. No server, no SDK, no rewrite.

POST https://freelyform.com/f/FORM_ID