webflow-forms

Custom n8n node for Webflow Forms with signature verification

Package Information

Released: 6 mo ago
Downloads: 25 weekly / 103 monthly
Latest Version: 1.0.14

Documentation

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:

  1. Go to Settings → Community Nodes
  2. Click Install
  3. Enter: n8n-nodes-webflow-forms
  4. 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 n8n

Method 3: npm Package

# Install globally
npm install -g n8n-nodes-webflow-forms

Usage

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

  1. Webflow: Site Settings → Forms → Webhooks
  2. Enter Production URL: https://your-n8n-instance.app.n8n.cloud/webhook/{your-path}
  3. 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 400

Without 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 build

License

MIT

Discussion