A POST request opening a new tab and showing a JSON response instead of staying inside Webflow usually means the form’s action handling is incorrectly configured or not using AJAX.
action
is added (like a webhook URL), it overrides Webflow’s native behavior.action
points to a webhook (e.g., Zapier, Integromat, custom server), the browser sends the POST request normally.application/json
, the browser doesn't know how to handle it visually, so it renders the raw JSON in a new tab.To ensure the user sees a success message after submission, without a new tab:
action
field of the form blank. Then use Webflow Logic, native integrations, or hidden fields and automation tools to handle the data.action
attribute from the form so Webflow handles the submission.fetch
or XMLHttpRequest
asynchronously, then show a confirmation message in the DOM manually.The issue happens because you're overriding Webflow’s default form behavior by setting a direct webhook action
, which causes a full POST and browser-rendered JSON. Remove the action
attribute, use Webflow’s native form submission, and integrate external handling via Webflow Logic or asynchronous JavaScript to keep the experience inside Webflow.