Analyseur de factures version légère
Ceci est unFinance, AI, IT Opsworkflow d'automatisation du domainecontenant 29 nœuds.Utilise principalement des nœuds comme If, Code, Merge, GoogleDrive, HttpRequest, combinant la technologie d'intelligence artificielle pour une automatisation intelligente. Extraire des données de factures de Google Drive vers Sheets avec Mistral OCR et Gemini
- •Informations d'identification Google Drive API
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
- •Informations d'identification Google Sheets API
- •Clé API Google Gemini
Nœuds utilisés (29)
{
"id": "x4DcB7sVAeVmIrMD",
"meta": {
"instanceId": "910d3d65eae3484a05204e7f2f6d897587e3de5b30ca7b532a3b4f6f96a2c11c",
"templateCredsSetupCompleted": true
},
"name": "Invoice-Parser-Lite",
"tags": [],
"nodes": [
{
"id": "a8716edb-e05a-43a5-a38f-384fa05e93cf",
"name": "Lors du clic sur 'Tester le workflow'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
320,
-80
],
"parameters": {},
"typeVersion": 1
},
{
"id": "bce283e2-29fd-47a1-9cfe-c4cf50f4e35d",
"name": "Sur nouveau fichier dans le Drive Google",
"type": "n8n-nodes-base.googleDriveTrigger",
"position": [
320,
260
],
"parameters": {
"event": "fileCreated",
"options": {
"fileType": "all"
},
"pollTimes": {
"item": [
{}
]
},
"triggerOn": "specificFolder",
"folderToWatch": {
"__rl": true,
"mode": "list",
"value": "15Xpvr0Q4cBwYv1e_jNI8JO4LKAQmgYC2",
"cachedResultUrl": "https://drive.google.com/drive/folders/15Xpvr0Q4cBwYv1e_jNI8JO4LKAQmgYC2",
"cachedResultName": "Invoices_Inbox"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "2wyYFvVBTOBlFJRv",
"name": "Google Drive account"
}
},
"typeVersion": 1
},
{
"id": "160e8e02-8f70-4c8f-a3c4-a94cf2325b82",
"name": "Charger les fichiers du dossier Drive Google",
"type": "n8n-nodes-base.googleDrive",
"position": [
880,
260
],
"parameters": {
"filter": {
"folderId": {
"__rl": true,
"mode": "list",
"value": "15Xpvr0Q4cBwYv1e_jNI8JO4LKAQmgYC2",
"cachedResultUrl": "https://drive.google.com/drive/folders/15Xpvr0Q4cBwYv1e_jNI8JO4LKAQmgYC2",
"cachedResultName": "Invoices_Inbox"
}
},
"options": {},
"resource": "fileFolder",
"returnAll": true
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "2wyYFvVBTOBlFJRv",
"name": "Google Drive account"
}
},
"executeOnce": true,
"typeVersion": 3
},
{
"id": "ad1c63fb-4aae-48a2-8329-20afd04e069d",
"name": "Filtrer les fichiers déjà traités",
"type": "n8n-nodes-base.merge",
"position": [
1360,
140
],
"parameters": {
"mode": "combine",
"options": {},
"joinMode": "keepNonMatches",
"outputDataFrom": "input2",
"fieldsToMatchString": "id"
},
"typeVersion": 3
},
{
"id": "1e689ab2-32d1-453f-b30b-61eb8ac5e1db",
"name": "Télécharger le fichier pour OCR",
"type": "n8n-nodes-base.googleDrive",
"position": [
1560,
140
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"options": {},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "2wyYFvVBTOBlFJRv",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "37e21a39-2383-4934-9b41-81b76c484974",
"name": "Obtenir les lignes déjà traitées depuis Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
1160,
-80
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WNXkB6SpJyGtPVcHmj1oaaDFikyACCuq6RY5rEPH4OQ/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1WNXkB6SpJyGtPVcHmj1oaaDFikyACCuq6RY5rEPH4OQ",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WNXkB6SpJyGtPVcHmj1oaaDFikyACCuq6RY5rEPH4OQ/edit?usp=drivesdk",
"cachedResultName": "n8n_ocr_invoices"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "OZHtTUbddU4IboX9",
"name": "Google Sheets account"
}
},
"executeOnce": true,
"typeVersion": 4.3,
"alwaysOutputData": true
},
{
"id": "140113e8-31da-45f2-901a-cb83bd183478",
"name": "Sauvegarder les données dans Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
3640,
60
],
"parameters": {
"columns": {
"value": {},
"schema": [
{
"id": "Id",
"type": "string",
"display": true,
"required": false,
"displayName": "Id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Invoice No",
"type": "string",
"display": true,
"required": false,
"displayName": "Invoice No",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Invoice date",
"type": "string",
"display": true,
"required": false,
"displayName": "Invoice date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Invoice Period",
"type": "string",
"display": true,
"required": false,
"displayName": "Invoice Period",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Gross Amount incl. VAT ",
"type": "string",
"display": true,
"required": false,
"displayName": "Gross Amount incl. VAT ",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "IBAN",
"type": "string",
"display": true,
"required": false,
"displayName": "IBAN",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "autoMapInputData",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WNXkB6SpJyGtPVcHmj1oaaDFikyACCuq6RY5rEPH4OQ/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1WNXkB6SpJyGtPVcHmj1oaaDFikyACCuq6RY5rEPH4OQ",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WNXkB6SpJyGtPVcHmj1oaaDFikyACCuq6RY5rEPH4OQ/edit?usp=drivesdk",
"cachedResultName": "n8n_ocr_invoices"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "OZHtTUbddU4IboX9",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "fa83c3b3-b58d-40c8-b94e-93925347b2de",
"name": "Mistral Upload",
"type": "n8n-nodes-base.httpRequest",
"position": [
2060,
120
],
"parameters": {
"url": "https://api.mistral.ai/v1/files",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"authentication": "predefinedCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "purpose",
"value": "ocr"
},
{
"name": "file",
"parameterType": "formBinaryData",
"inputDataFieldName": "data"
}
]
},
"nodeCredentialType": "mistralCloudApi"
},
"credentials": {
"mistralCloudApi": {
"id": "1SLwPjP2Z9Gh0p3B",
"name": "Mistral Cloud account"
}
},
"typeVersion": 4.2
},
{
"id": "f0aef4a8-ca9a-48a1-b94e-4879adf679c1",
"name": "Mistral Signed URL",
"type": "n8n-nodes-base.httpRequest",
"position": [
2260,
120
],
"parameters": {
"url": "=https://api.mistral.ai/v1/files/{{ $json.id }}/url",
"options": {},
"sendQuery": true,
"sendHeaders": true,
"authentication": "predefinedCredentialType",
"queryParameters": {
"parameters": [
{
"name": "expiry",
"value": "24"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Accept",
"value": "application/json"
}
]
},
"nodeCredentialType": "mistralCloudApi"
},
"credentials": {
"mistralCloudApi": {
"id": "1SLwPjP2Z9Gh0p3B",
"name": "Mistral Cloud account"
}
},
"typeVersion": 4.2
},
{
"id": "165556d9-c325-4eb9-b1b2-4983f3fda5a4",
"name": "Mistral DOC OCR",
"type": "n8n-nodes-base.httpRequest",
"position": [
2460,
100
],
"parameters": {
"url": "https://api.mistral.ai/v1/ocr",
"method": "POST",
"options": {},
"jsonBody": "={\n \"model\": \"mistral-ocr-latest\",\n \"document\": {\n \"type\": \"document_url\",\n \"document_url\": \"{{ $json.url }}\"\n },\n \"include_image_base64\": true\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "mistralCloudApi"
},
"credentials": {
"mistralCloudApi": {
"id": "1SLwPjP2Z9Gh0p3B",
"name": "Mistral Cloud account"
}
},
"typeVersion": 4.2
},
{
"id": "849bbcd3-122d-4375-b6ae-920e6c5d2b9e",
"name": "extraire schéma",
"type": "n8n-nodes-base.code",
"position": [
920,
-80
],
"parameters": {
"jsCode": "// Grab the keys from the first row\nconst schema = Object.keys($input.all()[0].json);\n\n// Return a single item whose JSON is just that schema array\nreturn [\n { json: { schema } }\n];"
},
"typeVersion": 2
},
{
"id": "ff80d6f4-6758-482c-b5eb-3fa927525948",
"name": "Fusionner pages OCR et supprimer champ id",
"type": "n8n-nodes-base.code",
"position": [
2840,
100
],
"parameters": {
"jsCode": "// Node name: Join Pages\n// 1. Grab all incoming documents\nconst docs = $input.all();\n\n// 2. Pull in your schema once and filter it\nlet schema = $('extract schema').first().json.schema;\nconst toRemove = ['Id', 'row_number'];\nschema = schema.filter(f => !toRemove.includes(f));\n\n// 3. Build one output per document\nconst results = docs.map(doc => {\n // join only that doc’s pages\n const fullText = doc.json.pages\n .map(p => p.markdown)\n .join('\\n\\n');\n\n return {\n json: {\n ocr_text: fullText,\n schema,\n },\n };\n});\n\nreturn results;"
},
"typeVersion": 2
},
{
"id": "24f5b810-03cc-49d7-bc64-7748f6be9686",
"name": "Réinsérer l'ID Drive google",
"type": "n8n-nodes-base.code",
"position": [
3380,
60
],
"parameters": {
"jsCode": "// 1. Get the array of processed files (with id & name)\nconst processed = $('Filter processed files').all();\n\n// 2. Take each LLM output in turn, parse it, inject the matching ID, and return\nreturn $input.all().map((item, index) => {\n // parse the JSON string your chat node returned\n const data = JSON.parse(item.json.output);\n\n // look up the corresponding Drive file ID by array index\n data.Id = processed[index]?.json.id ?? null;\n\n\n // emit for your Sheets node\n return { json: data };\n});"
},
"typeVersion": 2
},
{
"id": "407bd6d8-8b90-47bd-84f8-c15f32ea1cf4",
"name": "Google Gemini Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
3060,
280
],
"parameters": {
"options": {},
"modelName": "models/gemini-2.5-flash-preview-05-20"
},
"credentials": {
"googlePalmApi": {
"id": "F7phLhVf9DkmhJc7",
"name": "Google Gemini(PaLM) Api account"
}
},
"typeVersion": 1
},
{
"id": "c7ceb651-3f48-49f9-a2f8-f933a63311a8",
"name": "Mistral Upload1",
"type": "n8n-nodes-base.httpRequest",
"position": [
2080,
340
],
"parameters": {
"url": "https://api.mistral.ai/v1/files",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"authentication": "predefinedCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "purpose",
"value": "ocr"
},
{
"name": "file",
"parameterType": "formBinaryData",
"inputDataFieldName": "data"
}
]
},
"nodeCredentialType": "mistralCloudApi"
},
"credentials": {
"mistralCloudApi": {
"id": "1SLwPjP2Z9Gh0p3B",
"name": "Mistral Cloud account"
}
},
"typeVersion": 4.2
},
{
"id": "27c0f663-3833-4f67-8f2d-5efcd1a9b8a2",
"name": "Mistral Signed URL1",
"type": "n8n-nodes-base.httpRequest",
"position": [
2260,
340
],
"parameters": {
"url": "=https://api.mistral.ai/v1/files/{{ $json.id }}/url",
"options": {},
"sendQuery": true,
"sendHeaders": true,
"authentication": "predefinedCredentialType",
"queryParameters": {
"parameters": [
{
"name": "expiry",
"value": "24"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Accept",
"value": "application/json"
}
]
},
"nodeCredentialType": "mistralCloudApi"
},
"credentials": {
"mistralCloudApi": {
"id": "1SLwPjP2Z9Gh0p3B",
"name": "Mistral Cloud account"
}
},
"typeVersion": 4.2
},
{
"id": "027a9c9c-4ebd-497a-8e61-a3ee63b99666",
"name": "Mistral IMAGE OCR",
"type": "n8n-nodes-base.httpRequest",
"position": [
2460,
320
],
"parameters": {
"url": "https://api.mistral.ai/v1/ocr",
"method": "POST",
"options": {},
"jsonBody": "={\n \"model\": \"mistral-ocr-latest\",\n \"document\": {\n \"type\": \"image_url\",\n \"image_url\": \"{{ $json.url }}\"\n }\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "mistralCloudApi"
},
"credentials": {
"mistralCloudApi": {
"id": "1SLwPjP2Z9Gh0p3B",
"name": "Mistral Cloud account"
}
},
"typeVersion": 4.2
},
{
"id": "be5e7900-7ae8-4c56-83d5-d0984767abff",
"name": "Si",
"type": "n8n-nodes-base.if",
"position": [
1780,
140
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "54e4c552-cdf0-4707-8723-65bcf41d8a96",
"operator": {
"type": "string",
"operation": "startsWith"
},
"leftValue": "={{$binary.data.mimeType}}",
"rightValue": "image/"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "f33ce8fa-1412-4889-b586-130119d4bc4b",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
820,
460
],
"parameters": {
"color": 4,
"width": 220,
"height": 80,
"content": "### Modify Folder source"
},
"typeVersion": 1
},
{
"id": "fdc0a222-8962-4d4a-a50c-abd347794430",
"name": "Note adhésive1",
"type": "n8n-nodes-base.stickyNote",
"position": [
3560,
260
],
"parameters": {
"width": 320,
"height": 100,
"content": "### File Ids\nYou can view the files using Id from the first column. replace the <Id> below\nhttps://drive.google.com/file/d/<Id>/view"
},
"typeVersion": 1
},
{
"id": "f9e36727-f376-4bb3-b32f-bd55eab82e88",
"name": "Extracteur de champs",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
3020,
60
],
"parameters": {
"text": "=Extract the following fields from the invoice text:\n\n{{ JSON.stringify($json.schema) }}\n\nImportant: Double-check that all line items are extracted without omission.\n\n- You must respond ONLY with valid raw rendered JSON.\n- Do NOT include the word \"json\".\n- Do NOT include the word \"```json\".\n- Do NOT use triple backticks or markdown formatting.\n- Do NOT wrap the response in any key like \"output\".\n- Do NOT write anything starting at output directly start with valid root-level JSON.\n- Only respond with a valid, root-level JSON object.\n\nText to extract data from: {{ $json.ocr_text }}",
"options": {
"systemMessage": "=You are a document parsing assistant designed to extract structured data from invoice PDFs for automated uploading and validation in a financial system."
},
"promptType": "define"
},
"typeVersion": 1.8
},
{
"id": "73cc08ed-caa1-405b-8b15-11f2a375fcd9",
"name": "Note adhésive2",
"type": "n8n-nodes-base.stickyNote",
"position": [
260,
480
],
"parameters": {
"color": 4,
"width": 220,
"height": 80,
"content": "### Set interval for checking drive folder and pull new files"
},
"typeVersion": 1
},
{
"id": "d7df816d-3aee-4bd8-9f12-76c23d2108dd",
"name": "Note adhésive3",
"type": "n8n-nodes-base.stickyNote",
"position": [
580,
-380
],
"parameters": {
"color": 4,
"width": 300,
"height": 140,
"content": "### Select Sheet\n \nAdd column headers in the sheet to which you save data on row one to specify which fields you are interested in extracting. "
},
"typeVersion": 1
},
{
"id": "29782ff3-dbdf-4132-90d2-36a9fafa5815",
"name": "Note adhésive4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1120,
-180
],
"parameters": {
"color": 4,
"width": 200,
"height": 80,
"content": "### Select sheet"
},
"typeVersion": 1
},
{
"id": "3d60e92c-2966-4ed3-900a-582cca0f0b8c",
"name": "Note adhésive5",
"type": "n8n-nodes-base.stickyNote",
"position": [
3600,
-40
],
"parameters": {
"color": 4,
"width": 200,
"height": 80,
"content": "### Select sheet to save data (same as at the start)"
},
"typeVersion": 1
},
{
"id": "3cabcbee-b685-4d9a-9f11-9a3328d70fcd",
"name": "Obtenir schéma des champs",
"type": "n8n-nodes-base.googleSheets",
"position": [
680,
-80
],
"parameters": {
"options": {
"returnFirstMatch": false,
"dataLocationOnSheet": {
"values": {
"firstDataRow": 1,
"rangeDefinition": "specifyRange"
}
}
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WNXkB6SpJyGtPVcHmj1oaaDFikyACCuq6RY5rEPH4OQ/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1WNXkB6SpJyGtPVcHmj1oaaDFikyACCuq6RY5rEPH4OQ",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WNXkB6SpJyGtPVcHmj1oaaDFikyACCuq6RY5rEPH4OQ/edit?usp=drivesdk",
"cachedResultName": "n8n_ocr_invoices"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "OZHtTUbddU4IboX9",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "2beee512-688a-4c4a-a4eb-b4a20956ead2",
"name": "Note adhésive6",
"type": "n8n-nodes-base.stickyNote",
"position": [
580,
-220
],
"parameters": {
"color": 3,
"width": 300,
"height": 120,
"content": ">> ### First column header in cell A1 MUST BE \"Id\". Id tracks the google drive Id and ensures the workflow is not processing previously processed files"
},
"typeVersion": 1
},
{
"id": "314e28c9-07c3-45f5-acb2-c2307d935638",
"name": "Note adhésive7",
"type": "n8n-nodes-base.stickyNote",
"position": [
1540,
40
],
"parameters": {
"color": 2,
"width": 160,
"height": 80,
"content": "Uses drive ID - no need to modify"
},
"typeVersion": 1
},
{
"id": "a3e0322c-3224-40fe-9e82-28274a69d77c",
"name": "Note adhésive8",
"type": "n8n-nodes-base.stickyNote",
"position": [
2040,
-20
],
"parameters": {
"color": 2,
"width": 520,
"height": 80,
"content": "Requires Mistral API Key for La Platforme\nhttps://mistral.ai/products/la-plateforme"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "b1ae3903-befa-458f-b6db-ba33ce2d9cac",
"connections": {
"be5e7900-7ae8-4c56-83d5-d0984767abff": {
"main": [
[
{
"node": "c7ceb651-3f48-49f9-a2f8-f933a63311a8",
"type": "main",
"index": 0
}
],
[
{
"node": "fa83c3b3-b58d-40c8-b94e-93925347b2de",
"type": "main",
"index": 0
}
]
]
},
"fa83c3b3-b58d-40c8-b94e-93925347b2de": {
"main": [
[
{
"node": "f0aef4a8-ca9a-48a1-b94e-4879adf679c1",
"type": "main",
"index": 0
}
]
]
},
"849bbcd3-122d-4375-b6ae-920e6c5d2b9e": {
"main": [
[
{
"node": "37e21a39-2383-4934-9b41-81b76c484974",
"type": "main",
"index": 0
}
]
]
},
"f9e36727-f376-4bb3-b32f-bd55eab82e88": {
"main": [
[
{
"node": "24f5b810-03cc-49d7-bc64-7748f6be9686",
"type": "main",
"index": 0
}
]
]
},
"165556d9-c325-4eb9-b1b2-4983f3fda5a4": {
"main": [
[
{
"node": "ff80d6f4-6758-482c-b5eb-3fa927525948",
"type": "main",
"index": 0
}
]
]
},
"c7ceb651-3f48-49f9-a2f8-f933a63311a8": {
"main": [
[
{
"node": "27c0f663-3833-4f67-8f2d-5efcd1a9b8a2",
"type": "main",
"index": 0
}
]
]
},
"3cabcbee-b685-4d9a-9f11-9a3328d70fcd": {
"main": [
[
{
"node": "849bbcd3-122d-4375-b6ae-920e6c5d2b9e",
"type": "main",
"index": 0
}
]
]
},
"027a9c9c-4ebd-497a-8e61-a3ee63b99666": {
"main": [
[
{
"node": "ff80d6f4-6758-482c-b5eb-3fa927525948",
"type": "main",
"index": 0
}
]
]
},
"f0aef4a8-ca9a-48a1-b94e-4879adf679c1": {
"main": [
[
{
"node": "165556d9-c325-4eb9-b1b2-4983f3fda5a4",
"type": "main",
"index": 0
}
]
]
},
"27c0f663-3833-4f67-8f2d-5efcd1a9b8a2": {
"main": [
[
{
"node": "027a9c9c-4ebd-497a-8e61-a3ee63b99666",
"type": "main",
"index": 0
}
]
]
},
"1e689ab2-32d1-453f-b30b-61eb8ac5e1db": {
"main": [
[
{
"node": "be5e7900-7ae8-4c56-83d5-d0984767abff",
"type": "main",
"index": 0
}
]
]
},
"ad1c63fb-4aae-48a2-8329-20afd04e069d": {
"main": [
[
{
"node": "1e689ab2-32d1-453f-b30b-61eb8ac5e1db",
"type": "main",
"index": 0
}
]
]
},
"24f5b810-03cc-49d7-bc64-7748f6be9686": {
"main": [
[
{
"node": "140113e8-31da-45f2-901a-cb83bd183478",
"type": "main",
"index": 0
}
]
]
},
"407bd6d8-8b90-47bd-84f8-c15f32ea1cf4": {
"ai_languageModel": [
[
{
"node": "f9e36727-f376-4bb3-b32f-bd55eab82e88",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"bce283e2-29fd-47a1-9cfe-c4cf50f4e35d": {
"main": [
[
{
"node": "160e8e02-8f70-4c8f-a3c4-a94cf2325b82",
"type": "main",
"index": 0
},
{
"node": "3cabcbee-b685-4d9a-9f11-9a3328d70fcd",
"type": "main",
"index": 0
}
]
]
},
"a8716edb-e05a-43a5-a38f-384fa05e93cf": {
"main": [
[
{
"node": "160e8e02-8f70-4c8f-a3c4-a94cf2325b82",
"type": "main",
"index": 0
},
{
"node": "3cabcbee-b685-4d9a-9f11-9a3328d70fcd",
"type": "main",
"index": 0
}
]
]
},
"ff80d6f4-6758-482c-b5eb-3fa927525948": {
"main": [
[
{
"node": "f9e36727-f376-4bb3-b32f-bd55eab82e88",
"type": "main",
"index": 0
}
]
]
},
"160e8e02-8f70-4c8f-a3c4-a94cf2325b82": {
"main": [
[
{
"node": "ad1c63fb-4aae-48a2-8329-20afd04e069d",
"type": "main",
"index": 1
}
]
]
},
"37e21a39-2383-4934-9b41-81b76c484974": {
"main": [
[
{
"node": "ad1c63fb-4aae-48a2-8329-20afd04e069d",
"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é ?
Avancé - Finance, Intelligence Artificielle, Opérations IT
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
Ysqander
@ysqanderPartager ce workflow