N8n 102 Course Bug for topic: Section 2 - Order Webhook Processor

It appears the course n8n102 is desiged to make the learnerns suffer, first it has a bug in section 1 on SendToPriorityQueue which is yet to be resolved, and now the Webhook part just cannot be followed as the testing page requires https whereas the tutorial uses http, so again stuck big time right at start of hands on excercize here is the json/workflow error screenshot is:

{
“nodes”: [
{
“parameters”: {
“httpMethod”: “POST”,
“path”: “course/n8n102/new-order”,
“authentication”: “headerAuth”,
“responseMode”: “responseNode”,
“options”: {
“allowedOrigins”: “*”
}
},
“type”: “n8n-nodes-base.webhook”,
“typeVersion”: 2.1,
“position”: [
0,
0
],
“id”: “5b647ab0-18c4-41a4-bb01-62fddb40e0d7”,
“name”: “WebhookNewOrder”,
“webhookId”: “cb64f5fc-8c9c-4d7d-abb7-7f3ca5eb7305”,
“credentials”: {
“httpHeaderAuth”: {
“id”: “vMHAPkPKaravjcEZ”,
“name”: “n8n Academy API Key”
}
}
},
{
“parameters”: {
“conditions”: {
“options”: {
“caseSensitive”: true,
“leftValue”: “”,
“typeValidation”: “strict”,
“version”: 3
},
“conditions”: [
{
“id”: “dd887f0b-a710-4f6d-ae7b-4135da5667a8”,
“leftValue”: “={{ $json.body.order_id }}”,
“rightValue”: “”,
“operator”: {
“type”: “string”,
“operation”: “notEmpty”,
“singleValue”: true
}
},
{
“id”: “a7140c1e-23cc-4dba-9662-0059886cdb53”,
“leftValue”: “={{ $json.body.customer_id }}”,
“rightValue”: “”,
“operator”: {
“type”: “string”,
“operation”: “notEmpty”,
“singleValue”: true
}
},
{
“id”: “438dee60-5bcf-4002-927e-280813e11b18”,
“leftValue”: “={{ $json.body.total }}”,
“rightValue”: “”,
“operator”: {
“type”: “number”,
“operation”: “notEmpty”,
“singleValue”: true
}
}
],
“combinator”: “and”
},
“options”: {}
},
“type”: “n8n-nodes-base.if”,
“typeVersion”: 2.3,
“position”: [
208,
0
],
“id”: “9fb45b77-fe7c-4240-848b-deadf5cf8bc7”,
“name”: “ValidateRequiredFields”
},
{
“parameters”: {
“respondWith”: “json”,
“responseBody”: “={\n “status”: “accepted”,\n “order_id”: “{{ $(‘WebhookNewOrder’).item.json.body.order_id }}”,\n “message”: “Order received and queued for processing”\n}”,
“options”: {
“responseCode”: 200
}
},
“type”: “n8n-nodes-base.respondToWebhook”,
“typeVersion”: 1.5,
“position”: [
416,
-96
],
“id”: “b945dafb-6e2f-461a-8534-414b735b7ab8”,
“name”: “RespondSuccess”
},
{
“parameters”: {
“respondWith”: “json”,
“responseBody”: “={\n “status”: “error”,\n “message”: “Missing required fields: order_id, customer_id, and total are required”\n}”,
“options”: {
“responseCode”: 400
}
},
“type”: “n8n-nodes-base.respondToWebhook”,
“typeVersion”: 1.5,
“position”: [
416,
96
],
“id”: “b23fadc8-b731-444d-bc84-10cb1f7d9f38”,
“name”: “RespondValidationError”
}
],
“connections”: {
“WebhookNewOrder”: {
“main”: [
[
{
“node”: “ValidateRequiredFields”,
“type”: “main”,
“index”: 0
}
]
]
},
“ValidateRequiredFields”: {
“main”: [
[
{
“node”: “RespondSuccess”,
“type”: “main”,
“index”: 0
}
],
[
{
“node”: “RespondValidationError”,
“type”: “main”,
“index”: 0
}
]
]
}
},
“pinData”: {},
“meta”: {
“templateCredsSetupCompleted”: true,
“instanceId”: “1b202188b62737e64678f469a8e86b98e8d2c2147255e95f1e4af4dc019b5e9d”
}
}

@Usman_Waheed , you can use ngrok.
Remember to update the webhook url after that

What is ngrok?

