WebflowForms Documentation
Step-by-step guides, webhook API endpoints, and CRM integration tutorials for connecting Webflow forms without code or Zapier fees.
Getting Started
WebflowForms lets you connect Webflow forms to any CRM, email tool, or database — without exposing API keys in your client code. Here's how it works in 3 steps:
Purchase a connector
Browse our connectors catalog and buy the one you need ($19 / year). You'll receive instant access after payment.
Set up in the dashboard
Sign in to your WebflowForms dashboard. Add a Connection (paste your CRM credentials), then create a Form and map your fields.
Paste the Form Action URL into Webflow
Copy your generated Form Action URL (https://webflowforms.com/api/submit/...) and paste it into your Webflow Form Settings Action field with Method = POST. Submissions will flow to your CRM automatically.
Connect to Webflow
WebflowForms connects directly to native Webflow Form Blocks with zero layout changes. Combine Step 1 (Action URL) with Step 2 (AJAX Helper Script) for the best experience.
Method 1: Native Form Action URL (Zero-Code Setup)
Copy your Form Action URL
In your WebflowForms Dashboard under Forms, copy the Action URL generated for your form (e.g., https://webflowforms.com/api/submit/your-form-id).
Configure Webflow Form Settings
Select your native Webflow Form Block on the canvas. Open the Element Settings (D) panel on the right, paste your URL into the Action field, and set Method to POST. Publish and you're live!
Method 2: Native AJAX Helper Script (Keep .w-form-done States)
By default, Webflow performs a full-page browser POST when a custom Action URL is set. Add our ultra-lightweight 1.5KB wf.js helper so forms submit asynchronously via AJAX and trigger Webflow's built-in Success (.w-form-done) and Error (.w-form-fail) states without reloading the page.
Open Webflow Page or Site Custom Code
In Webflow Designer, open Page Settings (or Site Settings → Custom Code to enable site-wide) and scroll to the Before </body> tag section.
Paste the 1-Line Script Tag
Paste the following script snippet and save:
Customize Success, Error & Redirect Behavior
With wf.js installed, your form automatically displays your designed Webflow Success state on 200 OK, shows the Error state if an error occurs, or redirects to your custom Redirect URL if configured in the WebflowForms Dashboard.
That's it! wf.js automatically detects all forms pointing to /api/submit/... as well as any WebflowForms file upload embeds on your page.
Connect a CRM
After purchasing a connector, head to your dashboard to set up the connection. Each CRM requires different credentials — here's a guide for the most popular ones.
Klaviyo
Required: Private API Key + List ID
Where to find: Settings → API Keys → Create Private Key
Mailchimp
Required: API Key + Server Prefix + Audience ID
Where to find: Account → Extras → API Keys
HubSpot
Required: Private App Access Token
Where to find: Settings → Integrations → Private Apps → Create
Google Sheets
Required: Refresh Token + Spreadsheet ID
Where to find: OAuth2 flow — contact support for help
Slack
Required: Incoming Webhook URL
Where to find: Slack Apps → Incoming Webhooks → Add
Zapier
Required: Webhook URL
Where to find: Create Zap → Webhooks by Zapier → Catch Hook
💡 Tip: For all other connectors, the credential fields are labeled with exact instructions on where to find each value in your CRM settings.
File Uploads & Cloud Storage
WebflowForms supports native file uploads. When visitors submit files through your form, WebflowForms uploads them directly to your preferred cloud storage provider (Google Drive, AWS S3, or Supabase Storage) and routes the secure file URLs directly to your CRM properties.
Set up a Storage Connection
In your Dashboard, navigate to Connections, click **Add Connection**, and select Google Drive, AWS S3, or Supabase Storage. Enter your credentials to link the account securely.
Link Storage to your Form
Go to the Forms tab, click **Edit** on your form, select your storage connector from the **File Storage Connection** dropdown, and configure upload limitations (e.g. maximum file size).
Add the File Upload HTML Embed to your Webflow Form
Under your form's dashboard card, click Copy Webflow Embed Code. In Webflow Designer, drag an Embed element inside your native Form Block and paste the snippet:
Map to your CRM
Under Field Mapping, link your form's file field name to your target CRM contact or lead property. Submissions to your CRM will now contain the secure link to the uploaded file.
🔒 Security: All file uploads are streamed directly to your bucket through the server side, keeping your cloud keys completely hidden from client-side inspectors.
Field Mapping
Field mapping tells WebflowForms how to translate your Webflow form field names into CRM property names. For example:
| Webflow form Field | → | Klaviyo Property |
|---|---|---|
email | → | $email |
name | → | $first_name |
phone | → | $phone_number |
company | → | $organization |
In the dashboard, each form has a Field Mapping section with dropdown menus pre-populated with the CRM's accepted properties. Simply select the matching CRM field for each Webflow form field.
API Reference
If you want to integrate WebflowForms manually (without the Webflow form action), you can call our API directly.
/api/submit/{formId}Submit form data to be routed to the connected CRM.
Headers
Request Body
Response (200 OK)
Error Response (429)
Rate Limits: 10 requests per minute per IP. The X-RateLimit-Remaining header shows remaining requests.
FAQ & Troubleshooting
My form submissions aren't showing up in my CRM
Check the following: (1) Your Form Action URL (https://webflowforms.com/api/submit/...) is set with Method = POST in Webflow Form Settings, (2) Your CRM credentials are valid in the dashboard, (3) Your field mapping includes at least the email field. Check the Submissions tab in your dashboard for error logs.
Can I use WebflowForms with a custom domain?
Yes! Your 20 free sandbox trial submissions work on any staging or live domain automatically. When using an unlimited production license on a custom domain, activate your domain in Dashboard → Licenses.
What happens if a submission fails?
Failed submissions are logged in your dashboard with the exact API error message and you receive an instant email alert so no lead is ever lost.
Is there a submission limit?
No! All paid licenses (both single connectors and all-in-one bundles) include unlimited form submissions with zero overage charges.
Can I connect multiple CRMs to one form?
Currently each form connects to one primary CRM plus an optional Cloud Storage provider (S3, Google Drive, or Supabase Storage). For multi-destination fan-out, use our Zapier, Make, or n8n connectors.
How do I update my CRM credentials?
Go to Dashboard → Connections → click Edit on your connection → Update Credentials. Your existing forms will automatically use the new credentials.
Do you support Webflow's native form element and .w-form-done states?
Yes! Paste your Action URL into Webflow's native Form Block and add <script src="https://webflowforms.com/wf.js" defer></script> to keep your native .w-form-done and .w-form-fail states without page refresh.
Is my data secure?
Absolutely. All credentials are encrypted at rest. Your API keys never appear in client-side code — only your public Form ID is used in the Action URL. We use HTTPS for all data transmission.
Get your WebflowForms license in 30 seconds
Starting at just $1.58/mo ($19/yr) with unlimited submissions, zero exposed keys, and a 14-day money-back guarantee.