Google Drive 인보이스 데이터 추출하여 Sheets에 저장
이것은AI Summarization, Multimodal AI분야의자동화 워크플로우로, 12개의 노드를 포함합니다.주로 Set, PDFco Api, GoogleDrive, GoogleSheets, ManualTrigger 등의 노드를 사용하며. PDF.co AI 분석기로 Google Drive에서 발표 데이터를 Sheets로 추출
- •Google Drive API 인증 정보
- •Google Sheets API 인증 정보
{
"meta": {
"instanceId": "ad0113c344ee237399e44e9f11798b05baeb83a6196d514a9ae9d2ad71c3b5c9",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "ab1b7d2d-7eac-45eb-9e0a-36f14c56df14",
"name": "워크플로우 실행 시",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-768,
1856
],
"parameters": {},
"typeVersion": 1
},
{
"id": "869b9f99-2c91-48c8-bb9e-2f449fb8039a",
"name": "메모2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1344,
1056
],
"parameters": {
"width": 400,
"height": 1472,
"content": "\n## ⚙️ Setup Instructions\n\n### 1) Connect Google Drive (OAuth2)\n1. In **n8n → Credentials → New → Google Drive (OAuth2)** \n2. Sign in to the Google account that owns your invoice PDFs and **allow access**. \n3. In the **Get Parent Folder ID** node, set your search to the folder name (e.g., `n8n Invoices`). \n4. In **Get Invoice ID’s**, ensure **Filter → folderId** uses the ID from the previous node (already wired in this template).\n\n---\n\n### 2) Connect PDF.co (AI Invoice Parser)\n1. Create a **PDF.co** account and copy your **API Key**. \n2. In **n8n → Credentials → New → PDF.co API**, paste your key and **Save**. \n3. In the **AI Invoice Parser** node, keep **URL** mapped to the Drive link coming from **Convert to URL**. The node is already set to use your PDF.co credentials.\n\n\n---\n\n### 3) Connect Google Sheets (OAuth2)\n1. In **n8n → Credentials → New → Google Sheets (OAuth2)** \n2. Log in with your Google account and **grant access**. \n3. In the **Store Data in Google Sheets** node, select your **Spreadsheet** and **Sheet** (this template is set to: \n - Spreadsheet: `Invoice Template` (`1a6QBIQkr7RsZtUZBi87NwhwgTbnr5hQl4J_ZOkr3F1U`) \n - Tab: `Due` (gid: `1002294955`) \n4. The node is configured to **Append or Update** by `Url` so repeats won’t duplicate.\n\n**Expected columns on the `Due` tab:**\n- `Url` (Drive link we generated)\n- `Vendor`\n- `Invoice Date`\n- `Total`\n- `Due Date`\n\n---\n\n\n\n## 📬 Contact\nNeed help customizing this (e.g., auto-sharing Drive links, enriching the Sheet, or pushing to Slack/Email)?\n\n- 📧 **robert@ynteractive.com** \n- 🔗 **[Robert Breen](https://www.linkedin.com/in/robert-breen-29429625/)** \n- 🌐 **[ynteractive.com](https://ynteractive.com)**\n"
},
"typeVersion": 1
},
{
"id": "6ec9845b-306b-456a-8831-0142e780db1a",
"name": "메모55",
"type": "n8n-nodes-base.stickyNote",
"position": [
-896,
1056
],
"parameters": {
"color": 7,
"width": 1744,
"height": 1472,
"content": "# 📄 Google Drive → AI Invoice Parser → Google Sheets (Due Log)\n\nThis workflow looks inside a **Google Drive folder**, parses each PDF invoice with **PDF.co’s AI Invoice Parser**, and appends vendor, amount, dates, and a link to the file into a **Google Sheet**.\n\n"
},
"typeVersion": 1
},
{
"id": "7750adf2-b5bd-4ed0-bf54-06b3b7878f5b",
"name": "상위 폴더 ID 가져오기",
"type": "n8n-nodes-base.googleDrive",
"position": [
-560,
1952
],
"parameters": {
"filter": {},
"options": {},
"resource": "fileFolder",
"queryString": "n8n Invoices"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "pl7bkYVKthXr65dR",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "5950e187-899f-4cd5-857b-ceb0bd5637f2",
"name": "인서 ID 목록 가져오기",
"type": "n8n-nodes-base.googleDrive",
"position": [
-336,
1632
],
"parameters": {
"filter": {
"folderId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
}
},
"options": {},
"resource": "fileFolder",
"queryString": "="
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "pl7bkYVKthXr65dR",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "1c9d75d1-84b0-4d78-99d6-c3bc8647405d",
"name": "URL로 변환",
"type": "n8n-nodes-base.set",
"position": [
-128,
1824
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e7c4006d-b799-480d-a594-d7f72be006e4",
"name": "link",
"type": "string",
"value": "=https://drive.google.com/file/d/{{ $json.id }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "44cc62d6-1764-4b6c-91c9-c0bd11e4bb37",
"name": "AI 인서 파서",
"type": "n8n-nodes-pdfco.PDFco Api",
"position": [
96,
2128
],
"parameters": {
"url": "={{ $json.link }}",
"advancedOptions": {}
},
"credentials": {
"pdfcoApi": {
"id": "wGorcCULfsY1va25",
"name": "PDF.co account"
}
},
"executeOnce": false,
"typeVersion": 1
},
{
"id": "eeb6adb8-e18e-4589-802b-3545d4e1c845",
"name": "필드 설정",
"type": "n8n-nodes-base.set",
"position": [
288,
1632
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "8544df44-2d59-475a-9080-75a2e59eb8df",
"name": "Vendor",
"type": "string",
"value": "={{ $json.body.vendor.name }}"
},
{
"id": "a3c4fab9-d62e-453b-be59-32d81d085c45",
"name": "Invoice Date",
"type": "string",
"value": "={{ $json.body.invoice.invoiceDate }}"
},
{
"id": "03dd461f-0fcc-466d-91c1-575f9f0157d1",
"name": "Total",
"type": "string",
"value": "={{ $json.body.paymentDetails.total }}"
},
{
"id": "d1ae2dc1-4e5a-40c1-9553-59b6394a3aca",
"name": "Due Date",
"type": "string",
"value": "={{ $json.body.paymentDetails.dueDate }}"
},
{
"id": "823e5828-ed31-4b03-995a-55cd53bd8e22",
"name": "url",
"type": "string",
"value": "={{ $('Convert to URL').item.json.link }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "a40f5ff5-c723-459b-8a4f-0e0affa19204",
"name": "Google Sheets에 데이터 저장",
"type": "n8n-nodes-base.googleSheets",
"position": [
576,
2160
],
"parameters": {
"columns": {
"value": {
"Url": "={{ $json.url }}",
"Total": "={{ $json.Total }}",
"Vendor": "={{ $json.Vendor }}",
"Due Date": "={{ $json['Due Date'] }}",
"Invoice Date": "={{ $json['Invoice Date'] }}"
},
"schema": [
{
"id": "Vendor",
"type": "string",
"display": true,
"required": false,
"displayName": "Vendor",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Invoice Date",
"type": "string",
"display": true,
"required": false,
"displayName": "Invoice Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Total",
"type": "string",
"display": true,
"required": false,
"displayName": "Total",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Due Date",
"type": "string",
"display": true,
"required": false,
"displayName": "Due Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Url",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Url",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Url"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1002294955,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1a6QBIQkr7RsZtUZBi87NwhwgTbnr5hQl4J_ZOkr3F1U/edit#gid=1002294955",
"cachedResultName": "Due"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1a6QBIQkr7RsZtUZBi87NwhwgTbnr5hQl4J_ZOkr3F1U",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1a6QBIQkr7RsZtUZBi87NwhwgTbnr5hQl4J_ZOkr3F1U/edit?usp=drivesdk",
"cachedResultName": "Invoice Template"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "HlBW2puZbuCCq8jJ",
"name": "Google Sheets account 3"
}
},
"typeVersion": 4.7
},
{
"id": "26a8becd-467b-4fad-9700-296a137f17f0",
"name": "메모61",
"type": "n8n-nodes-base.stickyNote",
"position": [
496,
1632
],
"parameters": {
"color": 3,
"width": 224,
"height": 688,
"content": "### 3) Connect Google Sheets (OAuth2)\n1. In **n8n → Credentials → New → Google Sheets (OAuth2)** \n2. Log in with your Google account and **grant access**. \n3. In the **Store Data in Google Sheets** node, select your **Spreadsheet** and **Sheet** (this template is set to: \n - Spreadsheet: `Invoice Template` (`1a6QBIQkr7RsZtUZBi87NwhwgTbnr5hQl4J_ZOkr3F1U`) \n - Tab: `Due` (gid: `1002294955`) \n4. The node is configured to **Append or Update** by `Url` so repeats won’t duplicate.\n"
},
"typeVersion": 1
},
{
"id": "e6420fe8-afa6-4861-aa2c-2c471de718e1",
"name": "메모62",
"type": "n8n-nodes-base.stickyNote",
"position": [
-624,
1552
],
"parameters": {
"color": 3,
"width": 224,
"height": 544,
"content": "### 1) Connect Google Drive (OAuth2)\n1. In **n8n → Credentials → New → Google Drive (OAuth2)** \n2. Sign in to the Google account that owns your invoice PDFs and **allow access**. \n3. In the **Get Parent Folder ID** node, set your search to the folder name (e.g., `n8n Invoices`). \n4. In **Get Invoice ID’s**, ensure **Filter → folderId** uses the ID from the previous node (already wired in this template)."
},
"typeVersion": 1
},
{
"id": "3accccf6-0a7c-44e2-863b-e7a7a61a7115",
"name": "메모64",
"type": "n8n-nodes-base.stickyNote",
"position": [
32,
1808
],
"parameters": {
"color": 3,
"width": 224,
"height": 464,
"content": "### 2) Connect PDF.co (AI Invoice Parser)\n1. Create a **PDF.co** account and copy your **API Key**. \n2. In **n8n → Credentials → New → PDF.co API**, paste your key and **Save**. \n3. In the **AI Invoice Parser** node, keep **URL** mapped to the Drive link coming from **Convert to URL**. The node is already set to use your PDF.co credentials.\n"
},
"typeVersion": 1
}
],
"pinData": {
"Convert to URL": [
{
"link": "https://drive.google.com/file/d/12zP_HE7V2AtxgjGQdQzpgs7YZeLyPkH6"
},
{
"link": "https://drive.google.com/file/d/1WvQ1I7xX8uJ8jtHkvzyC4B9esgRDSL06"
},
{
"link": "https://drive.google.com/file/d/1kpYIaDk7w1bCQSFP3Linl3MtTuq_rxky"
}
],
"Get Invoice ID's": [
{
"id": "12zP_HE7V2AtxgjGQdQzpgs7YZeLyPkH6",
"name": "invoice_eu.pdf"
},
{
"id": "1WvQ1I7xX8uJ8jtHkvzyC4B9esgRDSL06",
"name": "invoice_uk.pdf"
},
{
"id": "1kpYIaDk7w1bCQSFP3Linl3MtTuq_rxky",
"name": "invoice_us.pdf"
}
],
"AI Invoice Parser": [
{
"url": "https://pdf-temp-files.s3.us-west-2.amazonaws.com/V6OD53BA7FUPI2ZLMRXBLOV0JAPUMCNG--155-300/invoice.json?X-Amz-Expires=3600&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIZJDPLX6D7EHVCKA/20250825/us-west-2/s3/aws4_request&X-Amz-Date=20250825T221242Z&X-Amz-SignedHeaders=host&X-Amz-Signature=0d7a48698f25ce5417216f8fae0f33cd23e08bab59856d60c6e36aba1de2ed5a",
"body": {
"others": {
"notes": ""
},
"vendor": {
"name": "Alpine Data GmbH",
"address": {
"city": "Berlin",
"state": "",
"country": "Germany",
"postalCode": "10115",
"streetAddress": "Falkstr. 12"
},
"entityId": "",
"contactInformation": {
"fax": "",
"email": "rechnung@alpinedata.de",
"phone": ""
}
},
"invoice": {
"poNo": "",
"orderNo": "",
"invoiceNo": "INV-EU-77531",
"invoiceDate": "2025-08-25",
"deliveryDate": ""
},
"customer": {
"billTo": {
"name": "Lucca Fashion S.p.A.",
"address": {
"city": "Milano",
"state": "",
"country": "Italy",
"postalCode": "20121",
"streetAddress": "Via delle Rose 8"
},
"entityId": "",
"contactInformation": {
"email": "ap@luccafashion.it",
"phone": ""
}
},
"shipTo": {
"name": "",
"address": {
"city": "",
"state": "",
"country": "",
"postalCode": "",
"streetAddress": ""
},
"contactInformation": {
"email": "",
"phone": ""
}
}
},
"lineItems": [
{
"qty": "5",
"sku": "SKU-ETL-001",
"line_total": "€1,500.00",
"unit_price": "€300.00",
"description": "ETL Development Hours"
},
{
"qty": "1",
"sku": "SKU-BI-020",
"line_total": "€900.00",
"unit_price": "€900.00",
"description": "BI Dashboard Package"
}
],
"customField": {},
"paymentDetails": {
"tax": "€456.00",
"total": "€2,856.00",
"dueDate": "2025-09-08",
"discount": "",
"shipping": "",
"subtotal": "",
"paymentTerms": "",
"bankingInformation": {
"iban": "",
"bankCode": "",
"bankName": "",
"bankAddress": {
"city": "",
"state": "",
"country": "",
"postalCode": "",
"streetAddress": ""
},
"purposeCode": "",
"branchNumber": "",
"swiftBicCode": "",
"accountNumber": "",
"additionalNotes": "",
"bankRoutingCode": "",
"accountHolderName": ""
}
}
},
"duration": 84,
"pageCount": 1
},
{
"url": "https://pdf-temp-files.s3.us-west-2.amazonaws.com/XMG9O1FS7H5WZ6C2R1FF7ZIDUP10VMY9--155-500/invoice.json?X-Amz-Expires=3600&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIZJDPLX6D7EHVCKA/20250825/us-west-2/s3/aws4_request&X-Amz-Date=20250825T221308Z&X-Amz-SignedHeaders=host&X-Amz-Signature=560d7c321b55e2366e065a2b7286bbcae3681012f56e164f5af3ad1b63201212",
"body": {
"others": {
"notes": ""
},
"vendor": {
"name": "Cheshire Analytics Ltd",
"address": {
"city": "Manchester",
"state": "",
"country": "",
"postalCode": "M3 2BB",
"streetAddress": "1 Deansgate"
},
"entityId": "",
"contactInformation": {
"fax": "",
"email": "accounts@cheshire-analytics.co.uk",
"phone": "+44 161 555 2210"
}
},
"invoice": {
"poNo": "",
"orderNo": "",
"invoiceNo": "INV-CH-3921",
"invoiceDate": "25/08/2025",
"deliveryDate": ""
},
"customer": {
"billTo": {
"name": "Brighton Marine Group",
"address": {
"city": "Brighton",
"state": "",
"country": "",
"postalCode": "BN1 1AA",
"streetAddress": "21 Shoreline Rd"
},
"entityId": "",
"contactInformation": {
"email": "",
"phone": ""
}
},
"shipTo": {
"name": "",
"address": {
"city": "",
"state": "",
"country": "",
"postalCode": "",
"streetAddress": ""
},
"contactInformation": {
"email": "",
"phone": ""
}
}
},
"lineItems": [
{
"quantity": "1",
"line_total": "£1,600.00",
"unit_price": "£1,600.00",
"description": "Monthly analytics retainer"
},
{
"quantity": "8",
"line_total": "£680.00",
"unit_price": "£85.00",
"description": "Attribution model tuning (hours"
},
{
"quantity": "1",
"line_total": "£350.00",
"unit_price": "£350.00",
"description": "Report pack design"
}
],
"customField": {},
"paymentDetails": {
"tax": "\u00163526.00",
"total": "\u00163156.00",
"dueDate": "",
"discount": "",
"shipping": "",
"subtotal": "\u001630.00",
"paymentTerms": "Net 14",
"bankingInformation": {
"iban": "",
"bankCode": "",
"bankName": "",
"bankAddress": {
"city": "",
"state": "",
"country": "",
"postalCode": "",
"streetAddress": ""
},
"purposeCode": "",
"branchNumber": "",
"swiftBicCode": "",
"accountNumber": "",
"additionalNotes": "",
"bankRoutingCode": "",
"accountHolderName": ""
}
}
},
"duration": 88,
"pageCount": 1
},
{
"url": "https://pdf-temp-files.s3.us-west-2.amazonaws.com/7OLHR4BGLPG4065OZMUJWN9MBH3PBUWE--155-500/invoice.json?X-Amz-Expires=3600&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIZJDPLX6D7EHVCKA/20250825/us-west-2/s3/aws4_request&X-Amz-Date=20250825T221350Z&X-Amz-SignedHeaders=host&X-Amz-Signature=efe0bca321ace6b0cef7eb4067d70017cc3aee5bd08802ed1fd3f77cd06a252e",
"body": {
"others": {
"notes": ""
},
"vendor": {
"name": "Northwind Automation LLC",
"address": {
"city": "Austin",
"state": "TX",
"country": "",
"postalCode": "78704",
"streetAddress": "812 Lakeview Dr"
},
"entityId": "",
"contactInformation": {
"fax": "",
"email": "billing@northwind-auto.com",
"phone": "(512) 555-0129"
}
},
"invoice": {
"poNo": "PO-88341",
"orderNo": "",
"invoiceNo": "NW-2025-1047",
"invoiceDate": "08/25/2025",
"deliveryDate": ""
},
"customer": {
"billTo": {
"name": "Acme Retail Corp",
"address": {
"city": "San Francisco",
"state": "CA",
"country": "",
"postalCode": "94105",
"streetAddress": "77 Market Street"
},
"entityId": "",
"contactInformation": {
"email": "",
"phone": ""
}
},
"shipTo": {
"name": "",
"address": {
"city": "",
"state": "",
"country": "",
"postalCode": "",
"streetAddress": ""
},
"contactInformation": {
"email": "",
"phone": ""
}
}
},
"lineItems": [
{
"#": "1",
"Qty": "1",
"Line Total": "$2,400.00",
"Unit Price": "$2,400.00",
"Description": "Data Pipeline Setup"
},
{
"#": "2",
"Qty": "12",
"Line Total": "$1,140.00",
"Unit Price": "$95.00",
"Description": "ETL Maintenance (hrs)"
},
{
"#": "3",
"Qty": "1",
"Line Total": "$1,250.00",
"Unit Price": "$1,250.00",
"Description": "Dashboard Build (flat)"
}
],
"customField": {},
"paymentDetails": {
"tax": "$299.38",
"total": "$4,989.38",
"dueDate": "09/08/2025",
"discount": "-$100.00",
"shipping": "",
"subtotal": "$4,790.00",
"paymentTerms": "",
"bankingInformation": {
"iban": "",
"bankCode": "",
"bankName": "",
"bankAddress": {
"city": "",
"state": "",
"country": "",
"postalCode": "",
"streetAddress": ""
},
"purposeCode": "",
"branchNumber": "",
"swiftBicCode": "",
"accountNumber": "",
"additionalNotes": "",
"bankRoutingCode": "",
"accountHolderName": ""
}
}
},
"duration": 91,
"pageCount": 1
}
]
},
"connections": {
"eeb6adb8-e18e-4589-802b-3545d4e1c845": {
"main": [
[
{
"node": "a40f5ff5-c723-459b-8a4f-0e0affa19204",
"type": "main",
"index": 0
}
]
]
},
"1c9d75d1-84b0-4d78-99d6-c3bc8647405d": {
"main": [
[
{
"node": "44cc62d6-1764-4b6c-91c9-c0bd11e4bb37",
"type": "main",
"index": 0
}
]
]
},
"5950e187-899f-4cd5-857b-ceb0bd5637f2": {
"main": [
[
{
"node": "1c9d75d1-84b0-4d78-99d6-c3bc8647405d",
"type": "main",
"index": 0
}
]
]
},
"44cc62d6-1764-4b6c-91c9-c0bd11e4bb37": {
"main": [
[
{
"node": "eeb6adb8-e18e-4589-802b-3545d4e1c845",
"type": "main",
"index": 0
}
]
]
},
"7750adf2-b5bd-4ed0-bf54-06b3b7878f5b": {
"main": [
[
{
"node": "5950e187-899f-4cd5-857b-ceb0bd5637f2",
"type": "main",
"index": 0
}
]
]
},
"a40f5ff5-c723-459b-8a4f-0e0affa19204": {
"main": [
[]
]
},
"ab1b7d2d-7eac-45eb-9e0a-36f14c56df14": {
"main": [
[
{
"node": "7750adf2-b5bd-4ed0-bf54-06b3b7878f5b",
"type": "main",
"index": 0
}
]
]
}
}
}이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - AI 요약, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
Robert Breen
@rbreenProfessional services consultant with over 10 years of experience solving complex business problems across industries. I specialize in n8n and process automation—designing custom workflows that integrate tools like Google Calendar, Airtable, GPT, and internal systems. Whether you need to automate scheduling, sync data, or streamline operations, I build solutions that save time and drive results.
이 워크플로우 공유