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 →
{
"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.
googleDriveOAuth2ApihttpHeaderAuth
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 →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
n8n workflow deployer. Uses httpRequest, stickyNote, manualTrigger, extractFromFile. Event-driven trigger; 21 nodes.
OCR receipts from Google Drive. Uses manualTrigger, stickyNote, httpRequest, googleDriveTrigger. Event-driven trigger; 10 nodes.
Optimise images uploaded to GDrive. Uses googleDriveTrigger, googleDrive, httpRequest, stickyNote. Event-driven trigger; 10 nodes.
Extract text from PDF and image using Vertex AI (Gemini) into CSV. Uses lmChatGoogleGemini, googleDriveTrigger, googleDrive, extractFromFile. Event-driven trigger; 16 nodes.
AutoQoutesV2_template. Uses manualTrigger, httpRequest, stickyNote, googleSheets. Event-driven trigger; 28 nodes.