AutomationFlowsGeneral › Auto Convert PDF to HTML in Google Drive

Auto Convert PDF to HTML in Google Drive

Original n8n title: Automated PDF to HTML Conversion

Automated PDF to HTML Conversion. Uses googleDriveTrigger, httpRequest, googleDrive, stickyNote. Event-driven trigger; 7 nodes.

Event trigger★★★★☆ complexity7 nodesGoogle Drive TriggerHTTP RequestGoogle Drive
General Trigger: Event Nodes: 7 Complexity: ★★★★☆ Added:

This workflow follows the Google Drive → Google Drive Trigger recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "3McL3itHTso0Cy10",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Automated PDF to HTML Conversion",
  "tags": [],
  "nodes": [
    {
      "id": "43950636-79d1-43c3-b5a1-44ace016257d",
      "name": "Google Drive Trigger",
      "type": "n8n-nodes-base.googleDriveTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {
        "event": "fileCreated",
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "triggerOn": "specificFolder",
        "folderToWatch": {
          "__rl": true,
          "mode": "url",
          "value": ""
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b5e1c616-a809-4e38-a1dd-0f91123bd846",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        220,
        0
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "4fd733d3-d393-4aea-bc25-c1e8bda32b54",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.mimeType }}",
              "rightValue": "application/pdf"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "d13a2481-9c21-43f0-beb8-1881b6a6843b",
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        480,
        -20
      ],
      "parameters": {
        "url": "https://api.pdf.co/v1/pdf/convert/to/html",
        "method": "POST",
        "options": {
          "redirect": {
            "redirect": {}
          }
        },
        "sendBody": true,
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "url",
              "value": "={{ $json.webViewLink }}"
            },
            {
              "name": "inline",
              "value": "true"
            },
            {
              "name": "async",
              "value": false
            },
            {
              "name": "unwrap"
            },
            {
              "name": "pages",
              "value": "0-"
            },
            {
              "name": "rect"
            },
            {
              "name": "async",
              "value": "false"
            },
            {
              "name": "name",
              "value": "result.csv"
            },
            {
              "name": "password"
            },
            {
              "name": "lineGrouping"
            },
            {
              "name": "profiles"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {}
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "66d49dae-d282-4854-8674-69784110ee0b",
      "name": "Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1080,
        -20
      ],
      "parameters": {
        "name": "sample.html",
        "driveId": {
          "__rl": true,
          "mode": "url",
          "value": "",
          "__regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "url",
          "value": ""
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "461222d4-7a73-412f-aceb-81745f17f7ea",
      "name": "Convert to Binary File",
      "type": "n8n-nodes-base.code",
      "position": [
        780,
        -20
      ],
      "parameters": {
        "jsCode": "// Convert the HTML string to a Buffer\nconst buffer = Buffer.from($json.body, 'utf-8');\n\n// Return the buffer as binary data\nreturn [\n  {\n    binary: {\n      data: {\n        data: buffer.toString('base64'), // Convert buffer to base64 string\n        mimeType: 'text/html',\n        fileName: 'sample.html'\n      }\n    }\n  }\n];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "543dd2ff-011f-4f83-a5c7-ffb80fc3910d",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -60,
        -120
      ],
      "parameters": {
        "width": 1340,
        "height": 280,
        "content": "## Automated PDF to HTML Conversion\n"
      },
      "typeVersion": 1
    },
    {
      "id": "f0d02b89-71d2-4239-833d-9e5235024291",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -60,
        200
      ],
      "parameters": {
        "width": 1340,
        "height": 180,
        "content": "## Description: \nThis n8n workflow automates the process of converting a newly stored PDF file from Google Drive into an HTML file and saving it back to Google Drive. The workflow is triggered whenever a new PDF is uploaded to a specific folder, ensuring seamless conversion and storage without any manual intervention.\n\nThis workflow provides an efficient, automated solution for converting PDFs to HTML, eliminating the need for manual file handling and ensuring a smooth document transformation process. It is particularly useful for scenarios where PDFs need to be dynamically converted and stored in an organized manner for web usage, archiving, or further processing.\n\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "224c9b46-dc5e-44de-8ec4-956d48f4f4f1",
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request": {
      "main": [
        [
          {
            "node": "Convert to Binary File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive Trigger": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to Binary File": {
      "main": [
        [
          {
            "node": "Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Automated PDF to HTML Conversion. Uses googleDriveTrigger, httpRequest, googleDrive, stickyNote. Event-driven trigger; 7 nodes.

Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →

More General workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

General

n8n workflow deployer. Uses httpRequest, stickyNote, manualTrigger, extractFromFile. Event-driven trigger; 21 nodes.

HTTP Request, Google Drive, Google Drive Trigger
General

OCR receipts from Google Drive. Uses manualTrigger, stickyNote, httpRequest, googleDriveTrigger. Event-driven trigger; 10 nodes.

HTTP Request, Google Drive Trigger, Google Drive +1
General

Optimise images uploaded to GDrive. Uses googleDriveTrigger, googleDrive, httpRequest, stickyNote. Event-driven trigger; 10 nodes.

Google Drive Trigger, Google Drive, HTTP Request
General

Extract text from PDF and image using Vertex AI (Gemini) into CSV. Uses lmChatGoogleGemini, googleDriveTrigger, googleDrive, extractFromFile. Event-driven trigger; 16 nodes.

Google Gemini Chat, Google Drive Trigger, Google Drive +2
General

AutoQoutesV2_template. Uses manualTrigger, httpRequest, stickyNote, googleSheets. Event-driven trigger; 28 nodes.

HTTP Request, Google Sheets, Google Drive +2