Describe the problem/error/question
I'm fetching data from the ClickUp API and when I attempt to use the data it is overwritten with the first item's value before I even get to the next node.
Only the value I'm trying to update is changed. All other values seem to be the same.
I've attempted to remove splits and anything in between and it still gets overwritten.
The specific workflow section has been copied to a new workflow and it is still the same experience. No other nodes to complicate this.
See video of the data being overwritten in real time, twice.
What is the error message (if any)?
No Errors.
The nodes run, but the data is overwritten before it even gets to the last node to Upsert tables.
Please share your workflow/screenshots/recording
https://drive.google.com/file/d/1S457gq1J0b995ar0QAJhi8dcNImlHr4a/view?usp=sharing
(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)
⚠️ WARNING ⚠️ If you have sensitive data in your workflow (like API keys), please remove it before sharing.
{
"nodes": [
{
"parameters": {
"authentication": "oAuth2",
"resource": "list",
"operation": "getAll",
"team": "18028349",
"space": "90113933303",
"folder": "90117168043",
"filters": {}
},
"type": "n8n-nodes-base.clickUp",
"typeVersion": 1,
"position": [
544,
208
],
"id": "b8c092bb-3332-4b24-b68d-789027a32a4d",
"name": "Get many lists1",
"executeOnce": true,
"credentials": {
"clickUpOAuth2Api": {
"id": "KaxIjXrF9mGobeAG",
"name": "ClickUp account"
}
}
},
{
"parameters": {
"operation": "get",
"dataTableId": {
"__rl": true,
"value": "z1HfHUA6tctvw6O8",
"mode": "list",
"cachedResultName": "R2S",
"cachedResultUrl": "/projects/jd7x5R1seVpIcnfG/datatables/z1HfHUA6tctvw6O8"
}
},
"type": "n8n-nodes-base.dataTable",
"typeVersion": 1,
"position": [
112,
208
],
"id": "1ae48b75-7ed6-4a48-ad9e-ce15fc441435",
"name": "Get row(s)",
"alwaysOutputData": true,
"executeOnce": true
},
{
"parameters": {
"operation": "upsert",
"dataTableId": {
"__rl": true,
"value": "z1HfHUA6tctvw6O8",
"mode": "list",
"cachedResultName": "R2S",
"cachedResultUrl": "/projects/jd7x5R1seVpIcnfG/datatables/z1HfHUA6tctvw6O8"
},
"matchType": "allConditions",
"filters": {
"conditions": [
{
"keyName": "list",
"keyValue": "={{ $json.name }}"
}
]
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"wk": "={{ $if($json.name = $('Get row(s)').item.json.list, $('Code in JavaScript1').item.json.newWk, 1) }}"
},
"matchingColumns": [],
"schema": [
{
"id": "wk",
"displayName": "wk",
"required": false,
"defaultMatch": false,
"display": true,
"type": "number",
"readOnly": false,
"removed": false
},
{
"id": "list",
"displayName": "list",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"readOnly": false,
"removed": true
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.dataTable",
"typeVersion": 1,
"position": [
768,
208
],
"id": "263b3604-f0d2-40b9-b53c-a16f0c63e282",
"name": "Upsert row(s)",
"executeOnce": false
},
{
"parameters": {
"jsCode": "// Get the data returned by the \"Get row(s)\" node.\n// This node is at index 2 (0: Split Out, 1: Get many lists1, 2: Get row(s)).\nconst existingRow = $items('Get row(s)');\n\nlet newWkValue;\n\n// Check if the \"Get row(s)\" node returned any items (i.e., the list exists).\nif (existingRow.length > 0) {\n // If it exists, get the current 'wk' value from the found row (item 0)\n // and safely convert it to a number before adding 1.\n const currentWk = existingRow[0].json.wk;\n \n // Use Number() to safely handle null/undefined and treat it as 0 if needed,\n // although based on our previous attempts, it should be a number now.\n newWkValue = Number(currentWk) + 1;\n} else {\n // If no row was found, this is a new list, so start the counter at 1.\n newWkValue = 1;\n}\n\n// Add the calculated 'newWk' value to the current item's JSON,\n// so it can be easily used in the following Upsert node.\n$input.item.json.newWk = newWkValue;\n\n// Pass the modified item to the next node.\nreturn $input.item;"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
336,
208
],
"id": "933cf639-b563-4181-a79d-cdd07fcfd6bf",
"name": "Code in JavaScript1"
}
],
"connections": {
"Get many lists1": {
"main": [
[
{
"node": "Upsert row(s)",
"type": "main",
"index": 0
}
]
]
},
"Get row(s)": {
"main": [
[
{
"node": "Code in JavaScript1",
"type": "main",
"index": 0
}
]
]
},
"Code in JavaScript1": {
"main": [
[
{
"node": "Get many lists1",
"type": "main",
"index": 0
}
]
]
}
},
"pinData": {},
"meta": {
"instanceId": "1baf74879e88a1f2432741b236a8333b23e43b52fdd2b11d56bf0fd0005f1628"
}
}
Share the output returned by the last node
The output of the PREVIOUS node gets changed before the next node is executed.
The IDs are the same but the NAMES, which we're checking and storing, are being changed to the first item's name.
Before:
[
{
"id": "901112192504",
"name": "STRONG START EARLY CHILD CARE DATA",
"orderindex": 0,
"status": null,
"priority": null,
"assignee": null,
"task_count": 2,
"due_date": null,
"start_date": null,
"folder": {
"id": "90117168043",
"name": "DATA REPO",
"hidden": false,
"access": true
},
"space": {
"id": "90113933303",
"name": "Road to Scale™",
"access": true
},
"archived": false,
"override_statuses": null,
"permission_level": "create"
},
{
"id": "901112295428",
"name": "NEW DUPE",
"orderindex": 2,
"status": null,
"priority": null,
"assignee": null,
"task_count": 2,
"due_date": null,
"start_date": null,
"folder": {
"id": "90117168043",
"name": "DATA REPO",
"hidden": false,
"access": true
},
"space": {
"id": "90113933303",
"name": "Road to Scale™",
"access": true
},
"archived": false,
"override_statuses": false,
"permission_level": "create"
}
]
After:
[
{
"id": "901112192504",
"name": "STRONG START EARLY CHILD CARE DATA",
"orderindex": 0,
"status": null,
"priority": null,
"assignee": null,
"task_count": 2,
"due_date": null,
"start_date": null,
"folder": {
"id": "90117168043",
"name": "DATA REPO",
"hidden": false,
"access": true
},
"space": {
"id": "90113933303",
"name": "Road to Scale™",
"access": true
},
"archived": false,
"override_statuses": null,
"permission_level": "create"
},
{
"id": "901112295428",
"name": "STRONG START EARLY CHILD CARE DATA",
"orderindex": 2,
"status": null,
"priority": null,
"assignee": null,
"task_count": 2,
"due_date": null,
"start_date": null,
"folder": {
"id": "90117168043",
"name": "DATA REPO",
"hidden": false,
"access": true
},
"space": {
"id": "90113933303",
"name": "Road to Scale™",
"access": true
},
"archived": false,
"override_statuses": false,
"permission_level": "create"
}
]
Debug info
core
- n8nVersion: 1.117.2
- platform: docker (cloud)
- nodeJsVersion: 22.18.0
- nodeEnv: production
- database: sqlite
- executionMode: regular
- concurrency: 5
- license: community
storage
- success: all
- error: all
- progress: false
- manual: true
- binaryMode: filesystem
pruning
- enabled: true
- maxAge: 168 hours
- maxCount: 2500 executions
client
- userAgent: mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/141.0.0.0 safari/537.36
- isTouchDevice: false
Generated at: 2025-10-27T18:52:54.151Z}
Describe the problem/error/question
I'm fetching data from the ClickUp API and when I attempt to use the data it is overwritten with the first item's value before I even get to the next node.
Only the value I'm trying to update is changed. All other values seem to be the same.
I've attempted to remove splits and anything in between and it still gets overwritten.
The specific workflow section has been copied to a new workflow and it is still the same experience. No other nodes to complicate this.
See video of the data being overwritten in real time, twice.
What is the error message (if any)?
No Errors.
The nodes run, but the data is overwritten before it even gets to the last node to Upsert tables.
Please share your workflow/screenshots/recording
https://drive.google.com/file/d/1S457gq1J0b995ar0QAJhi8dcNImlHr4a/view?usp=sharing
Share the output returned by the last node
The output of the PREVIOUS node gets changed before the next node is executed.
The IDs are the same but the NAMES, which we're checking and storing, are being changed to the first item's name.
Before:
After:
Debug info
core
storage
pruning
client
Generated at: 2025-10-27T18:52:54.151Z}