I self-hosted n8n and in webhook production URL is http instead of https. In test mode it’s https. Why so? In cloud it’s https. It also auto switches to test mode even though I enable production, and http can’t be connected to Webflow, so I can’t make it work
It looks like your topic is missing some important information. Could you provide the following if applicable.
- n8n version:
- Database (default: SQLite):
- n8n EXECUTIONS_PROCESS setting (default: own, main):
- Running n8n via (Docker, npm, n8n cloud, desktop app):
- Operating system:
Hi @adslab360 ,
What version of n8n are you on?
In fact, could you share your setup info?
- n8n version:
- Database (default: SQLite):
- n8n EXECUTIONS_PROCESS setting (default: own, main):
- Running n8n via (Docker, npm, n8n cloud, desktop app):
- Operating system:
Could you also share the workflow you’re having issues with?
If you could share a small video showcasing the problem, that would be amazing
[email protected], self-hosted on n8n.adslab360.io
Here is the workflow: { "name": "Roofing Work Experts: Form Submission 2", "nodes": [ { "parameters": { "content": "Currently, it's setup to call back immmediately after form submission if within workhours, if not - wait till 3pm EST (convientient both for West and East cost) next day.\n\nScheduling would be better though, can add additional emails and sms.\n\nAdd status of the call, setup follow up call flow if call wasn't answered.", "height": 220, "width": 392, "color": 7 }, "id": "d550d5b3-4383-4214-a5b1-79d5402b29e5", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ 1660, 80 ] }, { "parameters": { "conditions": { "options": { "caseSensitive": true, "leftValue": "", "typeValidation": "loose", "version": 2 }, "conditions": [ { "id": "bf4094ef-5b0e-4292-abfa-05cee41b6fec", "leftValue": "={{ $json.proceed }}", "rightValue": "true", "operator": { "type": "string", "operation": "equals", "name": "filter.operator.equals" } } ], "combinator": "and" }, "looseTypeValidation": true, "options": {} }, "id": "4732cab8-7f42-4505-9d46-1c43878f4355", "name": "If", "type": "n8n-nodes-base.if", "typeVersion": 2.2, "position": [ 2020, 380 ] }, { "parameters": {}, "id": "4b8baa6e-b5c3-4d7c-91e2-4ac3a90c69f5", "name": "Wait 5 sec", "type": "n8n-nodes-base.wait", "typeVersion": 1.1, "position": [ 1600, 380 ], "webhookId": "31319ef1-fd61-4198-8bd2-ee84ac40ad9b" }, { "parameters": { "amount": 30, "unit": "minutes" }, "id": "759b7350-ba45-4601-aae2-8cdedbfdacdd", "name": "Wait 30 min", "type": "n8n-nodes-base.wait", "typeVersion": 1.1, "position": [ 2300, 480 ], "webhookId": "7a98aa50-e92a-4727-a34a-148a10f2888b" }, { "parameters": { "jsCode": "// Access the phone number field\nlet phoneNumber = $json.body.payload.data['Phone Number'];\n\n// Remove all non-numeric characters\nlet cleanedNumber = phoneNumber.replace(/\\D/g, '');\n\n// Check if the cleaned number has at least 10 digits (basic validation)\nif (cleanedNumber.length < 10) {\n throw new Error('Invalid phone number format');\n}\n\n// Add '+1' if the number has 10 digits (assuming it's a US number)\nlet formattedPhoneNumber;\nif (cleanedNumber.length === 10) {\n formattedPhoneNumber = '+1' + cleanedNumber;\n} else if (cleanedNumber.startsWith('1') && cleanedNumber.length === 11) {\n formattedPhoneNumber = '+' + cleanedNumber;\n} else if (cleanedNumber.startsWith('+')) {\n formattedPhoneNumber = cleanedNumber;\n} else {\n throw new Error('Unexpected phone number format');\n}\n\nreturn {\n formattedPhoneNumber: formattedPhoneNumber\n};\n" }, "id": "74ec5574-6569-4116-8aab-1a9aabac72c8", "name": "Format phone number", "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ 1200, 380 ] }, { "parameters": { "jsCode": "const now = new Date();\nconst estOffset = -5; // EST offset in hours\n\n// Convert current UTC time to EST\nlet currentHourEST = now.getUTCHours() + estOffset;\nconst currentMinute = now.getUTCMinutes();\n\n// Adjust for cases where the hour calculation may roll over midnight\nif (currentHourEST < 0) {\n currentHourEST += 24;\n} else if (currentHourEST >= 24) {\n currentHourEST -= 24;\n}\n\n// Define start and end hours for EST (07:00 - 19:00)\nconst startHour = 7;\nconst endHour = 19;\n\nif (currentHourEST >= startHour && currentHourEST < endHour) {\n // Within allowed time window\n return [{ json: { proceed: true } }];\n} else {\n // Outside allowed time window - calculate the next 3 PM EST\n let nextCallTime = new Date(now);\n\n if (currentHourEST >= endHour) {\n // If it's after 7 PM EST, set for 3 PM the next day\n nextCallTime.setDate(now.getDate() + 1); // Move to the next day\n }\n // Set time to 3:00 PM EST (15:00 - EST offset in UTC)\n nextCallTime.setUTCHours(15 - estOffset, 0, 0, 0);\n\n return [{ json: { proceed: false, waitUntil: nextCallTime.toISOString() } }];\n}\n" }, "id": "c0cf6c78-af23-4014-95a3-ba9db67aa00f", "name": "Check if offer is live", "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ 1820, 380 ] }, { "parameters": { "method": "POST", "url": "https://api.twilio.com/2010-04-01/Accounts/ACd79578bada37ff02fade421934632efb/Calls.json", "authentication": "predefinedCredentialType", "nodeCredentialType": "twilioApi", "sendBody": true, "contentType": "form-urlencoded", "bodyParameters": { "parameters": [ { "name": "To", "value": "={{ $('Format phone number').item.json.formattedPhoneNumber }}" }, { "name": "From", "value": "+15392523777" }, { "name": "Url", "value": "https://studio.twilio.com/v2/Flows/FW0065f5c8ca1258309bdf4df9dc456e96/Executions" } ] }, "options": {} }, "id": "63be57ce-d1be-48c0-a51e-fee1029b803f", "name": "Call", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [ 2300, 260 ], "credentials": { "twilioApi": { "id": "cbhmIRIJ9kaRE4XK", "name": "Twilio account" } } }, { "parameters": { "authentication": "airtableOAuth2Api", "operation": "create", "base": { "__rl": true, "value": "appkxWljGmAAbnNTV", "mode": "list", "cachedResultName": "Roofing Work Experts", "cachedResultUrl": "https://airtable.com/appkxWljGmAAbnNTV" }, "table": { "__rl": true, "value": "tblrrZbPOkJ5pKgVC", "mode": "list", "cachedResultName": "Form Leads", "cachedResultUrl": "https://airtable.com/appkxWljGmAAbnNTV/tblrrZbPOkJ5pKgVC" }, "columns": { "mappingMode": "defineBelow", "value": { "Email Address": "={{ $('Get form submission data from Webflow').item.json.body.payload.data.Email }}", "Last Name": "={{ $('Get form submission data from Webflow').item.json.body.payload.data['Last Name'] }}", "First Name": "={{ $('Get form submission data from Webflow').item.json.body.payload.data['First Name'] }}", "Phone Number": "={{ $json.formattedPhoneNumber }}", "TrustedForm Certificate": "={{ $('Get form submission data from Webflow').item.json.body.payload.data.xxTrustedFormCertUrl }}" }, "matchingColumns": [], "schema": [ { "id": "Email Address", "displayName": "Email Address", "required": false, "defaultMatch": false, "canBeUsedToMatch": true, "display": true, "type": "string", "readOnly": false, "removed": false }, { "id": "Phone Number", "displayName": "Phone Number", "required": false, "defaultMatch": false, "canBeUsedToMatch": true, "display": true, "type": "string", "readOnly": false, "removed": false }, { "id": "First Name", "displayName": "First Name", "required": false, "defaultMatch": false, "canBeUsedToMatch": true, "display": true, "type": "string", "readOnly": false, "removed": false }, { "id": "Last Name", "displayName": "Last Name", "required": false, "defaultMatch": false, "canBeUsedToMatch": true, "display": true, "type": "string", "readOnly": false, "removed": false }, { "id": "TrustedForm Certificate", "displayName": "TrustedForm Certificate", "required": false, "defaultMatch": false, "canBeUsedToMatch": true, "display": true, "type": "string", "readOnly": false, "removed": false }, { "id": "Created Time", "displayName": "Created Time", "required": false, "defaultMatch": false, "canBeUsedToMatch": true, "display": true, "type": "string", "readOnly": true, "removed": true } ] }, "options": {} }, "id": "a9b8675b-889a-41db-8bac-e87b98471eb9", "name": "Add data to Airtable", "type": "n8n-nodes-base.airtable", "typeVersion": 2.1, "position": [ 1400, 380 ], "credentials": { "airtableOAuth2Api": { "id": "Md5aY40YjsjjVB7J", "name": "Airtable" } } }, { "parameters": { "httpMethod": "POST", "path": "=", "options": {} }, "id": "3168d1ae-5a97-4b43-a1bb-12c367acfbe1", "name": "Get form submission data from Webflow", "type": "n8n-nodes-base.webhook", "typeVersion": 2, "position": [ 980, 380 ], "webhookId": "eb13c304-3200-4edf-bfaf-0c82f5044376" } ], "pinData": {}, "connections": { "If": { "main": [ [ { "node": "Call", "type": "main", "index": 0 } ], [ { "node": "Wait 30 min", "type": "main", "index": 0 } ] ] }, "Wait 5 sec": { "main": [ [ { "node": "Check if offer is live", "type": "main", "index": 0 } ] ] }, "Wait 30 min": { "main": [ [ { "node": "Check if offer is live", "type": "main", "index": 0 } ] ] }, "Format phone number": { "main": [ [ { "node": "Add data to Airtable", "type": "main", "index": 0 } ] ] }, "Check if offer is live": { "main": [ [ { "node": "If", "type": "main", "index": 0 } ] ] }, "Add data to Airtable": { "main": [ [ { "node": "Wait 5 sec", "type": "main", "index": 0 } ] ] }, "Get form submission data from Webflow": { "main": [ [ { "node": "Format phone number", "type": "main", "index": 0 } ] ] } }, "active": false, "settings": { "executionOrder": "v1" }, "versionId": "b5b1e958-8ab5-4653-a8fb-c81e6fc3d100", "meta": { "templateCredsSetupCompleted": true, "instanceId": "4238bb3dd8ad45c891932178f20d9c7b47b75fa1a2456debcb5e2856f7d6a86e" }, "id": "TWaeml3U5PhbavuQ", "tags": [] }
When I open production mode on my self-hosted version, it’s ‘http’ that I can’t add to Webflow. Now it’s set to active, but isn’t gathering any data, vs when I enable listening