n8n-nodes-webflow-forms
v1.0.14
Published
Custom n8n node for Webflow Forms with signature verification
Downloads
1,590
Maintainers
Readme
n8n-nodes-webflow-forms
A custom n8n node for Webflow Forms with optional signature verification.
Features
- Webhook with random ID: Each node gets a unique webhook ID (like the standard Webhook node)
- Optional Signature Verification: Toggle to enable/disable verification
- Timestamp Validation: Checks if timestamp is within valid time window
- Flexible: Works without verification as a simple webhook, or with verification as a secure endpoint
Installation
Method 1: Community Node (Recommended)
In your n8n instance:
- Go to Settings → Community Nodes
- Click Install
- Enter:
n8n-nodes-webflow-forms - Click Install
Method 2: Custom Directory (Self-Hosted)
# Build locally
npm install
npm run build
# Copy to n8n custom directory
scp -r dist/* user@your-server:/home/node/.n8n/custom/
# Restart n8n
pm2 restart n8nMethod 3: npm Package
# Install globally
npm install -g n8n-nodes-webflow-formsUsage
1. Add the Node
Search for "Webflow Forms" in the nodes panel.
2. Configuration
Path
- Default: Auto-generated random ID (e.g.,
a1b2c3d4e5f6...) - Customize: You can change it, e.g.,
my-form-webhook - Webhook URL:
https://your-n8n-instance.app.n8n.cloud/webhook-test/{path}(Test) or/webhook/{path}(Production)
Verify Signature (Toggle)
When ON (recommended for production):
- Secret Key (required): Your Webflow webhook secret
- In Webflow: Site Settings → Forms → Webhooks → Show Secret
- Timestamp Window: Maximum age of timestamp (default: 300s = 5 minutes)
- Reject on Invalid: Reject requests with invalid signature
- Response Code: HTTP status for invalid signature (default: 400)
When OFF:
- No additional fields required
- Works as a simple webhook without signature check
3. Configure in Webflow
- Webflow: Site Settings → Forms → Webhooks
- Enter Production URL:
https://your-n8n-instance.app.n8n.cloud/webhook/{your-path} - Save
Output
With Verification (Verify Signature = true)
{
"body": { /* Form data */ },
"headers": { /* HTTP Headers */ },
"query": { /* Query parameters */ },
"params": { /* URL parameters */ },
"webflow": {
"verified": true,
"isValid": true,
"isRecent": true,
"calculated": "abc123...",
"received": "abc123...",
"timestamp": "1234567890"
}
}Without Verification (Verify Signature = false)
{
"body": { /* Form data */ },
"headers": { /* HTTP Headers */ },
"query": { /* Query parameters */ },
"params": { /* URL parameters */ },
"webflow": {
"verified": false
}
}Using in Workflows
With Verification
Check the isValid value or enable "Reject on Invalid":
Webflow Forms Node → [other nodes]
↳ If isValid = false and Reject on Invalid = true → HTTP 400Without Verification (for Testing)
Webflow Forms Node (Verify Signature = false) → [other nodes]Development
# Development mode with watch
npm run dev
# Linting
npm run lint
# Formatting
npm run format
# Build
npm run buildLicense
MIT
