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

🤖Contact Agent
View
Create Custom Presentations per Lead
View
Splitout HTTP Create Webhook
View
Perplexity Researcher
View
Clockify Backup Template
View
Facebookleadads Stickynote Automate Triggered
View
Discord AI bot
View
Openai Form Create Triggered
View
Wait Splitout Create Webhook
View