A custom n8n node that triggers workflows when new form submissions are received in OpnForm.
OpnForm is an open-source form builder that allows you to create and manage forms, collect submissions, and integrate with various tools. This n8n integration enables you to automate workflows based on form submissions.
API Documentation: https://docs.opnform.com/api-reference/introduction
This n8n trigger node automatically receives OpnForm submissions as webhook events in your n8n workflows. When a form is submitted in OpnForm, the integration sends the submission data to your n8n workflow, allowing you to:
- Process form submissions automatically
- Integrate with other services and tools
- Transform and route submission data
- Trigger complex multi-step workflows
This integration uses the following OpnForm API endpoints:
GET /open/workspaces- Lists available workspaces for dropdown selectionGET /open/workspaces/{workspaceId}/forms- Lists forms in a workspace for dropdown selectionGET /open/forms/{formId}/integrations- Checks if an integration already existsPOST /open/forms/{formId}/integrations- Creates a webhook integration subscriptionDELETE /open/forms/{formId}/integrations/{integrationId}- Removes the webhook integration
# From this directory
npm install-
Local Development (default):
n8n-node dev
This will watch for changes and automatically rebuild the node as you develop.
-
Linting:
n8n-node lint
Run lint checks against your files.
Then in your n8n instance, install this package or load it as a local custom node per n8n docs.
To publish your node to npm, run the release command in your project directory:
n8n-node releaseOr using npm:
npm run releaseBefore running the release command, you must be logged into npm:
npm loginWhen you run the release command, n8n-node will perform the following actions:
- Build the node
- Run lint checks against your files
- Update the changelog
- Create git tags
- Create a GitHub release
- Publish the package to npm
For more details, see the n8n-node release documentation.
To use this integration, you need a Personal Access Token from OpnForm with the manage-integrations ability.
- Sign in to your OpnForm account at https://opnform.com
- Navigate to Settings → Access Tokens (
/home?user-settings=access-tokens) - Click Create new token
- Enter a descriptive name (e.g., "n8n Integration")
- Select the
manage-integrationsability (and any other abilities you need) - Click Create and copy the token immediately - you won't be able to see it again
For detailed instructions, see the OpnForm API Keys documentation.
| Ability | Required For |
|---|---|
manage-integrations |
Required - Creating and managing webhook integrations |
workspaces-read |
Required - Listing workspaces for dropdown selection |
forms-read |
Required - Listing forms for dropdown selection |
- In your n8n workflow, add the OpnForm Trigger node
- Click on Credentials and select Create New
- Enter:
- Name:
OpnForm API(or any descriptive name) - Base URL:
https://api.opnform.com(or your self-hosted OpnForm instance URL) - API Key: Your Personal Access Token
- Name:
- Click Save and select this credential in the OpnForm Trigger node
- Add the OpnForm Trigger node to your n8n workflow
- Select your credentials (or create new ones as described above)
- Choose a Workspace from the dropdown menu
- Choose a Form from the dropdown menu (forms will load after selecting a workspace)
- Activate the workflow - The node will automatically:
- Create a webhook integration in OpnForm
- Configure the webhook URL to receive submissions
- Start listening for new form submissions
When you activate your n8n workflow:
- The OpnForm Trigger node will create a webhook integration subscription
- OpnForm will send a POST request to your n8n webhook URL whenever the form receives a submission
- The submission data will be available in subsequent workflow nodes
When you deactivate your n8n workflow:
- The OpnForm Trigger node will automatically delete the webhook integration
- No further submissions will be sent to your workflow
OpnForm Trigger → Set Node (format message) → Slack Node (send message)
Workflow Steps:
- OpnForm Trigger - Receives form submission
- Set Node - Format the submission data into a Slack-friendly message:
{ "text": "New form submission received!", "fields": [ { "title": "From", "value": "{{ $json.submitter_email }}", "short": true }, { "title": "Submission ID", "value": "{{ $json.id }}", "short": true } ] } - Slack Node - Send the formatted message to a Slack channel
OpnForm Trigger → Transform Data → Google Sheets Node (append row)
Workflow Steps:
- OpnForm Trigger - Receives form submission
- Code Node - Transform submission data to match your Google Sheets columns:
const submission = $input.item.json; return { json: { timestamp: submission.created_at, email: submission.data.email || '', name: submission.data.name || '', message: submission.data.message || '', }, };
- Google Sheets Node - Append the transformed data as a new row
OpnForm Trigger → IF Node (check condition) → Email Node (send notification)
Workflow Steps:
- OpnForm Trigger - Receives form submission
- IF Node - Check if submission meets certain criteria (e.g.,
{{ $json.data.urgency }} === 'high') - Email Node - Send an email notification only for high-priority submissions
- Load Options: When configuring the node, it fetches Workspaces and Forms via
/open/workspacesand/open/workspaces/{workspaceId}/formsto populate dropdown menus. - On Enable: The node subscribes by creating a form integration with
integration_id: 'n8n'and your n8n webhook URL viaPOST /open/forms/{formId}/integrations. - On Disable: The node automatically deletes the created integration via
DELETE /open/forms/{formId}/integrations/{integrationId}. - Webhook Receipt: When a form submission occurs, OpnForm sends the submission data to your n8n webhook URL, and the payload is forwarded as JSON to the workflow.
Licensed under the MIT License. See LICENSE for details.