{
  "id": "HWsEhnkLn4XfhWIc",
  "name": "05 EDI File Processing - Completed",
  "tags": [
    {
      "id": "oKGIn6U0wpeHShTN",
      "name": "working flow",
      "createdAt": "2025-06-02T06:27:44.762Z",
      "updatedAt": "2025-06-02T06:27:44.762Z"
    }
  ],
  "nodes": [
    {
      "id": "ac1d38b5-6177-4b36-9a23-c26889e94a78",
      "name": "When clicking \u2018Test workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -280,
        1060
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "2daa8cbd-acc8-4365-938b-b3caf49ad9ea",
      "name": "Pinecone Vector Store1",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        540,
        100
      ],
      "parameters": {
        "mode": "insert",
        "options": {},
        "pineconeIndex": {
          "__rl": true,
          "mode": "list",
          "value": "package1536",
          "cachedResultName": "package1536"
        }
      },
      "credentials": {
        "pineconeApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "52f425bf-9269-43fc-a685-482ea5cf3e0c",
      "name": "Embeddings OpenAI1",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        440,
        360
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "7ed2dc8d-60ef-4c65-935c-fca4e7502c06",
      "name": "Default Data Loader1",
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "position": [
        600,
        360
      ],
      "parameters": {
        "options": {},
        "dataType": "binary"
      },
      "typeVersion": 1
    },
    {
      "id": "44ad4300-31f9-4e14-904a-de23f9a5b81c",
      "name": "Recursive Character Text Splitter1",
      "type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
      "position": [
        680,
        540
      ],
      "parameters": {
        "options": {},
        "chunkOverlap": 50
      },
      "typeVersion": 1
    },
    {
      "id": "f9512cb3-5b71-4a65-91eb-19f01130c459",
      "name": "Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        120,
        100
      ],
      "parameters": {
        "filter": {
          "folderId": {
            "__rl": true,
            "mode": "list",
            "value": "1fuSiN8yukGRr27nigbt4oUsffIpzg_L7",
            "cachedResultUrl": "https://drive.google.com/drive/folders/1fuSiN8yukGRr27nigbt4oUsffIpzg_L7",
            "cachedResultName": "SabreEDIFileGuide"
          }
        },
        "options": {},
        "resource": "fileFolder",
        "returnAll": true
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "cc3a857b-9053-4fbf-aec0-91604a3cc608",
      "name": "Google Drive1",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        300,
        100
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {},
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "cbdd35c6-8c8b-4eb4-910b-ef77cd440916",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -320,
        -60
      ],
      "parameters": {
        "width": 1740,
        "height": 740,
        "content": "## Vectorizing Sabre Interface User Record (IUR) \n**The Sabre Interface User Record (IUR) supports travel agency back-office functions for Ticketing, Invoicing and Itinerary type entries. The IUR is used to store and transmit information gathered from the Passenger Name Record (PNR) in Sabre to the back-office system via an asynchronous communications device utilizing a standard EIA-RS2312C signal transmission.**"
      },
      "typeVersion": 1
    },
    {
      "id": "c25c8091-66ab-4ba9-88be-cc5870a88b98",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        500,
        1280
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "de06cb47-a14a-4c4a-8398-679bd4ed6e4f",
      "name": "Pinecone Vector Store",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        660,
        1280
      ],
      "parameters": {
        "mode": "retrieve-as-tool",
        "options": {
          "pineconeNamespace": ""
        },
        "toolName": "PackageDetails",
        "pineconeIndex": {
          "__rl": true,
          "mode": "list",
          "value": "package1536",
          "cachedResultName": "package1536"
        },
        "toolDescription": "Return the Accounts Payable details reading the information from the input file. "
      },
      "credentials": {
        "pineconeApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "c06ce64d-e52d-4901-8d9b-78276315a43c",
      "name": "Embeddings OpenAI",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        680,
        1440
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "17f220b8-51c3-4819-b14d-44acb827e9d1",
      "name": "Extract from File",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        320,
        1060
      ],
      "parameters": {
        "options": {},
        "operation": "text"
      },
      "typeVersion": 1
    },
    {
      "id": "1a62d317-36fa-4cbf-991e-ae9fefc43da4",
      "name": "Account Receivable Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        540,
        1060
      ],
      "parameters": {
        "text": "=\nUse the incoming EDI files and generate Account Receivable Report by going throug each file, listing the account receivables for each PNR and the passenger data. \n {{ $json.data }}",
        "options": {
          "systemMessage": "##Role##\nYou are an Accounting and Finance Reporting Expert and you understand the incoming EDI file from which you extract data and compile Accounts Receivable (AR) Summary Report\n\nInstruction:\nRead the incoming EDI file and identify the accounting info and generate accounting receivable report. \nIf there are data that you don't understand, query the pinecone vector database where the complete guidelines is stored for the undersatnding. \nOutput just the table with the data. No need to give a dscription in the begining. \n\nGenerate report in the below tabular format that is extractable in JSON format: \n\n{\n  [\n    {\"passenger\": \"Sergei\", \"fare\": 414, \"tax\": 34.88, \"total\": 448.88}\n  ]\n}\nNote:\nNever ever create your own AR report if in doubt or missing data.\n"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.9
    },
    {
      "id": "f3d494ce-439e-4b74-96c7-b4aeea412b6b",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -320,
        720
      ],
      "parameters": {
        "width": 1740,
        "height": 860,
        "content": "## Reports from EDI file\n1. Accounts Receivable (AR) Summary Report\n2. Accounts Payable (AP) Report\n3. Tax and Surcharges Report\n4. Passenger Revenue Report\n5. Daily Sales Report\n6. Uncollected Revenue / Payment Status Report\n7. Commission Report (if applicable)\n8. Audit & Compliance Report\n9. Ticketing Report\n10. Profit Margin Report (if commission & supplier cost known)\n"
      },
      "typeVersion": 1
    },
    {
      "id": "12e76ce9-9bf6-42ea-9059-252a1e39d50d",
      "name": "Google Drive: extract files",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -80,
        1060
      ],
      "parameters": {
        "filter": {
          "folderId": {
            "__rl": true,
            "mode": "list",
            "value": "172VdwV-JNLv0H7i7OXRMjYqIshg6ow1O",
            "cachedResultUrl": "https://drive.google.com/drive/folders/172VdwV-JNLv0H7i7OXRMjYqIshg6ow1O",
            "cachedResultName": "EDIFileForProcessing"
          }
        },
        "options": {},
        "resource": "fileFolder",
        "returnAll": true
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "a7f51cdc-614e-460a-8327-9cc20c61741a",
      "name": "Google Drive: download file contents",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        120,
        1060
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {},
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "296bbaf6-a5fb-4be4-8e83-cb8d6a696b12",
      "name": "OpenAI Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        960,
        1280
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "74f71aa2-dde2-4bb8-8142-dfe5bb0ca896",
      "name": "Pinecone Vector Store2",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        1120,
        1280
      ],
      "parameters": {
        "mode": "retrieve-as-tool",
        "options": {
          "pineconeNamespace": ""
        },
        "toolName": "PackageDetails",
        "pineconeIndex": {
          "__rl": true,
          "mode": "list",
          "value": "package1536",
          "cachedResultName": "package1536"
        },
        "toolDescription": "Return the Tax Summary aligning to the input file"
      },
      "credentials": {
        "pineconeApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "5206c19e-bd8b-4e24-bf6d-225af26fdd48",
      "name": "Embeddings OpenAI2",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        1140,
        1440
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a1b109f9-3259-48d7-a426-c876d3aaf97e",
      "name": "Tax and Surcharges Report",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1000,
        1060
      ],
      "parameters": {
        "text": "=\nUse the incoming EDI files and generate Tax and Surcharges Report by going through each file, listing the tax surcharge report for each PNR and the passenger data. \n {{ $json.data }}",
        "options": {
          "systemMessage": "##Role##\nYou are an Accounting and Finance Reporting Expert and you understand the incoming EDI file from which you extract data and compile Tax and Surcharges Report\n\nInstruction:\nRead the incoming EDI file and identify the accounting info and generate accounting receivable report. \nIf there are data that you don't understand, query the pinecone vector database where the complete guidelines is stored for the undersatnding. \nOutput just the table with the data. No need to give a dscription in the begining. \n\nGenerate report in the below tabular format that is extractable in JSON format: \n\n [\n    {\"taxType\": \"JD\", \"amount\": 23.84}\n  ]\n\nNote:\nNever ever create your own Tax report if in doubt or missing data.\n"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.9
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "c9cacda3-eb77-4755-a95b-fd7f97615d4d",
  "connections": {
    "Google Drive": {
      "main": [
        [
          {
            "node": "Google Drive1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive1": {
      "main": [
        [
          {
            "node": "Pinecone Vector Store1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI": {
      "ai_embedding": [
        [
          {
            "node": "Pinecone Vector Store",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File": {
      "main": [
        [
          {
            "node": "Account Receivable Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Account Receivable Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI1": {
      "ai_embedding": [
        [
          {
            "node": "Pinecone Vector Store1",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI2": {
      "ai_embedding": [
        [
          {
            "node": "Pinecone Vector Store2",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Tax and Surcharges Report",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Default Data Loader1": {
      "ai_document": [
        [
          {
            "node": "Pinecone Vector Store1",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Pinecone Vector Store": {
      "ai_tool": [
        [
          {
            "node": "Account Receivable Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Pinecone Vector Store1": {
      "main": [
        []
      ]
    },
    "Pinecone Vector Store2": {
      "ai_tool": [
        [
          {
            "node": "Tax and Surcharges Report",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Account Receivable Agent": {
      "main": [
        []
      ]
    },
    "Google Drive: extract files": {
      "main": [
        [
          {
            "node": "Google Drive: download file contents",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Test workflow\u2019": {
      "main": [
        [
          {
            "node": "Google Drive: extract files",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Recursive Character Text Splitter1": {
      "ai_textSplitter": [
        [
          {
            "node": "Default Data Loader1",
            "type": "ai_textSplitter",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive: download file contents": {
      "main": [
        [
          {
            "node": "Extract from File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}