RECORD_NOT_FOUND when updating a record using ID with n8n and NocoDB

Hey everyone, I could use some help with an integration using n8n and NocoDB.

I’ve built a workflow in n8n that performs a GET request on a table, filters records by a specific status, then executes an action. After that, it needs to update the status of those records.

I’m using the native NocoDB node in n8n with the Update operation, but it doesn’t seem to expose the row ID field needed to send the update.

I also tried doing it via a direct API request using the HTTP Request node, but no luck there either — I still get a RECORD_NOT_FOUND error.

Has anyone run into this issue before?
Any idea how to properly update a record by its ID?

Thanks in advance! :folded_hands:

Tried update record using N8n for a simple case.

Output from the code block was an array of records. Hard-wired for this example

On NocoDB node, I had opted for auto mapping –

I am dumping my workflow JSON here

{
  "name": "My workflow",
  "nodes": [
    {
      "parameters": {},
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        -320,
        -20
      ],
      "id": "e72305e5-65c9-4eea-b1b0-ff5df30f8412",
      "name": "When clicking ‘Test workflow’"
    },
    {
      "parameters": {
        "authentication": "nocoDbApiToken",
        "operation": "update",
        "workspaceId": "w3wghe3o",
        "projectId": "pfygd3hrjf3uoxr",
        "table": "mcchebq6n6h7rem",
        "dataToSend": "autoMapInputData"
      },
      "type": "n8n-nodes-base.nocoDb",
      "typeVersion": 3,
      "position": [
        140,
        -20
      ],
      "id": "21a20e3e-aa78-4026-a112-794fbd67715b",
      "name": "NocoDB",
      "credentials": {
        "nocoDbApiToken": {
          "id": "mJefHGiUexyOYQok",
          "name": "staging temporary"
        }
      }
    },
    {
      "parameters": {
        "jsCode": "\nreturn [{\n  Id: 1,\n  Title: \"Raju\"\n}]"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        -100,
        -20
      ],
      "id": "eae472b6-5a0b-4795-9fa6-aa355bc0c336",
      "name": "Code"
    }
  ],
  "pinData": {},
  "connections": {
    "When clicking ‘Test workflow’": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code": {
      "main": [
        [
          {
            "node": "NocoDB",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "2a859b76-138f-4a00-8936-9c102b1d2088",
  "meta": {
    "instanceId": "b63b3f317ea5f7bef258bc628400002263af708c9426bbe38724f00a609a51e3"
  },
  "id": "1QqbhnrTf0OzQXhH",
  "tags": []
}

If you still facing issue, let me know!

I have the same issue.

I think it might be related to the fact I have set another column as PK.
Can you confirm if you have another column as PK ?

Thanks !

Thanks for the guidance!

It took me a bit to fully understand the behavior, but with the help of a GPT assistant I was able to get it working.

The key was realizing that when using the “Auto-Map Input Data to Columns” option in the NocoDB Update node, the node automatically detects the row to update based on the presence of the primary key (Id in my case) in the incoming JSON.

So, I used a Set node to construct the payload with both the Id and the target column (Status) that I wanted to update. Once that structure was passed into the Update node, everything worked as expected.

Thanks again — this clarification really helped streamline the integration!

1 Like