ngrok gives your n8n installation a public https subdomain

Thanks, but it will be another learning to spend time on. Isnt there any fix of the N8N academy tutorial/URL?

@Usman_Waheed if ngrok feels like too much, try localtunnel - single command, no account:

npx localtunnel --port 5678

It gives you a public HTTPS URL instantly. Paste it as your webhook base in n8n and the course exercise works. Keep the terminal open while you do the exercise, close it when done.

I am completely lost at: Paste it as your webhook base in n8n and the course exercise works.
From your npx command I got the URL (and the terminal is open): https://blue-deer-press.loca.lt

so where exactly I do put this URL, I dont see any ‘Base URL’ field, any where in the webhook node or any where in the excercize, or should I put this URL in the test page text box (Webhook Tester - n8n Academy | N8N102)

???

Hey @Usman_Waheed, to answer your last question directly, you don’t paste the localtunnel URL into the webhook node itself.

Here’s exactly what to do:

Step 1: In n8n, go to Settings → General and find the “Webhook URL” or “n8n URL” field. Replace whatever is there with your localtunnel URL: https://blue-deer-press.loca.lt

Step 2: Save, then go back to your WebhookNewOrder node and click “Copy Webhook URL” it should now show your localtunnel URL instead of localhost.

Step 3: Paste that copied webhook URL into the course test page at learn.app.n8n.cloud/webhook/course/n8n102/webhook-tester as the target URL.

Step 4: Make sure your workflow is in “Listen for test event” mode click the trigger node and hit that button before hitting send on the test page.

One heads up with localtunnel: it sometimes shows a browser warning page on first visit. If requests aren’t going through, open https://blue-deer-press.loca.lt in your browser first and accept the prompt, then retry the test.

There is no such settings anywhere, I clicked all of them in this screenshot but nowhere it says any Webhook URL settings, there is no ‘General’ settings either. See this screenshot

I tried with gemini to guide me steps on ngrok, it was short and easy doing, thank you my test is passed enabling me to proceed with course.

How did you resolve it with ngrok ?

Gemini sent these steps, and I followed them, and it solved the issue:
To get that https:// URL and pass this Academy module, you need to use a free third-party tunneling service. The industry standard (and what n8n now officially recommends for local development) is ngrok.

Here is the quickest way to bypass this roadblock:

Step 1: Keep n8n Running

Leave your current command prompt window open. Your n8n instance is running perfectly on http://localhost:5678, and we need it to stay awake to receive the data.

Step 2: Set up ngrok

We are going to create a secure, temporary bridge from the public internet directly to your local port 5678.

  1. Go to ngrok.com and create a free account.

  2. Download the Windows version and extract the .exe file.

  3. Open a new command prompt in the folder where you extracted ngrok.

  4. Connect your account by pasting the auth command shown on your ngrok dashboard (it looks like this): ngrok config add-authtoken YOUR_AUTHTOKEN_HERE

  5. Start the tunnel pointing to n8n’s port: ngrok http 5678

Step 3: Construct Your New Webhook URL

When you run that command, ngrok will output a screen with a Forwarding URL that looks something like https://1234-abcd.ngrok-free.app.

You do not need n8n’s UI to physically display this URL for the test to work. You just need to combine your new secure ngrok domain with your webhook’s specific path.

  • Your ngrok domain: https://1234-abcd.ngrok-free.app (replace this with your actual ngrok URL)

  • Your webhook path: /webhook/course/n8n102/new-order

  • Your FINAL Production URL: https://1234-abcd.ngrok-free.app/webhook/course/n8n102/new-order

Step 4: Pass the Academy Assessment

  1. Go back to the n8n Academy Webhook Tester.

  2. Paste your newly constructed FINAL Production URL (the one starting with https://) into the “Your Webhook URL” box.

  3. Make sure your Webhook node in n8n is set to Listen for test event.

  4. Click Run Step 1 Tests on the Academy page.

The Academy tester will successfully validate the HTTPS link, send the payload through ngrok, and ngrok will hand-deliver it right into your local n8n workflow!

Note: If you actually wanted n8n to display this new URL inside the Webhook node’s UI, you would have to stop n8n and restart it while passing an environment variable (e.g., set WEBHOOK_URL=https://your-ngrok-url.app && npx n8n start). However, for the sake of passing this Academy test, manually pasting the combined ngrok URL into the tester is much faster and accomplishes the exact same thing.