Builders
FormsFort setup guide for Webflow, Framer, Carrd, Squarespace, Wix, Dorik, WordPress, Elementor, Oxygen, Unbounce, Instapage, Pagewiz, and Groovefunnels.
Builders
Embed FormsFort where custom HTML is allowed. The builder must preserve field names and hidden reserved fields. If it rewrites form submissions through its own backend, use a paid/manual server-side safelist.
Supported builders
Webflow
Set the form action to the submit endpoint, method to POST, and add a hidden access_key field.
Framer
Use an embed form when you need custom hidden fields, captcha markup, or the advanced upload helper script.
Carrd
Use an Embed element or custom form so hidden reserved fields and the FormsFort action are preserved.
Squarespace
Use a Code Block for full HTML control when native form storage rewrites the submission target.
Wix
Use custom embed code for browser submissions, or backend code only with an exact sender IP safelist.
Dorik
Use Custom Code blocks and keep every input name stable so reserved fields reach the API.
WordPress
Use a custom HTML block or plugin hook that preserves field names and hidden fields.
Elementor
Use an HTML widget when the native form widget cannot keep the submit action and hidden fields intact.
Oxygen Builder
Embed the HTML form directly and load the client helper script only when captcha or advanced upload widgets are used.
Unbounce
Use custom HTML forms for reserved fields, or post from page JavaScript with JSON responses.
Instapage
Use a custom embed for Web3Forms-compatible hidden fields and same-host redirects.
Pagewiz
Embed a full HTML form so the public endpoint, method, and access key are not rewritten.
Groovefunnels
Use custom code blocks and test from the published domain before enabling domain restrictions.
Embed checklist
action="https://api.formsfort.dev/submit"
method="POST"
hidden access_key="YOUR_ACCESS_KEY"
name attributes on every field
optional botcheck honeypot field
optional same-host redirect HTTPS URL
paid/manual cross-domain redirect URLWebflow form block
Webflow works when the FormsFort hidden inputs live inside the native Form Block and the form settings keep the public endpoint and POST method intact.
1. Drag a Webflow Form Block onto the page.
2. Add an Embed element inside that Form Block.
3. Paste the hidden access key field:
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
4. Select the form element and set:
Action: https://api.formsfort.dev/submit
Method: POST
5. Publish the site and submit from the published domain before enabling domain restrictions.Framer forms
Framer can submit to FormsFort through its form builder when the destination is a direct webhook call to the public endpoint. If Framer proxies the request, the form may hit Framer limits and appear server-side to FormsFort.
1. Insert a Framer Form Builder component.
2. Add a hidden text field:
Name: access_key
Value: YOUR_ACCESS_KEY
Required: Yes
3. Select the form wrapper.
4. Set Send To: Webhook.
5. Set the webhook URL to:
https://api.formsfort.dev/submit
6. Preview, publish, and confirm the request reaches FormsFort directly.Wix custom embed
Wix works best with an embedded custom form. Backend/Velo submissions are treated as server-side traffic and need a paid/manual sender IP safelist.
1. Open the Wix editor for the site.
2. Add Embed > Custom Embeds > Embed a Widget.
3. Paste the HTML form from the HTML & JavaScript guide.
4. Replace YOUR_ACCESS_KEY.
5. Save and publish.
6. Test from the published page, then add allowed domains in the dashboard.Carrd, Squarespace, and Dorik
The upstream Web3Forms pages for these builders are placeholders. FormsFort supports them through the same custom-code fallback: embed a complete HTML form, preserve every field name, and test the published page before tightening domain restrictions.
<form action="https://api.formsfort.dev/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
<input type="hidden" name="subject" value="New builder submission" />
<input type="checkbox" name="botcheck" style="display:none" />
<input name="name" required />
<input name="email" type="email" required />
<textarea name="message" required></textarea>
<button type="submit">Send</button>
</form>Advanced upload helper
Use the helper only when the builder lets custom scripts run on the published page. If scripts are stripped, use a normal multipart file field instead.
<input type="file" name="attachment" data-advanced="true" accept="application/pdf,image/*" />
<script src="https://api.formsfort.dev/client/script.js" async defer></script>