The short answer

To connect an n8n form, add a Webhook node set to POST in an n8n workflow, activate the workflow and copy its Production URL. In Upform, open the form's Connect panel, paste that URL under n8n and save. From then on, every submitted response is posted to the workflow with an X-Upform-Signature header you can check against the form's signing secret. No n8n credentials are stored in Upform, and the integration is included on the $0 plan next to unlimited forms and unlimited responses.

1

Signed POST per response

4

Steps to connect

0

n8n credentials in Upform

$0

Cost of the integration

Setup

Connect an n8n form in four steps

Two steps happen in n8n and two in Upform. There is nothing to authorize, because the only thing Upform needs from n8n is a URL.

  1. Add a Webhook node in n8n

    Create a workflow, or open one you already run, and add a Webhook node as its trigger. Set the HTTP method to POST, since that is how Upform delivers each response.

  2. Activate the workflow and copy the Production URL

    Every Webhook node has a Test URL and a Production URL. Upform needs the Production URL, and n8n only answers on it while the workflow is active, so switch the workflow on first.

  3. Paste it into the form's Connect panel

    In the form builder, open Connect, find n8n, paste the URL and press Save. The panel then shows n8n connected, an Active switch and the signing secret for this form.

  4. Send a test event, then publish

    Press Send test event and Upform reports the HTTP status your workflow returned. Publish the form, and every submitted response posts to the workflow for as long as the connection stays active.

Connect · n8n

n8nSigned webhook, no n8n credentials neededConnected
n8n Webhook URL
https://your-instance.app.n8n.cloud/webhook/new-leadSave

n8n connectedActive

Last delivered 9/29/2026, 9:41:07 AM

Signing secret (optional)

Each request includes X-Upform-Signature: sha256=<hex>, an HMAC-SHA256 of the body. Verify it in n8n to confirm authenticity.

••••••••••••••••••••••••••••••••
Send test eventRemove
  • Only a URL and a signing secret live in Upform, never n8n credentials
  • Works the same on n8n Cloud and on a self-hosted instance Upform can reach
  • Pause delivery with the Active switch without losing the URL

What arrives

What your Webhook node receives

One request per submitted response. The call looks the same every time, so the nodes after the trigger can be built once and left alone.

Part of the requestWhat it carriesWhere it matters in n8n
MethodPOST, to the Production URL saved in the Connect panel.Set the Webhook node's HTTP method to POST, the method the Connect panel asks for.
BodyThe submitted response: the answers the person gave, sent when they press submit.Map answers into later nodes once a test event has shown you the exact shape.
X-Upform-Signaturesha256= followed by the hex HMAC-SHA256 of the body, keyed with this form's signing secret.Recompute it inside the workflow and stop anything that does not match.
TimingSent on submit. A response somebody abandons halfway never fires.Apart from test events, every execution the trigger starts is a completed response.
Test eventSent when you press Send test event in the Connect panel.Build and check the downstream nodes before the form goes live.
Delivery statusThe time of the last delivery and the last error, shown under the URL.Your first stop when an execution does not show up.

Upform keeps its own copy of every answer, whatever the workflow does with it. The responses table has search, a form filter, a date filter and CSV export, and form analytics shows completion rate and the drop-off on each question.

Security

Verify the signature before the workflow acts

A Production URL accepts a POST from anyone who knows it. The X-Upform-Signature header is how the workflow tells a real response from an invented one.

  1. Copy the signing secret

    It appears in the n8n section of the Connect panel once the URL is saved, masked until you reveal it. Treat it like a password: anyone holding it can sign a request your workflow will trust.

  2. Hash the raw body

    Compute an HMAC-SHA256 of the request body with that secret, in a Code node or n8n's Crypto node, and encode it as hex. Hash the raw bytes (the Webhook node has a Raw Body option), because a parsed and re-serialized body may not match the original byte for byte.

  3. Compare, then branch

    Put sha256= in front of your result and compare it with the header in an IF node. Only the true branch carries on, so a forged call stops before it writes to a CRM or sends an email.

POST /webhook/new-lead
X-Upform-Signature: sha256=<hex>

<hex> = HMAC-SHA256(secret, raw body)
Optional, and still worth it

The panel labels the secret optional: the workflow runs whether you check it or not. Skip the check only for throwaway tests. For anything that creates records or messages people, verify first. More on how Upform handles data in security and privacy.

Use it for

What teams build on an n8n form

Upform collects the answers and keeps a copy. n8n decides what happens next, across hundreds of apps and your own APIs.

Route leads by their answers

A Switch or IF node reads the budget or team size answer, sends large deals to the CRM with an owner assigned and drops smaller ones into a nurture sequence. The form asks the qualifying questions one screen at a time, so more people reach the end.

