Workflow: ✨🔪 Advanced AI Powered Document Parsing & Text Extraction with Llama Parse
Integrations: aggregate, gmail, gmailTrigger, googleDrive, googleSheets, httpRequest, if, limit, merge, noOp, set, stickyNote, telegram, webhook

{"id": "kjyWJWfDlyXkKL3m", "meta": {"instanceId": "workflow-b8222634", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:57.784137", "updatedAt": "2025-09-29T07:07:57.784158", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production"}, "name": "\u2728\ud83d\udd2a Advanced AI Powered Document Parsing & Text Extraction with Llama Parse", "tags": ["automation", "n8n", "production-ready", "excellent", "optimized"], "nodes": [{"id": "ea7670da-896e-4b9c-b0c2-b3a3dbb6f88f", "name": "Webhook", "type": "n8n-nodes-base.webhook", "position": [-2320, 80], "webhookId": "a9668054-5bd3-427d-8f18-932436441e42", "parameters": {"path": "parse", "options": {}, "httpMethod": "POST"}, "typeVersion": 2, "notes": "This webhook node performs automated tasks as part of the workflow."}, {"id": "2c445d40-5d8b-469e-811e-7423f57ba054", "name": "Gmail", "type": "n8n-nodes-base.gmail", "position": [-2040, -1260], "webhookId": "344de9dc-4062-4552-ae29-1e9150322cdb", "parameters": {"limit": 28, "filters": {"q": "has:attachment", "sender": " joe@example.com"}, "operation": "getAll"}, "credentials": {"gmailOAuth2": {"id": "1xpVDEQ1yx8gV022", "name": "Gmail account"}}, "typeVersion": 2.1, "notes": "This gmail node performs automated tasks as part of the workflow."}, {"id": "f321e1d3-24ba-4623-bb31-93c7f6389aa9", "name": "Gmail Trigger", "type": "n8n-nodes-base.gmailTrigger", "position": [-2360, -1260], "parameters": {"filters": {}, "pollTimes": {"item": [{"mode": "everyMinute"}, {}]}}, "credentials": {"gmailOAuth2": {"id": "1xpVDEQ1yx8gV022", "name": "Gmail account"}}, "typeVersion": 1.2, "notes": "This gmailTrigger node performs automated tasks as part of the workflow."}, {"id": "ad2701f8-be77-465e-bd58-0e964ba412c0", "name": "Limit", "type": "n8n-nodes-base.limit", "position": [-1840, -1260], "parameters": {"keep": "lastItems"}, "typeVersion": 1, "notes": "This limit node performs automated tasks as part of the workflow."}, {"id": "c305dbce-714a-420e-8dd0-f5c6e80afa01", "name": "Get Message", "type": "n8n-nodes-base.gmail", "position": [-1640, -1260], "webhookId": "13036143-6e5b-47c1-84a4-a92cbc33b37f", "parameters": {"simple": false, "options": {"downloadAttachments": true, "dataPropertyAttachmentsPrefixName": "=file"}, "messageId": "={{ $('Gmail').item.json.id }}", "operation": "get"}, "credentials": {"gmailOAuth2": {"id": "1xpVDEQ1yx8gV022", "name": "Gmail account"}}, "typeVersion": 2.1, "notes": "This gmail node performs automated tasks as part of the workflow."}, {"id": "0e67527b-c886-41a1-b66b-c965fd6b44f3", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [-920, -1500], "parameters": {"color": 6, "width": 320, "height": 340, "content": "## Send to LlamaParse\n{{ $env.API_BASE_URL }}"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "85e72267-7be0-49ac-b305-4c07356ce244", "name": "Parse Document with LlamaParse", "type": "n8n-nodes-base.httpRequest", "position": [-800, -1360], "parameters": {"url": "{{ $env.API_BASE_URL }}", "method": "POST", "options": {"response": {"response": {"responseFormat": "json"}}}, "sendBody": true, "contentType": "multipart-form-data", "sendHeaders": true, "authentication": "{{ $credentials.genericCredentialType }}", "bodyParameters": {"parameters": [{"name": "=file", "parameterType": "formBinaryData", "inputDataFieldName": "file0"}, {"name": "webhook_url", "value": "={{ $env.WEBHOOK_URL }}"}, {"name": "accurate_mode", "value": "true"}, {"name": "premium_mode", "value": "false"}]}, "genericAuthType": "httpHeaderAuth", "headerParameters": {"parameters": [{"name": "accept", "value": "application/json"}]}}, "credentials": {"httpHeaderAuth": {"id": "9trkgqZBCEmSt6ng", "name": "GET Webhook"}}, "executeOnce": true, "typeVersion": 4.2, "alwaysOutputData": true, "notes": "This httpRequest node performs automated tasks as part of the workflow."}, {"id": "2664705a-31d5-439b-b1e4-fc6b708a7baa", "name": "Summarize Email", "type": "n8n-nodes-base.noOp", "position": [-820, -680], "parameters": {"text": "={{ $('Is there an Email Attachement').item.json.text }}", "messages": {"messageValues": [{"message": "You are an expert at summarizing email messages.  Provide a summary of the provided email."}]}, "promptType": "define"}, "typeVersion": 1.5, "notes": "This chainLlm node performs automated tasks as part of the workflow."}, {"id": "1405f933-b281-469f-a5b7-0de2f820dd09", "name": "gpt-4o-mini", "type": "n8n-nodes-base.noOp", "position": [-720, -540], "parameters": {"model": {"__rl": true, "mode": "list", "value": "gpt-4o-mini"}, "options": {}}, "credentials": {"openAiApi": {"id": "jEMSvKmtYfzAkhe6", "name": "OpenAi account"}}, "typeVersion": 1.2, "notes": "This lmChatOpenAi node performs automated tasks as part of the workflow."}, {"id": "ea299469-7889-45c9-a8f1-679be09e5aaf", "name": "Save LlamaParse ID and Summary to Google Sheets", "type": "n8n-nodes-base.googleSheets", "position": [-140, -1020], "parameters": {"columns": {"value": {"jobid": "={{ $json.id }}", "summary": "={{ $json.text }}", "image_url": "{{ $env.BASE_URL }}"}, "schema": [{"id": "jobid", "type": "string", "display": true, "removed": false, "required": false, "displayName": "jobid", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "statement_date", "type": "string", "display": true, "removed": true, "required": false, "displayName": "statement_date", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "org_name", "type": "string", "display": true, "removed": true, "required": false, "displayName": "org_name", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "member_name", "type": "string", "display": true, "removed": true, "required": false, "displayName": "member_name", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "subtotal", "type": "string", "display": true, "removed": true, "required": false, "displayName": "subtotal", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "service_fees_total", "type": "string", "display": true, "removed": true, "required": false, "displayName": "service_fees_total", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "tips_total", "type": "string", "display": true, "removed": true, "required": false, "displayName": "tips_total", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "current_excl_gst", "type": "string", "display": true, "removed": true, "required": false, "displayName": "current_excl_gst", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "container_deposit_total", "type": "string", "display": true, "removed": true, "required": false, "displayName": "container_deposit_total", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "outstanding_gst", "type": "string", "display": true, "removed": true, "required": false, "displayName": "outstanding_gst", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "paid_gst", "type": "string", "display": true, "removed": true, "required": false, "displayName": "paid_gst", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "total_gst", "type": "string", "display": true, "removed": true, "required": false, "displayName": "total_gst", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "total_bc_pst", "type": "string", "display": true, "removed": true, "required": false, "displayName": "total_bc_pst", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "total_bc_pst_liquor", "type": "string", "display": true, "removed": true, "required": false, "displayName": "total_bc_pst_liquor", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "total_savings", "type": "string", "display": true, "removed": true, "required": false, "displayName": "total_savings", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "final_amount_due", "type": "string", "display": true, "removed": true, "required": false, "displayName": "final_amount_due", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "payment_reference", "type": "string", "display": true, "removed": true, "required": false, "displayName": "payment_reference", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "payment_amount", "type": "string", "display": true, "removed": true, "required": false, "displayName": "payment_amount", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "transaction_number", "type": "string", "display": true, "removed": true, "required": false, "displayName": "transaction_number", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "image_url", "type": "string", "display": true, "removed": false, "required": false, "displayName": "image_url", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "summary", "type": "string", "display": true, "removed": false, "required": false, "displayName": "summary", "defaultMatch": false, "canBeUsedToMatch": true}], "mappingMode": "defineBelow", "matchingColumns": ["jobid"], "attemptToConvertTypes": false, "convertFieldsToString": false}, "options": {}, "operation": "appendOrUpdate", "sheetName": {"__rl": true, "mode": "list", "value": "gid=0", "cachedResultUrl": "{{ $env.WEBHOOK_URL }}", "cachedResultName": "Expenses"}, "documentId": {"__rl": true, "mode": "list", "value": "1mUvDI9sGvRl64iNV6ODXUzro5Q3Oeuaks5662tfN7Oo", "cachedResultUrl": "{{ $env.WEBHOOK_URL }}", "cachedResultName": "2024.Year.End.Expenses"}}, "credentials": {"googleSheetsOAuth2Api": {"id": "SOLbth24hZWisXAv", "name": "Google Sheets account"}}, "typeVersion": 4.5, "notes": "This googleSheets node performs automated tasks as part of the workflow."}, {"id": "d8454cf2-5bef-4bfa-9471-c358ff067765", "name": "Save Document to Google Drive", "type": "n8n-nodes-base.googleDrive", "position": [-820, -1020], "parameters": {"name": "={{ $('Is there an Email Attachement').item.json.id }}_{{ $('Is there an Email Attachement').item.binary.file0.fileName }}", "driveId": {"__rl": true, "mode": "list", "value": "My Drive"}, "options": {}, "folderId": {"__rl": true, "mode": "list", "value": "root", "cachedResultUrl": "{{ $env.WEBHOOK_URL }}", "cachedResultName": "/ (Root folder)"}, "inputDataFieldName": "=file0"}, "credentials": {"googleDriveOAuth2Api": {"id": "UhdXGYLTAJbsa0xX", "name": "Google Drive account"}}, "typeVersion": 3, "notes": "This googleDrive node performs automated tasks as part of the workflow."}, {"id": "03f46b72-9e18-44a4-85ef-0eea058c3c6d", "name": "Extract Invoice Details as JSON", "type": "n8n-nodes-base.noOp", "onError": "continueErrorOutput", "position": [-1180, 500], "parameters": {"text": "=Analyze this markdown content and convert it to JSON following this exact schema:\n{\n    \"invoice_details\": {\n        \"statement_date\": \"\",\n        \"organization\": {\n            \"name\": \"\",\n            \"address\": \"\",\n            \"gst_number\": \"\"\n        },\n        \"member\": {\n            \"name\": \"\",\n            \"company\": \"\",\n            \"address\": \"\",\n            \"contact_number\": \"\",\n            \"organization_number\": \"\"\n        }\n    },\n    \"transactions\": [\n        {\n            \"date\": \"\",\n            \"document_number\": \"\",\n            \"description\": \"\",\n            \"base_amount\": 0.00,\n            \"gst\": 0.00,\n            \"bc_pst\": 0.00,\n            \"bc_pst_liquor\": 0.00,  # Added for liquor PST\n            \"container_deposit\": 0.00,  # Added for bottle deposits\n            \"service_fee\": 0.00,\n            \"tip_amount\": 0.00,\n            \"regular_price\": 0.00,  # Added for regular price tracking\n            \"savings_amount\": 0.00,  # Added for savings tracking\n            \"total_charge\": 0.00,\n            \"transaction_type\": \"\"\n        }\n    ],\n    \"payment_details\": {\n        \"previous_balance\": 0.00,\n        \"payment_amount\": 0.00,\n        \"payment_reference\": \"\",\n        \"payment_date\": \"\",\n        \"payment_method\": \"\",\n        \"payment_status\": \"\",\n        \"card_number\": \"\",  # Added for card details\n        \"auth_number\": \"\",  # Added for authorization\n        \"transaction_number\": \"\"\n    },\n    \"invoice_summary\": {\n        \"subtotal\": 0.00,\n        \"service_fees_total\": 0.00,\n        \"tips_total\": 0.00,\n        \"current_excl_gst\": 0.00,\n        \"container_deposit_total\": 0.00,  # Added for deposits\n        \"outstanding_gst\": 0.00,\n        \"paid_gst\": 0.00,\n        \"total_gst\": 0.00,\n        \"total_bc_pst\": 0.00,\n        \"total_bc_pst_liquor\": 0.00,  # Added for liquor PST if shown in markdown content\n        \"total_savings\": 0.00,  # Added for savings\n        \"final_amount_due\": 0.00\n    },\n    \"payment_terms\": {\n        \"due_date\": \"\",\n        \"processing_date\": \"\",\n        \"special_notices\": [],\n        \"cancellation_policy\": \"\",\n        \"refund_policy\": \"\",\n        \"return_policy\": \"\"  # Added for return policy\n    },\n    \"additional_info\": {\n        \"booking_number\": \"\",\n        \"transaction_time\": \"\",  # Added for transaction time\n        \"register_info\": \"\",     # Added for register details\n        \"event_details\": {\n            \"date\": \"\",\n            \"time\": \"\",\n            \"location\": \"\"\n        },\n        \"special_instructions\": []\n    },\n    \"summary\": \"\" # The natural language summary of the invoice\n}\n\nMarkdown Content:\n{{ $json.data }}\n\nImportant:\n- Extract exact values from the markdown\n- Return only valid JSON\n- Include all fields even if empty\n- Format numbers as floats with 2 decimal places\n- Track container deposits separately\n- Show liquor PST (10%) separately from regular PST if provided in markdown content\n- Include regular prices and savings amounts\n- Track transaction details including card info and authorization\n- Parse return policy information\n- Include register and transaction time details\n- Ensure final_amount_due equals the sum of all applicable charges and taxes\n- Summarize the markdown contents\n- Only output valid JSON without any preamble or further explanation.  Remove any ```json and ``` from response.", "promptType": "define"}, "typeVersion": 1.5, "alwaysOutputData": true, "notes": "This chainLlm node performs automated tasks as part of the workflow."}, {"id": "3c371677-76e8-45d7-8c05-a4ca1cc0b1fe", "name": "gpt-4o-mini1", "type": "n8n-nodes-base.noOp", "position": [-1600, 240], "parameters": {"options": {}}, "credentials": {"openAiApi": {"id": "jEMSvKmtYfzAkhe6", "name": "OpenAi account"}}, "typeVersion": 1, "notes": "This lmChatOpenAi node performs automated tasks as part of the workflow."}, {"id": "9ff3f86f-9ffc-42fa-b428-a6bfabf2426a", "name": "gpt-4o-mini2", "type": "n8n-nodes-base.noOp", "position": [-1080, 640], "parameters": {"model": "gpt-4o", "options": {}}, "credentials": {"openAiApi": {"id": "jEMSvKmtYfzAkhe6", "name": "OpenAi account"}}, "typeVersion": 1, "notes": "This lmChatOpenAi node performs automated tasks as part of the workflow."}, {"id": "69a0505f-1fe4-4581-ad2d-5bc7d68874e9", "name": "Update Google Sheet by LlamaParse ID", "type": "n8n-nodes-base.googleSheets", "position": [-540, 600], "parameters": {"columns": {"value": {"jobid": "={{ $('Webhook').item.json.body.jobId }}", "summary": "={{ $json.output.summary }}", "org_name": "={{ $json.output.invoice_details.organization.name }}", "paid_gst": "={{ $json.output.invoice_summary.paid_gst }}", "subtotal": "={{ $json.output.invoice_summary.subtotal }}", "total_gst": "={{ $json.output.invoice_summary.total_gst }}", "tips_total": "={{ $json.output.invoice_summary.tips_total }}", "member_name": "={{ $json.output.invoice_details.member.name }}", "total_bc_pst": "={{ $json.output.invoice_summary.total_bc_pst }}", "total_savings": "={{ $json.output.invoice_summary.total_savings }}", "payment_amount": "={{ $json.output.payment_details.payment_amount }}", "statement_date": "={{ $json.output.invoice_details.statement_date }}", "outstanding_gst": "={{ $json.output.invoice_summary.outstanding_gst }}", "current_excl_gst": "={{ $json.output.invoice_summary.current_excl_gst }}", "final_amount_due": "={{ $json.output.invoice_summary.final_amount_due }}", "payment_reference": "={{ $json.output.payment_details.payment_reference }}", "service_fees_total": "={{ $json.output.invoice_summary.service_fees_total }}", "transaction_number": "={{ $json.output.payment_details.transaction_number }}", "total_bc_pst_liquor": "={{ $json.output.invoice_summary.total_bc_pst_liquor }}", "container_deposit_total": "={{ $json.output.invoice_summary.container_deposit_total }}"}, "schema": [{"id": "jobid", "type": "string", "display": true, "removed": false, "required": false, "displayName": "jobid", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "statement_date", "type": "string", "display": true, "removed": false, "required": false, "displayName": "statement_date", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "org_name", "type": "string", "display": true, "removed": false, "required": false, "displayName": "org_name", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "member_name", "type": "string", "display": true, "removed": false, "required": false, "displayName": "member_name", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "subtotal", "type": "string", "display": true, "removed": false, "required": false, "displayName": "subtotal", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "service_fees_total", "type": "string", "display": true, "removed": false, "required": false, "displayName": "service_fees_total", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "tips_total", "type": "string", "display": true, "removed": false, "required": false, "displayName": "tips_total", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "current_excl_gst", "type": "string", "display": true, "removed": false, "required": false, "displayName": "current_excl_gst", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "container_deposit_total", "type": "string", "display": true, "removed": false, "required": false, "displayName": "container_deposit_total", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "outstanding_gst", "type": "string", "display": true, "removed": false, "required": false, "displayName": "outstanding_gst", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "paid_gst", "type": "string", "display": true, "removed": false, "required": false, "displayName": "paid_gst", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "total_gst", "type": "string", "display": true, "removed": false, "required": false, "displayName": "total_gst", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "total_bc_pst", "type": "string", "display": true, "removed": false, "required": false, "displayName": "total_bc_pst", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "total_bc_pst_liquor", "type": "string", "display": true, "removed": false, "required": false, "displayName": "total_bc_pst_liquor", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "total_savings", "type": "string", "display": true, "removed": false, "required": false, "displayName": "total_savings", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "final_amount_due", "type": "string", "display": true, "removed": false, "required": false, "displayName": "final_amount_due", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "payment_reference", "type": "string", "display": true, "removed": false, "required": false, "displayName": "payment_reference", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "payment_amount", "type": "string", "display": true, "removed": false, "required": false, "displayName": "payment_amount", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "transaction_number", "type": "string", "display": true, "removed": false, "required": false, "displayName": "transaction_number", "defaultMatch": false, "canBeUsedToMatch": true}, {"id": "summary", "type": "string", "display": true, "removed": false, "required": false, "displayName": "summary", "defaultMatch": false, "canBeUsedToMatch": true}], "mappingMode": "defineBelow", "matchingColumns": ["jobid"]}, "options": {}, "operation": "update", "sheetName": {"__rl": true, "mode": "list", "value": "gid=0", "cachedResultUrl": "{{ $env.WEBHOOK_URL }}", "cachedResultName": "Expenses"}, "documentId": {"__rl": true, "mode": "list", "value": "1mUvDI9sGvRl64iNV6ODXUzro5Q3Oeuaks5662tfN7Oo", "cachedResultUrl": "{{ $env.WEBHOOK_URL }}", "cachedResultName": "2024.Year.End.Expenses"}}, "credentials": {"googleSheetsOAuth2Api": {"id": "SOLbth24hZWisXAv", "name": "Google Sheets account"}}, "typeVersion": 4.5, "notes": "This googleSheets node performs automated tasks as part of the workflow."}, {"id": "19907cba-4530-4f25-8a6f-435b1f8d23ad", "name": "Invoice Details", "type": "n8n-nodes-base.set", "position": [-780, 400], "parameters": {"options": {}, "assignments": {"assignments": [{"id": "e145ed8c-cdea-4e5a-ba11-d8ce595dfb8d", "name": "output", "type": "object", "value": "={{ $json.text }}"}]}}, "typeVersion": 3.4, "notes": "This set node performs automated tasks as part of the workflow."}, {"id": "af95c024-8e36-499b-af32-4c661da49a61", "name": "Prepare Message", "type": "n8n-nodes-base.set", "position": [-540, 400], "parameters": {"options": {}, "assignments": {"assignments": [{"id": "3e566101-2ad9-444b-8459-451ba6a91575", "name": "invoice_details.statement_date", "type": "string", "value": "={{ $json.output.invoice_details.statement_date }}"}, {"id": "57a466f6-d354-4864-98d3-ba4673afde98", "name": "invoice_details.organization", "type": "object", "value": "={{ $json.output.invoice_details.organization }}"}, {"id": "e1b22978-8114-4956-a5fc-3efbc43335a3", "name": "invoice_details.member", "type": "object", "value": "={{ $json.output.invoice_details.member }}"}, {"id": "e45a744c-0874-48b7-b59a-9d83aad27ff3", "name": "payment_details", "type": "object", "value": "={{ $json.output.payment_details }}"}, {"id": "c0335dc7-1b5c-41fc-b60a-bf45248c9f7f", "name": "invoice_summary", "type": "object", "value": "={{ $json.output.invoice_summary }}"}, {"id": "6c9ba3bf-37a6-4a8f-b97d-991f3ce6950f", "name": "summary", "type": "string", "value": "={{ $json.output.summary }}"}]}}, "typeVersion": 3.4, "notes": "This set node performs automated tasks as part of the workflow."}, {"id": "333f42a7-2665-4613-89c9-c184d764af37", "name": "Send Invoice Details as Telegram Message", "type": "n8n-nodes-base.telegram", "position": [-340, 400], "webhookId": "04464e72-2be3-4df9-8a08-18d23cb75d72", "parameters": {"text": "={{ $json.summary }}\n--------\n{{ $json.invoice_summary.toJsonString() }}", "chatId": "={{ $env.TELEGRAM_CHAT_ID }}", "additionalFields": {"parse_mode": "HTML", "appendAttribution": false}}, "credentials": {"telegramApi": {"id": "pAIFhguJlkO3c7aQ", "name": "Telegram account"}}, "typeVersion": 1.2, "notes": "This telegram node performs automated tasks as part of the workflow."}, {"id": "faa0768f-1d4c-42c4-902c-b2d0d40f0eb4", "name": "gpt-4o-mini3", "type": "n8n-nodes-base.noOp", "position": [-1080, 60], "parameters": {"model": "gpt-4o", "options": {}}, "credentials": {"openAiApi": {"id": "jEMSvKmtYfzAkhe6", "name": "OpenAi account"}}, "typeVersion": 1, "notes": "This lmChatOpenAi node performs automated tasks as part of the workflow."}, {"id": "d1a54284-60d1-4fac-b81b-4ed1610ddf2e", "name": "Send Error Message 2", "type": "n8n-nodes-base.telegram", "position": [-780, 600], "webhookId": "3ba1ee6d-1648-4421-823b-e68ae14d769b", "parameters": {"text": "=Error in workflow", "chatId": "={{ $env.TELEGRAM_CHAT_ID }}", "additionalFields": {"parse_mode": "HTML", "appendAttribution": false}}, "credentials": {"telegramApi": {"id": "pAIFhguJlkO3c7aQ", "name": "Telegram account"}}, "typeVersion": 1.2, "notes": "This telegram node performs automated tasks as part of the workflow."}, {"id": "b1b50042-8270-4e13-b7b1-6d017e9be8d9", "name": "Send Error Message 1", "type": "n8n-nodes-base.telegram", "position": [-780, 60], "webhookId": "3ba1ee6d-1648-4421-823b-e68ae14d769b", "parameters": {"text": "=Error in workflow", "chatId": "={{ $env.TELEGRAM_CHAT_ID }}", "additionalFields": {"parse_mode": "HTML", "appendAttribution": false}}, "credentials": {"telegramApi": {"id": "pAIFhguJlkO3c7aQ", "name": "Telegram account"}}, "typeVersion": 1.2, "notes": "This telegram node performs automated tasks as part of the workflow."}, {"id": "a365c8a1-c0fb-43f7-84fa-b68a0e9c087e", "name": "Send Document Summary as Telegram Message", "type": "n8n-nodes-base.telegram", "position": [-540, -200], "webhookId": "04464e72-2be3-4df9-8a08-18d23cb75d72", "parameters": {"text": "={{ $json.text }}", "chatId": "={{ $env.TELEGRAM_CHAT_ID }}", "additionalFields": {"parse_mode": "HTML", "appendAttribution": false}}, "credentials": {"telegramApi": {"id": "pAIFhguJlkO3c7aQ", "name": "Telegram account"}}, "typeVersion": 1.2, "notes": "This telegram node performs automated tasks as part of the workflow."}, {"id": "6abd00a0-2971-49f9-812f-f65a0004136b", "name": "Summarize Document", "type": "n8n-nodes-base.noOp", "onError": "continueErrorOutput", "position": [-1180, -80], "parameters": {"text": "=Please analyze this document and provide:\n\n## Document Analysis\n- A concise executive summary (2-3 sentences)\n- Key themes and main points\n- Notable findings or insights\n- Data highlights and important statistics (if applicable)\n\n## Recommendations\n- Action items or next steps\n- Areas requiring further investigation\n- Potential implications\n\n## Format Requirements\n- Structure the analysis using clear headers and sections\n- Include relevant quotes to support key points\n- Present any numerical data in tables or bullet points\n- Highlight critical information using bold text\n\nPlease maintain the original document's context while making the content more accessible and actionable.\n\nHere is the document: {{ $json.data }}\n", "promptType": "define"}, "typeVersion": 1.5, "alwaysOutputData": true, "notes": "This chainLlm node performs automated tasks as part of the workflow."}, {"id": "e672bcf3-0d5f-4410-ac5b-660c3ba0c456", "name": "Classify Parsed Document", "type": "n8n-nodes-base.noOp", "position": [-1680, 80], "parameters": {"options": {}, "inputText": "={{ $json.data }}", "categories": {"categories": [{"category": "not invoice", "description": "The document is not an invoice"}, {"category": "invoice", "description": "The document is an invoice"}]}}, "typeVersion": 1, "notes": "This textClassifier node performs automated tasks as part of the workflow."}, {"id": "cc522966-3e6a-4830-bde9-d4e251752ec0", "name": "Get Parsed Markdown", "type": "n8n-nodes-base.set", "position": [-1980, 80], "parameters": {"options": {}, "assignments": {"assignments": [{"id": "55b5a755-eeaf-4ce7-b600-e6c864dc7e10", "name": "data", "type": "string", "value": "={{ $json.body.md }}"}]}}, "typeVersion": 3.4, "notes": "This set node performs automated tasks as part of the workflow."}, {"id": "683fa521-dfd0-4b1c-905f-d5a4f56ab65a", "name": "Prepare Data", "type": "n8n-nodes-base.set", "position": [-640, -1020], "parameters": {"options": {}, "assignments": {"assignments": [{"id": "cee9e2d3-b311-4903-9867-e7d3d7ed2456", "name": "google_drive_fileid", "type": "string", "value": "={{ $json.id }}"}, {"id": "5c6eddf6-5a5e-4c51-87ed-8e3aabc2f65d", "name": "webViewLink", "type": "string", "value": "={{ $json.webViewLink }}"}]}}, "typeVersion": 3.4, "notes": "This set node performs automated tasks as part of the workflow."}, {"id": "b64a21ab-0e1f-4d6c-b718-a9aaaa27ae19", "name": "HTTP Request", "type": "n8n-nodes-base.httpRequest", "position": [-2040, -860], "parameters": {"url": "{{ $env.API_BASE_URL }}", "options": {}}, "typeVersion": 4.2, "notes": "This httpRequest node performs automated tasks as part of the workflow."}, {"id": "cd0699cf-3a95-4dc8-806a-6a01339c598d", "name": "Is there an Email Attachement", "type": "n8n-nodes-base.if", "position": [-1420, -1260], "parameters": {"options": {}, "conditions": {"options": {"version": 2, "leftValue": "", "caseSensitive": true, "typeValidation": "strict"}, "combinator": "and", "conditions": [{"id": "460b82e5-30f5-4cb3-a937-a275fd256fcc", "operator": {"type": "object", "operation": "exists", "singleValue": true}, "leftValue": "={{ $input.item.binary }}", "rightValue": ""}]}}, "typeVersion": 2.2, "notes": "This if node performs automated tasks as part of the workflow."}, {"id": "269ba37f-fa18-4333-be3c-eee6ef5c0f56", "name": "Aggregate", "type": "n8n-nodes-base.aggregate", "position": [-1840, -860], "parameters": {"options": {}, "aggregate": "aggregateAllItemData", "destinationFieldName": "extensions"}, "typeVersion": 1, "notes": "This aggregate node performs automated tasks as part of the workflow."}, {"id": "dffd2e83-58ff-49a0-b547-3b6f4b92dfa9", "name": "Edit Fields", "type": "n8n-nodes-base.set", "position": [-1620, -860], "parameters": {"options": {}, "assignments": {"assignments": [{"id": "c9c59aae-b507-4493-a047-495bed344a5e", "name": "extension", "type": "string", "value": "=.{{ $('Is there an Email Attachement').item.binary.file0.fileExtension }}"}]}}, "typeVersion": 3.4, "notes": "This set node performs automated tasks as part of the workflow."}, {"id": "02a121a4-edea-45c4-b325-2f61b3d0b02e", "name": "Merge Email Processing", "type": "n8n-nodes-base.merge", "position": [-380, -1020], "parameters": {"mode": "combine", "options": {}, "combineBy": "combineByPosition", "numberInputs": 3}, "typeVersion": 3, "notes": "This merge node performs automated tasks as part of the workflow."}, {"id": "c1310be3-6448-48d1-a954-caa3d4651075", "name": "Merge", "type": "n8n-nodes-base.merge", "position": [-1120, -1020], "parameters": {"mode": "combine", "options": {}, "combineBy": "combineAll"}, "typeVersion": 3, "notes": "This merge node performs automated tasks as part of the workflow."}, {"id": "dbe3a235-0bae-4743-b53e-154b75911482", "name": "If Supported File Extensions", "type": "n8n-nodes-base.if", "position": [-1420, -860], "parameters": {"options": {}, "conditions": {"options": {"version": 2, "leftValue": "", "caseSensitive": true, "typeValidation": "strict"}, "combinator": "and", "conditions": [{"id": "f76cc5a7-6882-4e1f-86d5-99d5d9e90a34", "operator": {"type": "boolean", "operation": "true", "singleValue": true}, "leftValue": "={{ $('Aggregate').item.json.extensions.includes($json.extension)}}", "rightValue": ""}]}}, "typeVersion": 2.2, "notes": "This if node performs automated tasks as part of the workflow."}, {"id": "1413f84b-d1a9-4b0c-ae43-7f303a54527e", "name": "No Operation, do nothing", "type": "n8n-nodes-base.noOp", "position": [-1120, -1260], "parameters": {}, "typeVersion": 1, "notes": "This noOp node performs automated tasks as part of the workflow."}, {"id": "9f3ae287-cb8b-466c-8dbe-678be30c2c04", "name": "No Operation, do nothing1", "type": "n8n-nodes-base.noOp", "position": [-1120, -780], "parameters": {}, "typeVersion": 1, "notes": "This noOp node performs automated tasks as part of the workflow."}, {"id": "6f9b5ae2-22e8-4dc8-ba0b-06fbc585f209", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [-2140, -980], "parameters": {"width": 920, "height": 320, "content": "## Check for Supported File Extension\n{{ $env.API_BASE_URL }}"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "28c5c09a-9a15-4af9-8253-59ae36dfe390", "name": "Sticky Note2", "type": "n8n-nodes-base.stickyNote", "position": [-2140, -1420], "parameters": {"color": 3, "width": 920, "height": 400, "content": "## Get Emails with Attachments\n### \u2600\ufe0fDisclaimer\nThis workflow only processes the the first attachment of the email.\nAdjust search and limit settings to suit your use case."}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "3174a934-3b64-47b2-b81b-bfe717a034e2", "name": "Sticky Note3", "type": "n8n-nodes-base.stickyNote", "position": [-920, -1120], "parameters": {"color": 4, "width": 460, "height": 300, "content": "## Save Document to Google Drive"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "92f079d1-c5bd-45fe-9372-7ff521eda15b", "name": "Sticky Note4", "type": "n8n-nodes-base.stickyNote", "position": [-920, -780], "parameters": {"color": 5, "width": 460, "height": 380, "content": "## Summarize the Email Message"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "fd7d7e7a-005a-4a43-a3de-e9bb036bb615", "name": "Sticky Note5", "type": "n8n-nodes-base.stickyNote", "position": [-220, -1120], "parameters": {"color": 4, "width": 300, "height": 300, "content": "## Save To Google Sheets"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "c6469054-0345-4371-8928-21a04c21b131", "name": "Sticky Note9", "type": "n8n-nodes-base.stickyNote", "position": [-3060, -1540], "parameters": {"width": 540, "height": 1340, "content": "# Description\n\nThis workflow automates document processing using LlamaParse to extract and analyze text from various file formats. It intelligently processes documents, extracts structured data, and delivers actionable insights through multiple channels.\n\n## How It Works\n\n### Document Ingestion & Processing \ud83d\udcc4\n- Monitors Gmail for incoming attachments or accepts documents via webhook\n- Validates file formats against supported LlamaParse extensions\n- Uploads documents to LlamaParse for advanced text extraction\n- Stores original documents in Google Drive for reference\n\n### Intelligent Document Analysis \ud83e\udde0\n- Automatically classifies document types (invoices, reports, etc.)\n- Extracts structured data using customized AI prompts\n- Generates comprehensive document summaries with key insights\n- Converts unstructured text into organized JSON data\n\n### Invoice Processing Automation \ud83d\udcbc\n- Extracts critical invoice details (dates, amounts, line items)\n- Organizes financial data into structured formats\n- Calculates tax breakdowns, subtotals, and payment information\n- Maintains detailed records for accounting purposes\n\n### Multi-Channel Delivery \ud83d\udcf1\n- Saves extracted data to Google Sheets for tracking and analysis\n- Sends concise summaries via Telegram for immediate review\n- Creates searchable document archives in Google Drive\n- Updates spreadsheets with structured financial information\n\n## Setup Steps\n\n### Configure API Credentials \ud83d\udd11\n- Set up LlamaParse API connection\n- Configure Gmail OAuth for email monitoring\n- Set up Google Drive and Sheets integrations\n- Add Telegram bot credentials for notifications\n\n### Customize AI Processing \u2699\ufe0f\n- Adjust document classification parameters\n- Modify extraction templates for specific document types\n- Fine-tune summary generation prompts\n- Customize invoice data extraction schema\n\n### Test and Deploy \ud83d\ude80\n- Test with sample documents of various formats\n- Verify data extraction accuracy\n- Confirm notification delivery\n- Monitor processing pipeline performance\n\n\n"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "b2024905-5c3b-49d5-89b9-ef41c4a4283c", "name": "Sticky Note8", "type": "n8n-nodes-base.stickyNote", "position": [-2440, -1340], "parameters": {"color": 4, "width": 260, "height": 280, "content": "## \ud83d\udc4dTry Me!"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "22284854-4005-4678-94f8-d914e031e6fc", "name": "Sticky Note6", "type": "n8n-nodes-base.stickyNote", "position": [-2480, -1540], "parameters": {"color": 7, "width": 2600, "height": 1180, "content": "# \u2728\ud83d\udd2a Advanced AI Powered Document Parsing & Text Extraction with Llama Parse\n"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "4f0c910e-7ae6-40ac-a659-c14a6704aaba", "name": "Sticky Note7", "type": "n8n-nodes-base.stickyNote", "position": [-1280, 280], "parameters": {"color": 6, "width": 1160, "height": 540, "content": "## Example Invoice Processing\n"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "e63bbfe8-8be7-4e3f-a8f5-a85b2ee82959", "name": "Sticky Note10", "type": "n8n-nodes-base.stickyNote", "position": [-1220, 360], "parameters": {"width": 360, "height": 420, "content": "## Extract Invoice as JSON\n\u2600\ufe0fUpdate User & System Prompt for Your Specific Use Case"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "d321e139-0828-4932-b5a9-ef11f6ae9baa", "name": "Sticky Note11", "type": "n8n-nodes-base.stickyNote", "position": [-1280, -280], "parameters": {"color": 5, "width": 980, "height": 520, "content": "## Example Document Summarizing\n"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "ab9081bd-c1c5-4db1-8dcd-ff243a7ab9be", "name": "Sticky Note12", "type": "n8n-nodes-base.stickyNote", "position": [-1220, -200], "parameters": {"width": 360, "height": 400, "content": "## Summarize Document\n\u2600\ufe0fUpdate User & System Prompt for Your Specific Use Case"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "c08bbfa8-abe1-47e2-babe-b62581bcd011", "name": "Sticky Note13", "type": "n8n-nodes-base.stickyNote", "position": [-1760, -40], "parameters": {"color": 4, "width": 440, "height": 420, "content": "## Classify Parsed Document\nAdd More Classifications as Required"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "5ffb907f-9701-401e-85e8-3b91a706ab10", "name": "Sticky Note14", "type": "n8n-nodes-base.stickyNote", "position": [-2060, -40], "parameters": {"color": 3, "width": 260, "height": 320, "content": "## Parsed Markdown from LlamaParse"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "a53034d2-34df-421a-aa14-d9d1bbc00fc5", "name": "Sticky Note15", "type": "n8n-nodes-base.stickyNote", "position": [-2440, -40], "parameters": {"width": 340, "height": 320, "content": "## Receive Parsed Document from LlamaParse"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "933f03f2-c231-4dcd-8aeb-ce716b8cc00e", "name": "Sticky Note16", "type": "n8n-nodes-base.stickyNote", "position": [-2480, -320], "parameters": {"color": 7, "width": 2400, "height": 1180, "content": "# \ud83e\ude9dWebhook to Receive LlamaParse Response"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "505a51e4-dea1-4876-964e-f59af728c65b", "name": "Sticky Note17", "type": "n8n-nodes-base.stickyNote", "position": [-1760, 420], "parameters": {"color": 5, "width": 440, "height": 400, "content": "## Save Parsed Document to Google Drive"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "33ca5eaf-30da-4360-a12b-a7dd8614743f", "name": "Save Summarized Document to Google Drive", "type": "n8n-nodes-base.googleDrive", "position": [-540, 0], "parameters": {"name": "={{ $('Webhook').item.json.body.jobId }}-summary.md", "content": "={{ $json.text }}", "driveId": {"__rl": true, "mode": "list", "value": "My Drive"}, "options": {}, "folderId": {"__rl": true, "mode": "list", "value": "root", "cachedResultUrl": "{{ $env.WEBHOOK_URL }}", "cachedResultName": "/ (Root folder)"}, "operation": "createFromText"}, "credentials": {"googleDriveOAuth2Api": {"id": "UhdXGYLTAJbsa0xX", "name": "Google Drive account"}}, "typeVersion": 3, "notes": "This googleDrive node performs automated tasks as part of the workflow."}, {"id": "a1e8264f-fa99-49a5-a837-6aaf3a2dc39a", "name": "Save Parsed Document to Google Drive", "type": "n8n-nodes-base.googleDrive", "position": [-1600, 560], "parameters": {"name": "={{ $('Webhook').item.json.body.jobId }}-parsed.md", "content": "={{ $json.data }}", "driveId": {"__rl": true, "mode": "list", "value": "My Drive"}, "options": {}, "folderId": {"__rl": true, "mode": "list", "value": "root", "cachedResultUrl": "{{ $env.WEBHOOK_URL }}", "cachedResultName": "/ (Root folder)"}, "operation": "createFromText"}, "credentials": {"googleDriveOAuth2Api": {"id": "UhdXGYLTAJbsa0xX", "name": "Google Drive account"}}, "typeVersion": 3, "notes": "This googleDrive node performs automated tasks as part of the workflow."}], "active": true, "pinData": {}, "settings": {"timezone": "UTC", "callerPolicy": "workflowsFromSameOwner", "executionOrder": "v1", "saveManualExecutions": true, "errorWorkflow": null, "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000}, "versionId": "c11e3a8a-499b-4b1e-b919-ffbed36ba898", "connections": {"ea7670da-896e-4b9c-b0c2-b3a3dbb6f88f": {"main": [[{"node": "error-handler-ea7670da-896e-4b9c-b0c2-b3a3dbb6f88f", "type": "main", "index": 0}], [{"node": "error-handler-ea7670da-896e-4b9c-b0c2-b3a3dbb6f88f-1f1f41eb", "type": "main", "index": 0}], [{"node": "error-handler-ea7670da-896e-4b9c-b0c2-b3a3dbb6f88f-63d417d5", "type": "main", "index": 0}], [{"node": "error-handler-ea7670da-896e-4b9c-b0c2-b3a3dbb6f88f-b7dbbac0", "type": "main", "index": 0}], [{"node": "error-handler-ea7670da-896e-4b9c-b0c2-b3a3dbb6f88f-9ed60432", "type": "main", "index": 0}], [{"node": "error-handler-ea7670da-896e-4b9c-b0c2-b3a3dbb6f88f-a8e57324", "type": "main", "index": 0}], [{"node": "error-handler-ea7670da-896e-4b9c-b0c2-b3a3dbb6f88f-f0dc559b", "type": "main", "index": 0}], [{"node": "error-handler-ea7670da-896e-4b9c-b0c2-b3a3dbb6f88f-ff4692b0", "type": "main", "index": 0}], [{"node": "error-handler-ea7670da-896e-4b9c-b0c2-b3a3dbb6f88f-6530f3ae", "type": "main", "index": 0}]]}, "85e72267-7be0-49ac-b305-4c07356ce244": {"main": [[{"node": "error-handler-85e72267-7be0-49ac-b305-4c07356ce244", "type": "main", "index": 0}], [{"node": "error-handler-85e72267-7be0-49ac-b305-4c07356ce244-eaf5bb32", "type": "main", "index": 0}], [{"node": "error-handler-85e72267-7be0-49ac-b305-4c07356ce244-25758410", "type": "main", "index": 0}], [{"node": "error-handler-85e72267-7be0-49ac-b305-4c07356ce244-09ba92f8", "type": "main", "index": 0}], [{"node": "error-handler-85e72267-7be0-49ac-b305-4c07356ce244-b43ebe56", "type": "main", "index": 0}], [{"node": "error-handler-85e72267-7be0-49ac-b305-4c07356ce244-c1867709", "type": "main", "index": 0}], [{"node": "error-handler-85e72267-7be0-49ac-b305-4c07356ce244-30b16c07", "type": "main", "index": 0}], [{"node": "error-handler-85e72267-7be0-49ac-b305-4c07356ce244-32b51d21", "type": "main", "index": 0}], [{"node": "error-handler-85e72267-7be0-49ac-b305-4c07356ce244-5ce9af05", "type": "main", "index": 0}]]}, "b64a21ab-0e1f-4d6c-b718-a9aaaa27ae19": {"main": [[{"node": "error-handler-b64a21ab-0e1f-4d6c-b718-a9aaaa27ae19", "type": "main", "index": 0}], [{"node": "error-handler-b64a21ab-0e1f-4d6c-b718-a9aaaa27ae19-2e3962ee", "type": "main", "index": 0}], [{"node": "error-handler-b64a21ab-0e1f-4d6c-b718-a9aaaa27ae19-f385f2d0", "type": "main", "index": 0}], [{"node": "error-handler-b64a21ab-0e1f-4d6c-b718-a9aaaa27ae19-64208001", "type": "main", "index": 0}], [{"node": "error-handler-b64a21ab-0e1f-4d6c-b718-a9aaaa27ae19-7aa9dd97", "type": "main", "index": 0}], [{"node": "error-handler-b64a21ab-0e1f-4d6c-b718-a9aaaa27ae19-ced0ea8e", "type": "main", "index": 0}], [{"node": "error-handler-b64a21ab-0e1f-4d6c-b718-a9aaaa27ae19-62ca2250", "type": "main", "index": 0}], [{"node": "error-handler-b64a21ab-0e1f-4d6c-b718-a9aaaa27ae19-e83fb7c7", "type": "main", "index": 0}], [{"node": "error-handler-b64a21ab-0e1f-4d6c-b718-a9aaaa27ae19-7e954c64", "type": "main", "index": 0}]]}, "1405f933-b281-469f-a5b7-0de2f820dd09": {"main": [[{"node": "error-handler-1405f933-b281-469f-a5b7-0de2f820dd09-7ff171c3", "type": "main", "index": 0}]]}, "ea299469-7889-45c9-a8f1-679be09e5aaf": {"main": [[{"node": "error-handler-ea299469-7889-45c9-a8f1-679be09e5aaf-411cad31", "type": "main", "index": 0}]]}, "d8454cf2-5bef-4bfa-9471-c358ff067765": {"main": [[{"node": "error-handler-d8454cf2-5bef-4bfa-9471-c358ff067765-74cc8ed9", "type": "main", "index": 0}]]}, "3c371677-76e8-45d7-8c05-a4ca1cc0b1fe": {"main": [[{"node": "error-handler-3c371677-76e8-45d7-8c05-a4ca1cc0b1fe-64ff6906", "type": "main", "index": 0}]]}, "9ff3f86f-9ffc-42fa-b428-a6bfabf2426a": {"main": [[{"node": "error-handler-9ff3f86f-9ffc-42fa-b428-a6bfabf2426a-fb73458a", "type": "main", "index": 0}]]}, "69a0505f-1fe4-4581-ad2d-5bc7d68874e9": {"main": [[{"node": "error-handler-69a0505f-1fe4-4581-ad2d-5bc7d68874e9-29fd748a", "type": "main", "index": 0}]]}, "333f42a7-2665-4613-89c9-c184d764af37": {"main": [[{"node": "error-handler-333f42a7-2665-4613-89c9-c184d764af37-50c22781", "type": "main", "index": 0}]]}, "faa0768f-1d4c-42c4-902c-b2d0d40f0eb4": {"main": [[{"node": "error-handler-faa0768f-1d4c-42c4-902c-b2d0d40f0eb4-f6e7252c", "type": "main", "index": 0}]]}, "d1a54284-60d1-4fac-b81b-4ed1610ddf2e": {"main": [[{"node": "error-handler-d1a54284-60d1-4fac-b81b-4ed1610ddf2e-64d1b115", "type": "main", "index": 0}]]}, "b1b50042-8270-4e13-b7b1-6d017e9be8d9": {"main": [[{"node": "error-handler-b1b50042-8270-4e13-b7b1-6d017e9be8d9-fc4e9730", "type": "main", "index": 0}]]}, "a365c8a1-c0fb-43f7-84fa-b68a0e9c087e": {"main": [[{"node": "error-handler-a365c8a1-c0fb-43f7-84fa-b68a0e9c087e-fbc8adfc", "type": "main", "index": 0}]]}, "33ca5eaf-30da-4360-a12b-a7dd8614743f": {"main": [[{"node": "error-handler-33ca5eaf-30da-4360-a12b-a7dd8614743f-29f66d7c", "type": "main", "index": 0}]]}, "a1e8264f-fa99-49a5-a837-6aaf3a2dc39a": {"main": [[{"node": "error-handler-a1e8264f-fa99-49a5-a837-6aaf3a2dc39a-70e44e22", "type": "main", "index": 0}]]}}, "description": "Automated workflow: \u2728\ud83d\udd2a Advanced AI Powered Document Parsing & Text Extraction with Llama Parse. This workflow integrates 18 different services: textClassifier, webhook, stickyNote, httpRequest, telegram. It contains 73 nodes and follows best practices for error handling and security.", "notes": "Excellent quality workflow: \u2728\ud83d\udd2a Advanced AI Powered Document Parsing & Text Extraction with Llama Parse. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}