Workflow: Extractfromfile HTTP Automation

Workflow Details

Download Workflow
{
    "id": "XnGZZfT5u0Cw1X3p",
    "meta": {
        "instanceId": "3378b0d68c3b7ebfc71b79896d94e1a044dec38e99a1160aed4e9c323910fbe2",
        "templateCredsSetupCompleted": true
    },
    "name": "Attachments Gmail to drive and google sheets",
    "tags": [],
    "nodes": [
        {
            "id": "0404ef0a-9750-495a-8798-98d4b059a083",
            "name": "Sticky Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -580,
                -420
            ],
            "parameters": {
                "height": 440,
                "content": "## Setup\n1. Setup your **Gmail** and **Google Drive** credentials\n2. Setup your **Google Sheets** credentials\n3. Setup your **Openai** api key"
            },
            "typeVersion": 1
        },
        {
            "id": "8751a7f1-aae4-4746-aae7-3d8563845b8c",
            "name": "Gmail Trigger1",
            "type": "n8n-nodes-base.gmailTrigger",
            "position": [
                -640,
                120
            ],
            "parameters": {
                "simple": false,
                "filters": {
                    "readStatus": "unread"
                },
                "options": {
                    "downloadAttachments": true
                },
                "pollTimes": {
                    "item": [
                        {
                            "mode": "everyMinute"
                        }
                    ]
                }
            },
            "credentials": {
                "gmailOAuth2": {
                    "id": "v8YJP3VfeGtRk5la",
                    "name": "Gmail account"
                }
            },
            "typeVersion": 1.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "40f62192-5acb-4915-aa07-e5a0dfeb7581",
            "name": "Setup1",
            "type": "n8n-nodes-base.set",
            "position": [
                -300,
                120
            ],
            "parameters": {
                "options": [],
                "assignments": {
                    "assignments": [
                        {
                            "id": "4cca07a2-6a70-4011-a025-65246e652fb9",
                            "name": "url_to_drive_folder",
                            "type": "string",
                            "value": "1fCWCdqrFP3WrjjLc-gJtxMaiaF5lh8Ko"
                        }
                    ]
                },
                "includeOtherFields": true
            },
            "typeVersion": 3.399999999999999911182158029987476766109466552734375
        },
        {
            "id": "d928e797-8851-4ab4-9199-cd555a40eae9",
            "name": "Upload PDF to Drive1",
            "type": "n8n-nodes-base.httpRequest",
            "maxTries": 5,
            "position": [
                220,
                0
            ],
            "parameters": {
                "url": "https:\/\/www.googleapis.com\/upload\/drive\/v3\/files",
                "method": "POST",
                "options": [],
                "sendBody": true,
                "sendQuery": true,
                "contentType": "binaryData",
                "authentication": "predefinedCredentialType",
                "queryParameters": {
                    "parameters": [
                        {
                            "name": "uploadType",
                            "value": "media"
                        }
                    ]
                },
                "inputDataFieldName": "={{ $binary.attachment_0.mimeType === \"application\/pdf\"\n     ? \"attachment_0\"\n     : \"attachment_1\" }}",
                "nodeCredentialType": "googleDriveOAuth2Api"
            },
            "credentials": {
                "googleDriveOAuth2Api": {
                    "id": "p5I6S4YkJps1zvwz",
                    "name": "Google Drive account 2"
                }
            },
            "retryOnFail": true,
            "typeVersion": 4.20000000000000017763568394002504646778106689453125
        },
        {
            "id": "22df6933-a0c7-4cce-8114-5332038a14c3",
            "name": "Rename file1",
            "type": "n8n-nodes-base.googleDrive",
            "position": [
                400,
                0
            ],
            "parameters": {
                "fileId": {
                    "__rl": true,
                    "mode": "id",
                    "value": "={{ $json.id }}"
                },
                "options": [],
                "operation": "update",
                "newUpdatedFileName": "={{ $('Setup1').item.json.subject }}_invoice_{{ $now.format('yyyy-MM-dd') }}.pdf"
            },
            "credentials": {
                "googleDriveOAuth2Api": {
                    "id": "p5I6S4YkJps1zvwz",
                    "name": "Google Drive account 2"
                }
            },
            "typeVersion": 3
        },
        {
            "id": "ce6a6a4c-17ba-4cf7-b07a-97b9d8d80844",
            "name": "Move to the correct folder1",
            "type": "n8n-nodes-base.googleDrive",
            "position": [
                580,
                0
            ],
            "parameters": {
                "fileId": {
                    "__rl": true,
                    "mode": "id",
                    "value": "={{ $json.id }}"
                },
                "driveId": {
                    "__rl": true,
                    "mode": "list",
                    "value": "My Drive",
                    "cachedResultUrl": "https:\/\/drive.google.com\/drive\/my-drive",
                    "cachedResultName": "My Drive"
                },
                "folderId": {
                    "__rl": true,
                    "mode": "list",
                    "value": "1fCWCdqrFP3WrjjLc-gJtxMaiaF5lh8Ko",
                    "cachedResultUrl": "",
                    "cachedResultName": "2025"
                },
                "operation": "move"
            },
            "credentials": {
                "googleDriveOAuth2Api": {
                    "id": "p5I6S4YkJps1zvwz",
                    "name": "Google Drive account 2"
                }
            },
            "typeVersion": 3
        },
        {
            "id": "e64aac5c-a314-46b6-b7db-fc0d6f450e1f",
            "name": "Gmail",
            "type": "n8n-nodes-base.gmail",
            "position": [
                1240,
                0
            ],
            "webhookId": "556cbee3-8de0-4645-9e91-e7c0c252f2ab",
            "parameters": {
                "messageId": "={{ $('Gmail Trigger1').item.json.id }}",
                "operation": "markAsRead"
            },
            "credentials": {
                "gmailOAuth2": {
                    "id": "v8YJP3VfeGtRk5la",
                    "name": "Gmail account"
                }
            },
            "typeVersion": 2.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "ea74cfc1-0305-418d-9f5f-bffcfb3bb2c7",
            "name": "Extract from File2",
            "type": "n8n-nodes-base.extractFromFile",
            "position": [
                1200,
                -180
            ],
            "parameters": {
                "options": [],
                "operation": "pdf"
            },
            "typeVersion": 1
        },
        {
            "id": "0398d982-78fd-4830-b5cf-271195af80fd",
            "name": "Google Drive",
            "type": "n8n-nodes-base.googleDrive",
            "position": [
                800,
                0
            ],
            "parameters": {
                "fileId": {
                    "__rl": true,
                    "mode": "id",
                    "value": "={{ $json.id }}"
                },
                "options": [],
                "operation": "download"
            },
            "credentials": {
                "googleDriveOAuth2Api": {
                    "id": "p5I6S4YkJps1zvwz",
                    "name": "Google Drive account 2"
                }
            },
            "typeVersion": 3
        },
        {
            "id": "3b4a96d4-a6ee-486a-a795-fe410ccc38b2",
            "name": "OpenAI Model",
            "type": "@n8n\/n8n-nodes-langchain.lmOpenAi",
            "position": [
                1740,
                20
            ],
            "parameters": {
                "model": {
                    "__rl": true,
                    "mode": "list",
                    "value": "gpt-4o",
                    "cachedResultName": "gpt-4o"
                },
                "options": {
                    "temperature": 0
                }
            },
            "credentials": {
                "openAiApi": {
                    "id": "XJdxgMSXFgwReSsh",
                    "name": "n8n key"
                }
            },
            "typeVersion": 1
        },
        {
            "id": "a7dd0d95-5e79-4bd2-a8a6-2178264d19fc",
            "name": "Structured Output Parser",
            "type": "@n8n\/n8n-nodes-langchain.outputParserStructured",
            "position": [
                1940,
                40
            ],
            "parameters": {
                "jsonSchema": "{\n  \"Invoice date\": { \"type\": \"date\" },\n  \"Invoice description\": { \"type\": \"string\" },\n  \"Total price\": { \"type\": \"number\" },\n  \"Fichero\": { \"type\": \"string\" }\n}"
            },
            "typeVersion": 1.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "68d98f4c-e679-48e3-a1a1-529cda4e31a4",
            "name": "Append to Reconciliation Sheet",
            "type": "n8n-nodes-base.googleSheets",
            "position": [
                2280,
                -140
            ],
            "parameters": {
                "columns": {
                    "value": [],
                    "schema": [
                        {
                            "id": "Invoice date",
                            "type": "string",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "Invoice date",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "Invoice Description",
                            "type": "string",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "Invoice Description",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "Total price",
                            "type": "string",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "Total price",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "Fichero",
                            "type": "string",
                            "display": true,
                            "removed": false,
                            "required": false,
                            "displayName": "Fichero",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        }
                    ],
                    "mappingMode": "autoMapInputData",
                    "matchingColumns": [],
                    "attemptToConvertTypes": false,
                    "convertFieldsToString": false
                },
                "options": [],
                "operation": "append",
                "sheetName": {
                    "__rl": true,
                    "mode": "id",
                    "value": "gid=0"
                },
                "documentId": {
                    "__rl": true,
                    "mode": "list",
                    "value": "1gIUnjSWUhsoTOVVd4ZoVjARCGQfGE8s7FWcju3lNajM",
                    "cachedResultUrl": "",
                    "cachedResultName": "facturas"
                }
            },
            "credentials": {
                "googleSheetsOAuth2Api": {
                    "id": "3IOU2VjBnR4hGohx",
                    "name": "Google Sheets account"
                }
            },
            "typeVersion": 4.29999999999999982236431605997495353221893310546875
        },
        {
            "id": "80e1c8f4-b593-4c5f-b9e2-f3b7996ee6d4",
            "name": "Sticky Note2",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                1680,
                -400
            ],
            "parameters": {
                "color": 7,
                "width": 805.05783519242277179728262126445770263671875,
                "height": 656.50141861281781530124135315418243408203125,
                "content": "## 3. Use LLMs to Extract Values from Data\n[Read more about Basic LLM Chain](https:\/\/docs.n8n.io\/integrations\/builtin\/cluster-nodes\/root-nodes\/n8n-nodes-langchain.chainllm\/)\n\nLarge language models are perfect for data extraction tasks as they can work across a range of document layouts without human intervention. The extracted data can then be sent to a variety of datastores such as spreadsheets, accounting systems and\/or CRMs.\n\n**Tip:** The \"Structured Output Parser\" ensures the AI output can be\ninserted to our spreadsheet without additional clean up and\/or formatting. "
            },
            "typeVersion": 1
        },
        {
            "id": "3754e10e-a233-4ce0-bc79-bb5c01db9695",
            "name": "Map Output",
            "type": "n8n-nodes-base.set",
            "position": [
                2080,
                -140
            ],
            "parameters": {
                "mode": "raw",
                "options": [],
                "jsonOutput": "={{ $json.output }}"
            },
            "typeVersion": 3.29999999999999982236431605997495353221893310546875
        },
        {
            "id": "a42ff16f-d0df-4b6d-9a36-849f85d1facc",
            "name": "Apply Data Extraction Rules",
            "type": "@n8n\/n8n-nodes-langchain.chainLlm",
            "position": [
                1740,
                -140
            ],
            "parameters": {
                "text": "=Given the following invoice in the <invoice> xml tags, extract the following information as listed below.\nIf you cannot the information for a specific item, then leave blank and skip to the next. \n\n* Invoice date\n* Invoice Description: {{ $('Rename file1').item.json.name }}\n* Total price\n* Fichero: =HYPERLINK(\"https:\/\/drive.google.com\/file\/d\/{{ $('Move to the correct folder1').item.json.id }}\/view\", \"Ver Documento\")\n\n\n<invoice>{{ $json.text }}<\/invoice>",
                "promptType": "define",
                "hasOutputParser": true
            },
            "typeVersion": 1.399999999999999911182158029987476766109466552734375
        },
        {
            "id": "f6de5d5a-d2dc-4590-8f46-3f250b8fca9f",
            "name": "Sticky Note6",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                1860,
                0
            ],
            "parameters": {
                "width": 192.26896179623753369014593772590160369873046875,
                "height": 213.7304366257225183289847336709499359130859375,
                "content": "\n\n\n\n\n\n\n\n\n\n\n\n**Need more attributes?**\nChange it here!"
            },
            "typeVersion": 1
        },
        {
            "id": "255fe8c1-5bd7-41cc-b1f9-c8956b5ad101",
            "name": "Only invoice mails with attachments",
            "type": "n8n-nodes-base.if",
            "position": [
                0,
                120
            ],
            "parameters": {
                "options": [],
                "conditions": {
                    "options": {
                        "version": 1,
                        "leftValue": "",
                        "caseSensitive": true,
                        "typeValidation": "strict"
                    },
                    "combinator": "or",
                    "conditions": [
                        {
                            "id": "229200d1-ec13-4970-ae0e-2c8e17da0bdf",
                            "operator": {
                                "type": "string",
                                "operation": "contains"
                            },
                            "leftValue": "={{ $('Gmail Trigger1').item.json.headers['content-type'] }}",
                            "rightValue": "multipart\/mixed"
                        },
                        {
                            "id": "new-condition",
                            "operator": {
                                "type": "boolean",
                                "operation": "isNotEmpty"
                            },
                            "leftValue": "={{ $json.attachments }}"
                        }
                    ]
                }
            },
            "typeVersion": 2.100000000000000088817841970012523233890533447265625
        }
    ],
    "active": true,
    "pinData": [],
    "settings": {
        "executionOrder": "v1"
    },
    "versionId": "eb152808-e993-4e18-9dd8-10f21df57bf1",
    "connections": {
        "Gmail": {
            "main": [
                []
            ]
        },
        "Setup1": {
            "main": [
                [
                    {
                        "node": "Only invoice mails with attachments",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Map Output": {
            "main": [
                [
                    {
                        "node": "Append to Reconciliation Sheet",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Google Drive": {
            "main": [
                [
                    {
                        "node": "Extract from File2",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "OpenAI Model": {
            "ai_languageModel": [
                [
                    {
                        "node": "Apply Data Extraction Rules",
                        "type": "ai_languageModel",
                        "index": 0
                    }
                ]
            ]
        },
        "Rename file1": {
            "main": [
                [
                    {
                        "node": "Move to the correct folder1",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Gmail Trigger1": {
            "main": [
                [
                    {
                        "node": "Setup1",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Extract from File2": {
            "main": [
                [
                    {
                        "node": "Apply Data Extraction Rules",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Upload PDF to Drive1": {
            "main": [
                [
                    {
                        "node": "Rename file1",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Structured Output Parser": {
            "ai_outputParser": [
                [
                    {
                        "node": "Apply Data Extraction Rules",
                        "type": "ai_outputParser",
                        "index": 0
                    }
                ]
            ]
        },
        "Apply Data Extraction Rules": {
            "main": [
                [
                    {
                        "node": "Map Output",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Move to the correct folder1": {
            "main": [
                [
                    {
                        "node": "Gmail",
                        "type": "main",
                        "index": 0
                    },
                    {
                        "node": "Google Drive",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Only invoice mails with attachments": {
            "main": [
                [
                    {
                        "node": "Upload PDF to Drive1",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Gmail",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

Manual Mysql Automation Triggered
View
Generate Instagram Content from Top Trends with AI Image Generation
View
Telegram Mondaycom Automate Triggered
View
GoogleSheets Interval Process Scheduled
View
Generate Instagram Content from Top Trends with AI Image Generation
View
Filter Form Send Triggered
View
AI-Driven WooCommerce Product Importer with SEO
View
Prepare CSV files with GPT-4
View
[3/3] Anomaly detection tool (crops dataset)
View
Get messages with a certain label, remove the label, and add a new one
View