formbasedocs
Go to appApp

Guides · n8n (self-hosted)

Start an n8n workflow from public link submissions

This guide builds a two-node workflow: a new submission to a supplier onboarding form arrives in a formbase Trigger, and an Edit Fields node picks out the answers. Put your email, Sheets, Slack or CRM node after it.

Last checked


You need a formbase credential in n8n and a published form with a share link. Your n8n must be reachable from the internet over HTTPS; see Install the formbase node in n8n. A submission to a request link does not start these workflows; see Act on a request’s outcome in n8n for that.

1. Add the trigger

Create a workflow, click +, search for formbase and pick formbase Trigger. Choose the credential, the form, and one of the three public link events under Event:

The formbase Trigger's Event dropdown open: Public Link Submission Created, Updated and Abandoned, then Request Completed, Expired and Canceled, each with a short description
EventRuns whenNeeds
Public Link Submission CreatedA respondent submits the form through a share link.Nothing extra.
Public Link Submission UpdatedA respondent edits a submission they already sent.Edit after submit turned on for the form.
Public Link Submission AbandonedA respondent leaves the form unfinished for the time under Consider Abandoned After (12 hours to 1 week). formbase checks hourly, so the run can come up to an hour later.A Pro or Business plan, which saves partial submissions.

2. Listen for a test event

Click Execute step. The node shows Listening for test event, and formbase starts sending this form’s events to the node’s test URL for two minutes. Open the form’s share link in another tab and submit it within that time. The submission arrives in the node within seconds:

The formbase Trigger after a test event: Form [Guide] Supplier onboarding, Event Public Link Submission Created, and the output with id, type submission.completed, test false and data › answers holding company_name Nordlys Tekstil AS, contact_email, vat_number, the payment terms answer yes, and the uploaded certificate file

n8n has no sample record: the test is a real submission, and test is false. Every answer appears twice:

  • data.answers holds the value a workflow compares, under the question’s field key: an option key like yes, a number, a date, or a list of files.

  • data.display holds the text a person reads, like Yes.

Use display in messages and answers in conditions. See the webhooks reference for both.

Abandoned submissions arrive hours later, so Execute step cannot catch one. For that event, publish the workflow and check Executions.

3. Pick out the answers

Add an Edit Fields (Set) node after the trigger. Drag answers from the input panel into Fields to Set, or type the expressions yourself:

An Edit Fields node with three fields: company from $json.data.answers.company_name, email from $json.data.answers.contact_email, and payment_terms from $json.data.display.do_you_accept_our_30_day_payment_terms, with the output Nordlys Tekstil AS, grace@nordlys.example and Yes
payment_terms reads from display, so it holds the label Yes rather than the option key yes.

The next node, say Gmail or Google Sheets, reads {{ $json.company }} and the other fields from here. When a question is renamed, its field key stays the same, so these expressions keep working.

4. Publish and check a real run

Click Publish, give the version a name, and confirm. formbase now sends every new submission to the workflow’s production URL. Unpublishing the workflow stops that.

Submit the form once more and open the Executions tab. The run appears within seconds. Runs you started with Execute step carry a flask icon; a production run has none:

The Executions tab of the published workflow: the latest run Succeeded in 51ms with no flask icon, three earlier test runs with a flask icon, and the canvas showing formbase Trigger passing 1 item to Edit Fields

If the workflow does not start

  • The form was submitted through a request link. That runs Request Completed, not Public Link Submission Created.

  • The workflow is not published. Only Execute step listens while the workflow is a draft, and only until the first event arrives or two minutes pass.

  • The trigger shows targetUrl must use https.

    Your n8n hands out an http:// or private URL. See Tell n8n its public address.

  • The credential reaches another workspace. The trigger listens to the form in the workspace its credential points at.

Checking the signature

The formbase Trigger checks the X-formbase-Signature header of every event and rejects any that fails. Keep the n8n host’s clock accurate: an event signed more than five minutes earlier is rejected too.

Next