Lead generation forms

Kick off client onboarding

One intake response can create the project, the shared folder and the kickoff task in whichever tools your team already uses, in the order you choose. Start from the client intake form template and wire the workflow to it.

Client onboarding forms

Summarize long answers with AI

Pass a long text answer to one of n8n's AI nodes, get a two-line summary back, and post the summary to the team instead of the whole essay. The full answer stays in the Upform response, so anyone can check the summary against it.

Reach tools Upform does not connect to

Upform connects directly to Google Sheets, Slack, Notion, HubSpot and a handful more. A help desk, a database or an internal API is one n8n node away instead, with no custom code on the Upform side.

Every form integration

Choosing a form

n8n's built-in form or an Upform form?

n8n ships its own Form Trigger node, and for some jobs it is all you need. Here is an honest split, so you only add a tool when it earns its place.

When n8n's own form is enough

  • An internal form that a few colleagues fill in
  • A handful of plain fields and no branching
  • No need for a separate record of every answer
  • Speed of setup matters more than how it looks

When to put Upform in front

  • Public forms shown as conversational forms, one question per screen, with full keyboard support
  • 21 question types, from phone number with a country picker to picture choice and file upload
  • Conditional logic with 20 operators and four actions: show, hide, jump and end form
  • Your colors, fonts, logo and background image
  • Every response kept in Upform, with drop-off per question and CSV export

Being straight with you

Limits worth knowing before you build

The integration is deliberately small: a URL, a signature and a switch. That keeps it predictable, and it also means a few things are yours to handle in the workflow.

How it behaves

  • The request goes out when a response is submitted, not on a schedule
  • Destinations run on their own, so a slow workflow does not hold up a Google Sheets row or a Slack message
  • The response is stored in Upform even while the workflow is off, and stays exportable as CSV
  • The Active switch pauses delivery without deleting the URL or the secret

What it does not do

  • Hold more than one n8n URL per form. Fan out from the first workflow instead
  • Come with a documented retry policy. Treat each delivery as one attempt and watch the last error in the panel
  • Fire on submissions made in the builder's preview. Use Send test event
  • Build or edit the workflow for you, since Upform never links to your n8n account
Each response is one n8n execution

If your n8n plan counts executions, every submitted response uses one. A self-hosted instance works too, provided Upform can reach its URL over the internet: a workflow on localhost will never receive the call.

Other routes

n8n, a custom webhook or a direct integration

n8n is the right call when the next step is a chain of tools. If you would rather write code than nodes, a custom webhook posts each response as JSON to any HTTPS endpoint you run. If the destination is a single tool Upform already supports, connect it directly and skip the middle step.

Every destination runs on the free plan, and the OAuth ones connect with your own account. The full list lives in the integrations directory.

Frequently asked questions

Do I need n8n credentials or an API key to connect?

No. Upform only needs the Production URL of a Webhook node in your workflow. It never asks for your n8n login or API key, and none are stored in Upform. What it does keep is the URL and a signing secret for the form, which your workflow can use to verify each request.

Does it work with self-hosted n8n?

Yes. Upform posts to whatever URL you paste, so n8n Cloud and a self-hosted instance behave the same way. The one requirement is that Upform can reach the URL over the internet, so a workflow running on localhost or inside a private network will not receive the call.

How do I verify that a request came from Upform?

Every request carries an X-Upform-Signature header: sha256= followed by a hex string. Compute an HMAC-SHA256 of the raw request body with the signing secret from the Connect panel, compare the two in an IF node, and stop the workflow when they differ.

Why is nothing arriving in my n8n workflow?

Check four things. The workflow must be active, the URL must be the Production URL rather than the Test URL, the Active switch in the Connect panel must be on, and the response must be a real submission, because previews in the builder do not fire. The panel also shows when the last delivery happened and the last error, if there was one.

Is the n8n integration free?

Yes. Every integration is included on the free plan, which is $0 forever and comes with unlimited forms, unlimited responses, all 21 question types and conditional logic. Pro is $12 a month and adds unlimited file storage, removes Upform branding and allows up to five team members. Whatever your n8n plan costs is between you and n8n.

Can one form send responses to n8n and other tools at once?

Yes. A form can run n8n alongside Google Sheets, Slack, Notion, HubSpot or a custom webhook, and each destination runs on its own. Each form holds one n8n URL, so if two workflows need the same response, let the first workflow call the second.

Get started

Collect the answers here. Automate the rest in n8n.

Start from a template, paste one Webhook URL, and every response starts your workflow the moment it is submitted.

No credit card. Unlimited forms and responses on the free plan.