Can't get Google drive file ID in 'Schema'

Normally the Google Drive node for downloading files provides a schema in the output that includes the file ID, but for some reason I’m not getting it. My workflow is below.

Here’s what I’m trying to do (time stamped): https://www.youtube.com/watch?v=75lwkzFxyLs

{“nodes”: [{“parameters”: {“operation”: “download”,“fileId”: {“__rl”: true,“value”: “1jBtt3pwi7ecPL5fRZ2kN1ODGLWf0k6LF”,“mode”: “list”,“cachedResultName”: “Acute Knee Pain.pdf”,“cachedResultUrl”: “https://drive.google.com/file/d/1jBtt3pwi7ecPL5fRZ2kN1ODGLWf0k6LF/view?usp=drivesdk”},“options”: {}},“type”: “n8n-nodes-base.googleDrive”,“typeVersion”: 3,“position”: [-1088,448],“id”: “7d15c1e3-217e-4c0e-8983-3491a1e626f1”,“name”: “Download file”,“alwaysOutputData”: true,“notesInFlow”: false,“credentials”: {“googleDriveOAuth2Api”: {“id”: “zRXbzB2Il87IjtjJ”,“name”: “[email protected]”}}}],“connections”: {“Download file”: {“main”: []}},“pinData”: {},“meta”: {“templateCredsSetupCompleted”: true,“instanceId”: “d60151b60c05eba4bff9a32c849a6100ac2ef33b4759cc7a5e14baa0ed020c9d”}}

Hey @maud97,
welcome to the n8n community!

As far as I know, the Gdrive Download node does only provide the binary file incl. name and no JSON data.

But to download a file, you already have to know the id anyways from a prior node, right?
So you can access the id form the previous node or merge the output of the download node and the previous node.

To receive a more detailed answer, please share your complete workflow here and what you’d like to achieve.

Do you see it below? I’m having a hard time sharing the workflow code.

If that doesn’t work, the Youtube link in my post is timestamped to where the user there is someone getting the file ID from the note itself. Any idea what I am doing wrong?

@salmansolutions is right: the Google Drive “Download” operation is primarily a binary-return node. In many cases it will only output binary (with filename/mimeType metadata inside the binary object), not a rich JSON schema that repeats the file id.

That’s why you’re not seeing fileId “in the output” like in some older examples/videos.

What’s happening in your workflow

  • Your Download file node is using a static fileId in the node parameter UI (value: "1jBtt3p...").

  • When a node parameter is static like that, n8n doesn’t automatically inject it into the item JSON output. It just downloads the file and returns the binary.

The clean fix:

If your goal is “get fileId from Supabase → download file”, your node order should be:

  1. Supabase (Get many rows) → returns a row containing google_drive_file_id

  2. Google Drive (Download) → set File ID to an expression, e.g.: {{$json.google_drive_file_id}}

Now the file id is already in the incoming JSON item, and you keep it alongside the binary.

If you must keep your current order

Just add the id back into JSON right after the download.

Option A: Set node (simplest)
Add a Set node after Download file:

  • Add field: fileId

  • Value: {{$node[“Download file”].parameters.fileId.value}}

This keeps your binary and adds the id into $json.

Option B: Code node (explicit)
(“Run once for each item”)

return items.map(item => {
  item.json = {
    ...item.json,
    fileId: $node["Download file"].parameters.fileId.value,
  };
  return item;
});

One more thing I noticed in your Supabase node

Your filter has:

"keyValue": "="

That looks like a placeholder, not a real file id value. If you intended “match the file id”, it should be the actual id (or an expression pointing to it).


Summary: The Download node isn’t “missing” the file id — it just doesn’t echo parameter values into output JSON. Either query Supabase first then download, or add fileId back with a Set/Code node.