Hello, for a workflow n8n has issues retrieving data from mynairtable base. I don’t understand why because the workflow is able to create new records. I gave all the permissions available. The table is now empty but I also tried with data in it. The error for retrieving data is:
Forbidden - perhaps check your credentials? Invalid permissions, or the requested model was not found. Check that both your user and your token have the required permissions, and that the model names and/or ids are correct.
{ “errorMessage”: “Forbidden - perhaps check your credentials?”, “errorDescription”: “Invalid permissions, or the requested model was not found. Check that both your user and your token have the required permissions, and that the model names and/or ids are correct.”, “errorDetails”: { “rawErrorMessage”: [ “403 - {"error":{"type":"INVALID_PERMISSIONS_OR_MODEL_NOT_FOUND","message":"Invalid permissions, or the requested model was not found. Check that both your user and your token have the required permissions, and that the model names and/or ids are correct."}}” ], “httpCode”: “403” }, “n8nDetails”: { “nodeName”: “Get LinkedIn Comp. URL”, “nodeType”: “n8n-nodes-base.airtable”, “nodeVersion”: 2.1, “resource”: “record”, “operation”: “get”, “itemIndex”: 0, “time”: “12/03/2025, 12:31:16”, “n8nVersion”: “1.81.4 (Cloud)”, “binaryDataMode”: “filesystem”, “stackTrace”: [ “NodeApiError: Forbidden - perhaps check your credentials?”, " at ExecuteContext.requestWithAuthentication (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/execution-engine/node-execution-context/utils/request-helper-functions.js:991:19)“, " at processTicksAndRejections (node:internal/process/task_queues:95:5)”, " at ExecuteContext.requestWithAuthentication (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/execution-engine/node-execution-context/utils/request-helper-functions.js:1147:20)“, " at ExecuteContext.apiRequest (/usr/local/lib/node_modules/n8n/node_modules/n8n-nodes-base/dist/nodes/Airtable/v2/transport/index.js:27:12)”, " at ExecuteContext.execute (/usr/local/lib/node_modules/n8n/node_modules/n8n-nodes-base/dist/nodes/Airtable/v2/actions/record/get.operation.js:53:34)“, " at ExecuteContext.router (/usr/local/lib/node_modules/n8n/node_modules/n8n-nodes-base/dist/nodes/Airtable/v2/actions/router.js:58:30)”, " at ExecuteContext.execute (/usr/local/lib/node_modules/n8n/node_modules/n8n-nodes-base/dist/nodes/Airtable/v2/AirtableV2.node.js:21:16)“, " at WorkflowExecute.runNode (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/execution-engine/workflow-execute.js:660:19)”, " at /usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/execution-engine/workflow-execute.js:891:51", " at /usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/execution-engine/workflow-execute.js:1224:20" ] } }
Can you tell me where I would normally get the right record ID? Because that might be it. I got the workflow by downloading the JSON file from someone else.
I believe how this is implemented in n8n is wrong.
Because:
It forces you to retrieve records by ID (a GET Request only has the option to find records by “Record ID”
but record IDs in Airtable are generated; they are surrogate keys. As a DB designer you don’t know what they are unless you already found the record and also check that column.
What the n8n Airtable integration should allow is look up a record by … (stating the obvious) any PK field.
Airtable calls them “Primary Field”, not Primary Key.
And that is currently not possible (well, unless you use the HTTP GET Node instead of the Airtable node … but why then have a Airtable Node n8n…?).
So the wy I would suggest to implement it is after the Table selection, allow users to select the field by which they wish to retrieve records. (not even necessarily PK fields).
The current Implementation where you can only search by. record ID that you don’t know seems useless.