Hi @workflowsy,
Here’s the JSON output for that node:
[
{
"error": {
"message": "403 - \"<html>\\r\\n<head><title>403 Forbidden</title></head>\\r\\n<body>\\r\\n<center><h1>403 Forbidden</h1></center>\\r\\n<hr><center>cloudflare</center>\\r\\n</body>\\r\\n</html>\\r\\n\"",
"name": "AxiosError",
"stack": "AxiosError: Request failed with status code 403\n at settle (/usr/local/lib/node_modules/n8n/node_modules/axios/lib/core/settle.js:19:12)\n at RedirectableRequest.handleResponse (/usr/local/lib/node_modules/n8n/node_modules/axios/lib/adapters/http.js:537:9)\n at RedirectableRequest.emit (node:events:529:35)\n at RedirectableRequest.emit (node:domain:489:12)\n at RedirectableRequest._processResponse (/usr/local/lib/node_modules/n8n/node_modules/follow-redirects/index.js:398:10)\n at ClientRequest.RedirectableRequest._onNativeResponse (/usr/local/lib/node_modules/n8n/node_modules/follow-redirects/index.js:91:12)\n at Object.onceWrapper (node:events:632:26)\n at ClientRequest.emit (node:events:529:35)\n at ClientRequest.emit (node:domain:489:12)\n at HTTPParser.parserOnIncomingClient (node:_http_client:700:27)\n at HTTPParser.parserOnHeadersComplete (node:_http_common:119:17)\n at TLSSocket.socketOnData (node:_http_client:541:22)\n at TLSSocket.emit (node:events:517:28)\n at TLSSocket.emit (node:domain:489:12)\n at addChunk (node:internal/streams/readable:368:12)\n at readableAddChunk (node:internal/streams/readable:341:9)\n at TLSSocket.Readable.push (node:internal/streams/readable:278:10)\n at TLSWrap.onStreamRead (node:internal/stream_base_commons:190:23)\n at TLSWrap.callbackTrampoline (node:internal/async_hooks:128:17)\n at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/axios/lib/core/Axios.js:45:41)\n at processTicksAndRejections (node:internal/process/task_queues:95:5)\n at requestFn (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/NodeExecuteFunctions.js:551:33)\n at proxyRequestToAxios (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/NodeExecuteFunctions.js:554:26)\n at Object.request (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/NodeExecuteFunctions.js:1917:50)",
"code": "ERR_BAD_REQUEST",
"status": 403
}
}
]
And here’s a sample of the flow that I’m using for this:
{
"meta": {
"templateCredsSetupCompleted": true,
"instanceId": "cec86eeddef9ce9510df5fa3d831594fc68385b4da5fcc5a2c862e33863b9ffe"
},
"nodes": [
{
"parameters": {
"operation": "appendOrUpdate",
"documentId": {
"__rl": true,
"value": "",
"mode": "list",
"cachedResultName": "Website Clarity Analyzer",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d//edit?usp=drivesdk"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Sheet1",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d//edit#gid=0"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"URL": "={{ $json.data['Website Address'] }}",
"Email": "={{ $json.data['Email Address'] }}",
"Name": "={{ $json.data.Name }}",
"_id": "={{ $json._id }}",
"Source": "={{ $json.data.utm_source }}",
"Medium": "={{ $json.data.utm_medium }}",
"Campaign": "={{ $json.data.utm_campaign }}",
"Date": "={{ $json.d }}"
},
"matchingColumns": [
"_id"
],
"schema": [
{
"id": "Date",
"displayName": "Date",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "_id",
"displayName": "_id",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "Name",
"displayName": "Name",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "Email",
"displayName": "Email",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "URL",
"displayName": "URL",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "Source",
"displayName": "Source",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "Medium",
"displayName": "Medium",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "Campaign",
"displayName": "Campaign",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "Slug",
"displayName": "Slug",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "Scores",
"displayName": "Scores",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
}
]
},
"options": {}
},
"id": "",
"name": "Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4,
"position": [
560,
500
],
"alwaysOutputData": true,
"credentials": {
"googleSheetsOAuth2Api": {
"id": "",
"name": "Google Sheets account"
}
}
},
{
"parameters": {
"authentication": "oAuth2",
"site": "65424675d0dca456228f1713"
},
"id": "",
"name": "Webflow Trigger",
"type": "n8n-nodes-base.webflowTrigger",
"typeVersion": 1,
"position": [
380,
500
],
"webhookId": "",
"credentials": {
"webflowOAuth2Api": {
"id": ",
"name": "Webflow account 2"
}
}
},
{
"parameters": {
"jsCode": "return items.map(item => {\n if (item.json.URL) {\n let url = item.json.URL; // Corrected to 'URL'\n // 'www.' in the URL causes cloudflare 403 error\n url = url.replace('www.', '');\n if (!url.startsWith('http://') && !url.startsWith('https://')) {\n url = 'https://' + url;\n }\n return { json: { ...item.json, URL: url } }; // Updated to 'URL'\n } else {\n // If URL is not provided, return the item as is\n return { json: item.json };\n }\n});\n"
},
"id": "fef9970f-4f86-4a49-b924-ed1b24203dc9",
"name": "Code",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
780,
700
]
},
{
"parameters": {
"url": "={{ $json.URL }}",
"options": {}
},
"id": "",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
960,
700
],
"retryOnFail": true,
"alwaysOutputData": false,
"onError": "continueRegularOutput"
}
],
"connections": {
"Google Sheets": {
"main": [
[
{
"node": "Code",
"type": "main",
"index": 0
}
]
]
},
"Webflow Trigger": {
"main": [
[
{
"node": "Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Code": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
}
},
"pinData": {}
}