Extraction de données de factures Google Drive vers Sheets
Ceci est unAI Summarization, Multimodal AIworkflow d'automatisation du domainecontenant 12 nœuds.Utilise principalement des nœuds comme Set, PDFco Api, GoogleDrive, GoogleSheets, ManualTrigger. Extraire des données de factures à partir de Google Sheets vers Sheets avec PDF.co AI Parser
- •Informations d'identification Google Drive API
- •Informations d'identification Google Sheets API
Nœuds utilisés (12)
Catégorie
{
"meta": {
"instanceId": "ad0113c344ee237399e44e9f11798b05baeb83a6196d514a9ae9d2ad71c3b5c9",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "ab1b7d2d-7eac-45eb-9e0a-36f14c56df14",
"name": "Lors du clic sur 'Exécuter le workflow'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-768,
1856
],
"parameters": {},
"typeVersion": 1
},
{
"id": "869b9f99-2c91-48c8-bb9e-2f449fb8039a",
"name": "Note adhésive2",
"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": "Note adhésive55",
"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": "Obtenir l'ID du dossier parent",
"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": "Obtenir les ID de factures",
"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": "Convertir en 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": "Analyseur IA de factures",
"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": "Définir les champs",
"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": "Stocker les données dans 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": "Note adhésive61",
"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": "Note adhésive62",
"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": "Note adhésive64",
"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
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Intermédiaire - Résumé IA, IA Multimodale
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
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.
Partager ce workflow