# Install the Formstep node in n8n

Give a self-hosted n8n a public HTTPS address, install the n8n-nodes-formstep community node, and check that its triggers and actions show up.

The setup guides were checked on self-hosted n8n 2.40 in Docker with version 0.11.1 of the node, and the examples on n8n 2.44 with version 0.13.0.

## Before you start

- n8n 2.30 or later. The Formstep credential needs it.
- A Formstep account. Everything in these guides works on the Free plan except email invitations, reminders and unfinished drafts, which need Pro or Business. See [Limits and quotas](https://formstep.io/docs/subscription-billing/limits-quotas/).

## Self-hosted n8n

A self-hosted n8n needs two things before it can install the node:

- The owner account or an admin account. Only the owner and admins can install community nodes.

- A public HTTPS address, from a reverse proxy or a tunnel. Formstep sends events and request callbacks only to `https://` URLs on the public internet. An n8n that is reachable only on `localhost` can connect but never receives anything.

### 1. Tell n8n its public address

n8n builds the URLs it hands to Formstep from its own settings, not from the address in your browser. Set these environment variables on the n8n container or process:

- `WEBHOOK_URL`: the public HTTPS address, with a trailing slash, like `https://n8n.example.com/`. n8n builds the URL of a published trigger and the resume URL of [Wait for the Outcome](https://formstep.io/docs/guides/n8n/send-a-request/#wait-for-the-outcome) from it.

- `N8N_EDITOR_BASE_URL`: the same address. n8n builds a trigger’s test URL for **Execute step** from it, and the **OAuth Redirect URL** of the Formstep credential.

- `N8N_PROXY_HOPS`: set it to `1` when n8n runs behind one reverse proxy or tunnel, so n8n reads the proxy’s forwarded headers.

With Docker, that looks like this:

```bash
docker run -d --name n8n -p 5678:5678 \
  -e WEBHOOK_URL=https://n8n.example.com/ \
  -e N8N_EDITOR_BASE_URL=https://n8n.example.com/ \
  -e N8N_PROXY_HOPS=1 \
  -v n8n_data:/home/node/.n8n \
  docker.n8n.io/n8nio/n8n
```

With docker compose or an npm install, set the same variables in n8n’s environment. Point your proxy or tunnel at port `5678`, pass `/webhook/`, `/webhook-test/` and `/webhook-waiting/` through unchanged, and open n8n through the public address from then on.

> **Formstep sends events to HTTPS addresses only**
>
> Formstep refuses to send events to an `http://` URL or a private network address, and the Formstep nodes say so before they try, with the URL n8n handed out. If a trigger shows this on **Execute step**, `N8N_EDITOR_BASE_URL` is not set; on **Publish**, or on a Create request node with **Wait for the Outcome**, `WEBHOOK_URL` is not. Set that variable, restart n8n, and try again. If you change `WEBHOOK_URL` later, unpublish and publish each Formstep workflow again so its trigger registers the new address. With version 0.12 of the node or older, the same problem reads _VALIDATION\_ERROR: targetUrl must use https_.

### 2. Install the community node

Open **Settings** › **Community nodes** and click **Install**. Type `n8n-nodes-formstep` under **npm Package Name**, tick the box that says you understand the risks of installing unverified code, and click **Install**.

![The Install community nodes dialog: npm Package Name n8n-nodes-formstep, the risk checkbox ticked, and an Install button](https://formstep.io/docs/guides/n8n/n8n-install-community-node.png)

After a few seconds the package appears in the list with its two nodes:

![Settings › Community nodes listing n8n-nodes-formstep, version 0.11.1, with 2 nodes: Formstep, Formstep Trigger](https://formstep.io/docs/guides/n8n/n8n-community-node-installed.png)

Update or uninstall the package from the same list. If **Community nodes** is missing from Settings, your n8n was started with `N8N_COMMUNITY_PACKAGES_ENABLED=false`; remove that setting.

## n8n Cloud

> **Not available on n8n Cloud yet**
>
> n8n Cloud installs only community nodes that n8n has verified, and the Formstep node is not verified yet. Until it is, use a self-hosted n8n, or call the [REST API](https://formstep.io/docs/developers/quickstart-send-a-request/) from an **HTTP Request** node. A Cloud instance already has a public HTTPS address, so once the node is available there, only the install steps change.

## Check the node

Open a workflow, click **+** and search for **Formstep**. The node details show six actions and six triggers:

![The node details of Formstep, marked Installed, with Actions (6): Cancel request, Create request, Get request, Get many requests, Remind request recipient and Replay request callback, and a collapsed Triggers (6) section](https://formstep.io/docs/guides/n8n/n8n-node-details.png)

- **Formstep Trigger** starts a workflow on a public link submission that is created, updated or abandoned, or on a request that is completed, expires or is canceled.

- **Formstep** creates a request, gets one or many, reminds the recipient, cancels a request, and replays its callback.

## Next steps

[Connect Formstep to n8n](https://formstep.io/docs/guides/n8n/connect/) — Create the credential, sign in, and pick the workspace

[Automation guides](https://formstep.io/docs/guides/overview/) — Every guide for Zapier, Make, n8n and AI agents
