Help with "HTTP Request" node for uploading a binary file to Google Drive

Hello everyone,

I need some help with an HTTP Request node I’m using to upload a binary file (.docx) to Google Drive and convert it. I’m getting the following error and haven’t been able to figure it out.

Problem Description

The workflow is as follows:

  1. A Read Binary File node reads a .docx file.
  2. A Set node creates a JSON object with baseFileName and folderid.
  3. An HTTP Request node attempts to make a POST request to the Google Drive API.
    The error I am receiving is:
The item has no binary field '[object Object]' [item 0]
Check that the parameter where you specified the input binary field name is correct, and that it matches a field in the binary input.

It seems the HTTP Request node isn’t recognizing the binary input coming from the Read Binary File node. I’m trying to reference the binary data with ={{$binary.data}}, but it’s not working.

HTTP Request Node JSON

Here is the JSON for my HTTP Request node. I would appreciate any help in identifying what’s wrong.

{
  "parameters": {
    "method": "POST",
    "url": "https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart&convert=true",
    "authentication": "predefinedCredentialType",
    "nodeCredentialType": "googleDriveOAuth2Api",
    "sendBody": true,
    "contentType": "multipart-form-data",
    "bodyParameters": {
      "parameters": [
        {
          "name": "metadata",
          "value": "={ \"name\": \"{{ $json.baseFileName }}.doc\", \"mimeType\": \"application/vnd.google-apps.document\", \"parents\": [\"{{ $json.folderid }}\"]}"
        },
        {
          "parameterType": "formBinaryData",
          "name": "file",
          "inputDataFieldName": "={{$binary.data}}"
        }
      ]
    },
    "options": {}
  },
  "type": "n8n-nodes-base.httpRequest",
  "typeVersion": 4.2,
  "position": [
    448,
    112
  ],
  "id": "accdf3a1-3159-4633-87ac-72fb25e2b97f",
  "name": "HTTP Request",
  "credentials": {
    "googleDriveOAuth2Api": {
      "id": "pXoyLTwz2vw7YA2U",
      "name": "Google Drive account"
    }
  }
}

Thank you in advance for any help.

Describe the problem/error/question

What is the error message (if any)?

Please share your workflow

Share the output returned by the last node

The item has no binary field ‘[object Object]’ [item 0]
Check that the parameter where you specified the input binary field name is correct, and that it matches a field in the binary input.

Information on your n8n setup

  • n8n version:
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app):
  • Operating system:

Hi @dchavezf ,

Welcome to the community! Can you confirm if you’re downloading the file and converting it? In your workflow we couldn’t see a Read Binary File node —only endpoints for uploading.Also to get the binary file from http node, scroll down to the bottom and click on add options → set Response → Response format to “File.”

Hi there,

Thank you so much for the quick response and for the welcome!

You were right to point out the missing Read Binary File node. My apologies—I left it out of the original post for brevity. The full workflow is a Read Binary File node followed by the HTTP Request node.

I’ve attached a screenshot of the Read Binary File node’s output. It shows that the binary data is indeed being passed as an input to the HTTP Request node, and the binary field is named data.

Given this, I’m still getting the same error:

The item has no binary field '[object Object]' [item 0]
Check that the parameter where you specified the input binary field name is correct, and that it matches a field in the binary input.

I’m referencing the binary data with inputDataFieldName set to data in the HTTP Request node’s JSON.

Could you please help me understand what I might still be missing? Is there a different way to reference the binary data from the previous node?

Thanks again for your help

Hey @dchavezf

Try mapping data directly in the field (not ={{$binary.data}}). You’re also using the v2 upload — I recommend switching to Google Drive v3; it’s more reliable. Below I’ll share a workflow example to show the setup.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.