8
n8n 한국어amn8n.com

PDF에서 주문으로

고급

이것은Document Extraction, Miscellaneous, Multimodal AI분야의자동화 워크플로우로, 96개의 노드를 포함합니다.주로 If, Set, Code, Wait, Limit 등의 노드를 사용하며. AI를 사용한 PDF 구매 주문서를 Adobe Commerce 판매 주문서로 자동 변환

사전 요구사항
  • 대상 API의 인증 정보가 필요할 수 있음
  • OpenAI API Key
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "id": "qfERlqqAvDjUMxQZ",
  "meta": {
    "instanceId": "965bb8e7bf93f91108971d05aa397ffa90b643c7ff8c03d51df51a28ffdc99dc"
  },
  "name": "PDF-to-order",
  "tags": [],
  "nodes": [
    {
      "id": "9890e277-89bd-4a3a-995f-eb06252cd1f6",
      "name": "파일에서 추출",
      "type": "n8n-nodes-base.extractFromFile",
      "disabled": true,
      "position": [
        128,
        1264
      ],
      "parameters": {
        "options": {},
        "operation": "pdf"
      },
      "typeVersion": 1
    },
    {
      "id": "395233c3-597c-4704-aa34-95700166f2ee",
      "name": "Create cart",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        6288,
        672
      ],
      "parameters": {
        "url": "=https://www.example.com/rest/V1/customers/{{ $('set Customer').item.json.customer.id}}/carts",
        "method": "POST",
        "options": {},
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "magento2Api"
      },
      "credentials": {
        "magento2Api": {
          "id": "yGyqOmSuvrgMUFB9",
          "name": "Magento 2 PROD"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "f2c25774-8c2e-4d83-9029-1ddcec3f1be9",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "disabled": true,
      "position": [
        -96,
        1264
      ],
      "webhookId": "107e8046-ec0a-449c-af5f-c2b5c34b7873",
      "parameters": {
        "options": {},
        "formTitle": "PDF",
        "formFields": {
          "values": [
            {
              "fieldType": "file",
              "fieldLabel": "data",
              "multipleFiles": false,
              "requiredField": true,
              "acceptFileTypes": ".pdf"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "dc25383f-c225-4b9b-a0a3-187281aeb673",
      "name": "set Customer",
      "type": "n8n-nodes-base.set",
      "position": [
        5552,
        784
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "b86f06ee-7dd4-46ec-a865-cd8312721771",
              "name": "customer",
              "type": "object",
              "value": "={{ $json.items[0] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "0f4c3f39-7dd7-4f30-a08d-e71d6a7b6522",
      "name": "set Quote Id",
      "type": "n8n-nodes-base.set",
      "position": [
        6560,
        672
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "861cd718-14ef-485f-8b32-94702984d310",
              "name": "quote_id",
              "type": "string",
              "value": "={{ $json }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "02230beb-0a2b-4e95-84cb-fbf1fd66ba0c",
      "name": "set Billing Address",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        11696,
        656
      ],
      "parameters": {
        "url": "=https://www.example.com/rest/V1/carts/{{ $('set Quote Id').first().json.quote_id }}/billing-address",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"address\": {\n    \"customer_address_id\": {{ $('set Address').first().json.id }}\n  },\n  \"useForShipping\": true\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "magento2Api"
      },
      "credentials": {
        "magento2Api": {
          "id": "yGyqOmSuvrgMUFB9",
          "name": "Magento 2 PROD"
        }
      },
      "executeOnce": true,
      "typeVersion": 4.2
    },
    {
      "id": "6a0265b7-1ced-4d10-a8b6-b904a696097f",
      "name": "estimate Shipping Methods",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        11920,
        656
      ],
      "parameters": {
        "url": "=https://www.example.com/rest/V1/carts/{{ $('set Quote Id').first().json.quote_id }}/estimate-shipping-methods",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"address\": {\n    \"firstname\": \"{{ $('set Customer').first().json.customer.addresses[0].firstname }}\",\n    \"lastname\": \"{{ $('set Customer').first().json.customer.addresses[0].lastname }}\",\n    \"street\": {{ JSON.stringify($('set Customer').first().json.customer.addresses[0].street) }},\n    \"city\": \"{{ $('set Customer').first().json.customer.addresses[0].city }}\",\n    \"postcode\": \"{{ $('set Customer').first().json.customer.addresses[0].postcode }}\",\n    \"region\": \"{{ $('set Customer').first().json.customer.addresses[0].region.region }}\",\n    \"country_id\": \"{{ $('set Customer').first().json.customer.addresses[0].country_id }}\"\n  }\n}\n",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "magento2Api"
      },
      "credentials": {
        "magento2Api": {
          "id": "yGyqOmSuvrgMUFB9",
          "name": "Magento 2 PROD"
        }
      },
      "executeOnce": true,
      "typeVersion": 4.2
    },
    {
      "id": "1fe3857b-dc7a-4147-b318-c02f703300d5",
      "name": "set Reference Number",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        13088,
        656
      ],
      "parameters": {
        "url": "=https://www.example.com/rest/V1/carts/{{ $('set Quote Id').first().json.quote_id }}/set-reference-number",
        "method": "PUT",
        "options": {},
        "jsonBody": "={\n    \"number\": \"{{ $('set OpenAI').first().json.content.po_number }}\"\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "magento2Api"
      },
      "credentials": {
        "magento2Api": {
          "id": "yGyqOmSuvrgMUFB9",
          "name": "Magento 2 PROD"
        }
      },
      "executeOnce": true,
      "typeVersion": 4.2
    },
    {
      "id": "2908f698-e451-4d37-a3f5-02d7cd88e505",
      "name": "set OpenAI",
      "type": "n8n-nodes-base.set",
      "position": [
        2016,
        1168
      ],
      "parameters": {
        "options": {
          "ignoreConversionErrors": true
        },
        "assignments": {
          "assignments": [
            {
              "id": "4501fdd9-135b-4717-92bd-fd591492e0ea",
              "name": "content",
              "type": "object",
              "value": "={{ JSON.parse($json.output) }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "491bd788-b44e-41b9-9c1c-fd58d71bccc8",
      "name": "set Order Comment",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        13312,
        656
      ],
      "parameters": {
        "url": "=https://www.example.com/rest/V1/carts/{{ $('set Quote Id').first().json.quote_id }}/order-comment",
        "method": "PUT",
        "options": {},
        "jsonBody": "={\n    \"comment\": \"The order has been automatically processed\"\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "magento2Api"
      },
      "credentials": {
        "magento2Api": {
          "id": "yGyqOmSuvrgMUFB9",
          "name": "Magento 2 PROD"
        }
      },
      "executeOnce": true,
      "typeVersion": 4.2
    },
    {
      "id": "6a9d7577-4008-42ff-a1ab-02a5e8f994d1",
      "name": "get Payment Methods",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        13536,
        656
      ],
      "parameters": {
        "url": "=https://www.example.com/rest/V1/carts/{{ $('set Quote Id').first().json.quote_id }}/payment-methods",
        "options": {},
        "jsonBody": "={\n  \"address\": {\n    \"firstname\": \"{{ $('set Customer').first().json.customer.addresses[0].firstname }}\",\n    \"lastname\": \"{{ $('set Customer').first().json.customer.addresses[0].lastname }}\",\n    \"street\": {{ JSON.stringify($('set Customer').first().json.customer.addresses[0].street) }},\n    \"city\": \"{{ $('set Customer').first().json.customer.addresses[0].city }}\",\n    \"postcode\": \"{{ $('set Customer').first().json.customer.addresses[0].postcode }}\",\n    \"region\": \"{{ $('set Customer').first().json.customer.addresses[0].region.region }}\",\n    \"country_id\": \"{{ $('set Customer').first().json.customer.addresses[0].country_id }}\"\n  }\n}\n",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "magento2Api"
      },
      "credentials": {
        "magento2Api": {
          "id": "yGyqOmSuvrgMUFB9",
          "name": "Magento 2 PROD"
        }
      },
      "executeOnce": true,
      "typeVersion": 4.2
    },
    {
      "id": "6ff7ff4f-dbeb-45f6-8307-25a8e931c1d8",
      "name": "집계",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        11344,
        528
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "1249cf58-e268-4039-b3e2-44fdf66b7a82",
      "name": "check Companycredit",
      "type": "n8n-nodes-base.code",
      "position": [
        13744,
        656
      ],
      "parameters": {
        "jsCode": "const items = $input.all(); // get all items\nconst paymentMethods = items.map(i => i.json); // extract JSON from each\n\nconst hasCompanyCredit = paymentMethods.some(method => method.code === 'companycredit');\n\nreturn [{\n  json: {\n    hasCompanyCredit\n  }\n}];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "e8a9fdec-1d08-41ef-b926-321da7390669",
      "name": "채팅 메시지 수신 시",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "disabled": true,
      "position": [
        -96,
        1056
      ],
      "webhookId": "faf3016b-04e2-4a37-816e-7d90c506d18a",
      "parameters": {
        "options": {
          "allowFileUploads": true,
          "allowedFilesMimeTypes": "pdf"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "79ce029f-ec9c-45ad-b55d-4dbe8c8ec5cd",
      "name": "파일에서 추출1",
      "type": "n8n-nodes-base.extractFromFile",
      "disabled": true,
      "position": [
        128,
        1056
      ],
      "parameters": {
        "options": {},
        "operation": "pdf",
        "binaryPropertyName": "data0"
      },
      "typeVersion": 1
    },
    {
      "id": "d2120bca-773d-4c2e-a404-1e1aad88a198",
      "name": "set Address",
      "type": "n8n-nodes-base.code",
      "position": [
        5712,
        784
      ],
      "parameters": {
        "jsCode": "const addresses = $json.customer.addresses || [];\n\nconst defaultAddress = addresses.find(addr => addr.default_shipping === true);\n\nreturn [{\n  json: {\n    ...defaultAddress\n  }\n}];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "05efafa7-bbd0-409b-b1c7-e38030a87030",
      "name": "get Configurable",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        7680,
        816
      ],
      "parameters": {
        "url": "=https://www.example.com/rest/V1/products?searchCriteria[filter_groups][0][filters][0][field]=sku_search&searchCriteria[filter_groups][0][filters][0][value]={{ $json.clean_articlenumber }}&searchCriteria[filter_groups][0][filters][0][condition_type]=eq",
        "options": {},
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "magento2Api"
      },
      "credentials": {
        "magento2Api": {
          "id": "yGyqOmSuvrgMUFB9",
          "name": "Magento 2 PROD"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "72eca58d-c3e0-47c9-82d7-3dff8207fbde",
      "name": "If companyCredit",
      "type": "n8n-nodes-base.if",
      "position": [
        13968,
        656
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "e2a48e26-f9ee-4b4b-84c5-f4b1759a4474",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $json.hasCompanyCredit }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "180a1faf-014b-41ec-a1e8-e6cf36ca9263",
      "name": "병합",
      "type": "n8n-nodes-base.merge",
      "position": [
        7904,
        688
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition"
      },
      "typeVersion": 3.1
    },
    {
      "id": "736d887a-006d-4aa3-b4ba-4344ba00aea8",
      "name": "set Express Shipping Method",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        12576,
        752
      ],
      "parameters": {
        "url": "=https://www.example.com/rest/V1/carts/{{ $('set Quote Id').first().json.quote_id }}/shipping-information",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"addressInformation\": {\n    \"shipping_address\": {\n       \"customer_address_id\": {{ $('set Customer').first().json.customer.addresses[0].id }},\n       \"country_id\": \"{{ $('set Customer').first().json.customer.addresses[0].country_id }}\"\n    },\n    \"shipping_carrier_code\": \"{{ $input.last().json.carrier_code }}\",\n    \"shipping_method_code\": \"{{ $input.last().json.method_code}}\"\n  }\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "magento2Api"
      },
      "credentials": {
        "magento2Api": {
          "id": "yGyqOmSuvrgMUFB9",
          "name": "Magento 2 PROD"
        }
      },
      "executeOnce": true,
      "typeVersion": 4.2
    },
    {
      "id": "12b39d6f-1265-4134-8c33-53b8629a01b7",
      "name": "제한",
      "type": "n8n-nodes-base.limit",
      "position": [
        12144,
        656
      ],
      "parameters": {
        "maxItems": 2
      },
      "typeVersion": 1
    },
    {
      "id": "44611b16-16a4-4a21-a73d-15a9d022239b",
      "name": "set Standard Shipping Method",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        12576,
        544
      ],
      "parameters": {
        "url": "=https://www.example.com/rest/V1/carts/{{ $('set Quote Id').first().json.quote_id }}/shipping-information",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"addressInformation\": {\n    \"shipping_address\": {\n       \"customer_address_id\": {{ $('set Customer').first().json.customer.addresses[0].id }},\n       \"country_id\": \"{{ $('set Customer').first().json.customer.addresses[0].country_id }}\"\n    },\n    \"shipping_carrier_code\": \"{{ $input.first().json.carrier_code }}\",\n    \"shipping_method_code\": \"{{ $input.first().json.method_code}}\"\n  }\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "magento2Api"
      },
      "credentials": {
        "magento2Api": {
          "id": "yGyqOmSuvrgMUFB9",
          "name": "Magento 2 PROD"
        }
      },
      "executeOnce": true,
      "typeVersion": 4.2
    },
    {
      "id": "384255bb-4301-4a4d-a08e-b25cf8f8c13c",
      "name": "set Feedback",
      "type": "n8n-nodes-base.set",
      "position": [
        6144,
        1936
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "7d430e2c-bc0f-4f7a-a718-e0f4a0e21a51",
              "name": "message",
              "type": "string",
              "value": "=No customers found in the webshop with emailadresses: {{ $('filter Emailadresses').item.json.content.email }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "fa659e1c-24ec-4540-b973-115a998a8bb4",
      "name": "set Clean Articlenumber",
      "type": "n8n-nodes-base.set",
      "position": [
        7440,
        672
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "1f4f162f-225c-41ae-b985-ae8962e6cccf",
              "name": "clean_articlenumber",
              "type": "string",
              "value": "={{ $json.articlenumber.replace(/[^a-zA-Z0-9]/g, '') }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "6a43fd7f-c7fb-4365-815f-315028af24b0",
      "name": "get Cart Items",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        6912,
        480
      ],
      "parameters": {
        "url": "=https://www.example.com/rest/V1/carts/{{ $json.quote_id }}/items",
        "options": {},
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "magento2Api"
      },
      "credentials": {
        "magento2Api": {
          "id": "yGyqOmSuvrgMUFB9",
          "name": "Magento 2 PROD"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "81a33420-77c6-4986-a1b4-84d222b7fc7f",
      "name": "remove From Shopping Cart",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        7136,
        480
      ],
      "parameters": {
        "url": "=https://www.example.com/rest/V1/carts/{{ $json.quote_id }}/items/{{ $json.item_id }}",
        "method": "DELETE",
        "options": {},
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "magento2Api"
      },
      "credentials": {
        "magento2Api": {
          "id": "yGyqOmSuvrgMUFB9",
          "name": "Magento 2 PROD"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "28409228-4cc4-47f0-be65-b4f1a94d7b8e",
      "name": "get Cart Items1",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        14416,
        112
      ],
      "parameters": {
        "url": "=https://www.example.com/rest/V1/carts/{{ parseFloat($('set Quote Id').item.json.quote_id) }}/items",
        "options": {},
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "magento2Api"
      },
      "credentials": {
        "magento2Api": {
          "id": "yGyqOmSuvrgMUFB9",
          "name": "Magento 2 PROD"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "2f6e189d-c322-43a1-83a9-3a3ca8f34567",
      "name": "remove From Shopping Cart1",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        14640,
        112
      ],
      "parameters": {
        "url": "=https://www.example.com/rest/V1/carts/{{ $json.quote_id }}/items/{{ $json.item_id }}",
        "method": "DELETE",
        "options": {},
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "magento2Api"
      },
      "credentials": {
        "magento2Api": {
          "id": "yGyqOmSuvrgMUFB9",
          "name": "Magento 2 PROD"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "f378aa93-9039-4003-aba8-466f9f32abfd",
      "name": "If Default Address",
      "type": "n8n-nodes-base.if",
      "position": [
        5872,
        784
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "fd484e2d-1124-4e78-a62a-efb39095b107",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.id }}",
              "rightValue": ""
            }
          ]
        },
        "looseTypeValidation": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "92de4eba-62fd-4314-a15d-ebcd4d0440b0",
      "name": "set Feedback Default Address",
      "type": "n8n-nodes-base.set",
      "position": [
        6144,
        1744
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "7d430e2c-bc0f-4f7a-a718-e0f4a0e21a51",
              "name": "message",
              "type": "string",
              "value": "=No default address found for customer {{ $('set Customer').item.json.customer.email }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "210ebce0-2feb-4bac-9b69-92f2848db0ed",
      "name": "스위치",
      "type": "n8n-nodes-base.switch",
      "position": [
        2944,
        944
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "Company1",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "40cc7660-de4b-49cc-8ff2-cbca3e3d77b6",
                    "operator": {
                      "type": "string",
                      "operation": "contains"
                    },
                    "leftValue": "={{ $json.content.address.company_name }}",
                    "rightValue": "Company 1"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Customer",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "91a71674-3d80-4b59-a1de-020fde68bbbd",
                    "operator": {
                      "type": "string",
                      "operation": "contains"
                    },
                    "leftValue": "={{ JSON.stringify($json.content.email) }}",
                    "rightValue": "@customer.com"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {
          "fallbackOutput": "extra"
        }
      },
      "typeVersion": 3.2
    },
    {
      "id": "7cb9f161-8a1e-4888-bdac-7249612472e5",
      "name": "파일에서 추출2",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        816,
        832
      ],
      "parameters": {
        "options": {},
        "operation": "pdf",
        "binaryPropertyName": "attachment"
      },
      "typeVersion": 1
    },
    {
      "id": "528b43cb-d102-4773-9801-200e4e96cba5",
      "name": "중지 및 오류1",
      "type": "n8n-nodes-base.stopAndError",
      "position": [
        15264,
        2048
      ],
      "parameters": {
        "errorMessage": "={{ $json.message }}"
      },
      "typeVersion": 1
    },
    {
      "id": "1ca9c9d2-5e09-445c-b1da-d67e9f56af7b",
      "name": "작업 없음, do nothing",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1248,
        1168
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "bcfa313b-0206-4212-be8b-e58d11dfc077",
      "name": "Json error message",
      "type": "n8n-nodes-base.set",
      "position": [
        15040,
        2048
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "6bd733dc-147d-401f-9399-4d8cdf85190a",
              "name": "message",
              "type": "string",
              "value": "={{ JSON.stringify($json) }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "150f9f98-f67b-47ab-9f88-83ea2e55fc1b",
      "name": "Combine error fields",
      "type": "n8n-nodes-base.set",
      "position": [
        14816,
        2048
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "dc806cb3-a93c-4520-86d1-7e7e948b269d",
              "name": "message",
              "type": "string",
              "value": "={{ $json.message }}"
            },
            {
              "id": "f8f9d4dd-6de8-4d3d-9c38-971f870dd8be",
              "name": "email_id",
              "type": "string",
              "value": "={{ $('Email combine').first().json.id }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "fc4c479f-7e30-4e25-ad5c-1ede51dc7c33",
      "name": "작업 없음, do nothing1",
      "type": "n8n-nodes-base.noOp",
      "position": [
        12032,
        1952
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "aa105f7b-cc4a-4430-afdd-a3e3a26365de",
      "name": "설정 successfull message",
      "type": "n8n-nodes-base.set",
      "disabled": true,
      "position": [
        14864,
        112
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "0385f122-a92b-4061-b5fb-10d27ad59dff",
              "name": "message",
              "type": "string",
              "value": "Everything good, cart cleared"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "838353b2-48bf-4eef-80bd-4ea7a2bb2522",
      "name": "설정 empty email message",
      "type": "n8n-nodes-base.set",
      "position": [
        3024,
        2144
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "50596fcc-fd14-4554-88a7-919c9826b68b",
              "name": "message",
              "type": "string",
              "value": "No emailaddresses found in PDF"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "a4e45594-4286-4f68-8f21-6c00100e8336",
      "name": "설정 empty products message",
      "type": "n8n-nodes-base.set",
      "position": [
        3024,
        1936
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "50596fcc-fd14-4554-88a7-919c9826b68b",
              "name": "message",
              "type": "string",
              "value": "No products found in PDF"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "136e83aa-750d-4c0d-938a-e470de35e5e6",
      "name": "Products not empty",
      "type": "n8n-nodes-base.if",
      "position": [
        2688,
        1072
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "890a4093-c76d-4667-99f2-d045ce4ee440",
              "operator": {
                "type": "array",
                "operation": "lengthGte",
                "rightType": "number"
              },
              "leftValue": "={{ $json.content.products }}",
              "rightValue": 1
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "b65ce8b3-f91f-4c1f-9bcd-7fcc6158ece0",
      "name": "이메일s not empty",
      "type": "n8n-nodes-base.if",
      "position": [
        2464,
        1168
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "176ded4d-8dce-4149-9303-67a39a7c10b5",
              "operator": {
                "type": "number",
                "operation": "gte"
              },
              "leftValue": "={{ $json.content.email.length }}",
              "rightValue": 1
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "354d7cd2-3cc4-40b8-8e9c-95e9579715a4",
      "name": "set Information",
      "type": "n8n-nodes-base.set",
      "position": [
        1024,
        832
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "8cf26a57-2a4f-4b12-bb62-032be07ff461",
              "name": "info",
              "type": "string",
              "value": "={{ $('Email combine').first().json.text }}\n{{ $json.text }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "76a4df77-73b6-4ee1-be21-7429a5a743bb",
      "name": "set Information 2",
      "type": "n8n-nodes-base.set",
      "disabled": true,
      "position": [
        352,
        1168
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "8b70af92-d07d-4002-8d8d-b22f6d06d55c",
              "name": "info",
              "type": "string",
              "value": "=jellekingm@gmail.com\n{{ $json.text }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "df152c99-cb59-41ae-ac76-0429d1531767",
      "name": "Pay on account error message",
      "type": "n8n-nodes-base.set",
      "position": [
        14480,
        1680
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "50596fcc-fd14-4554-88a7-919c9826b68b",
              "name": "message",
              "type": "string",
              "value": "No pay on account for this client"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "8888ccf9-b3ea-44e9-a50a-c6cb827ff423",
      "name": "설정 empty PO number message",
      "type": "n8n-nodes-base.set",
      "position": [
        4224,
        1808
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "50596fcc-fd14-4554-88a7-919c9826b68b",
              "name": "message",
              "type": "string",
              "value": "No PO number found in PDF"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "7a0daa68-cf6c-4fce-b0b2-fdc4c6aa92a0",
      "name": "If PO number not empty",
      "type": "n8n-nodes-base.if",
      "position": [
        3744,
        992
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "a9233974-706e-4cfb-b382-737d35c02ed5",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json.content.po_number }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "521ca2ab-920f-4092-86e6-69fa938c2469",
      "name": "Vorgangsnummer",
      "type": "n8n-nodes-base.set",
      "position": [
        3184,
        672
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "2cca615c-aae6-43b5-ab3e-f98e4dabd68a",
              "name": "content.po_number",
              "type": "string",
              "value": "={{ $json.content.extra_fields.Vorgangsnummer }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "338aa109-d64a-4667-92b9-206c973fb68e",
      "name": "작업 없음, do nothing3",
      "type": "n8n-nodes-base.noOp",
      "position": [
        5792,
        2160
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "1df3130a-94c7-40ea-a214-78a46a420a68",
      "name": "분할 출력 Products",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        7200,
        672
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "=products"
      },
      "typeVersion": 1
    },
    {
      "id": "5b4e4cd7-e891-4466-b9f1-396b7cfb4c8c",
      "name": "코드",
      "type": "n8n-nodes-base.code",
      "position": [
        592,
        832
      ],
      "parameters": {
        "jsCode": "const results = [];\n\nfor (const item of items) {\n  for (const key in item.binary) {\n    if (\n      Object.prototype.hasOwnProperty.call(item.binary, key) &&\n      (item.binary[key].mimeType === 'application/pdf' || (item.binary[key].mimeType === 'application/octet-stream' && item.binary[key].fileExtension === 'pdf') )\n    ) {\n      results.push({\n        json: {\n          attachmentName: key\n        },\n        binary: {\n          [\"attachment\"]: item.binary[key]\n        }\n      });\n    }\n  }\n}\n\nreturn results;\n"
      },
      "typeVersion": 2
    },
    {
      "id": "9594d9ef-a7b3-4c92-b137-85e44bc7bd0e",
      "name": "get Products",
      "type": "n8n-nodes-base.set",
      "position": [
        6912,
        672
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "77c75b9c-b29d-489d-b340-2531eda02bb3",
              "name": "products",
              "type": "array",
              "value": "={{ $('Products').first().json.content.products }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "1f0bc0cc-0813-4ca2-9aad-0033c809a2e6",
      "name": "Execute Workflow",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        9552,
        784
      ],
      "parameters": {
        "mode": "each",
        "options": {
          "waitForSubWorkflow": true
        },
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "1PVo1WneDnBPX8l3",
          "cachedResultName": "Klippa - add to cart"
        },
        "workflowInputs": {
          "value": {},
          "schema": [],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": true
        }
      },
      "typeVersion": 1.2,
      "alwaysOutputData": true
    },
    {
      "id": "f6317816-efa3-494b-a8d8-74bd5ef768f4",
      "name": "대기",
      "type": "n8n-nodes-base.wait",
      "position": [
        9744,
        784
      ],
      "webhookId": "8f84d918-7a74-4fdc-9e28-3a9a222c8e59",
      "parameters": {
        "amount": 2
      },
      "typeVersion": 1.1
    },
    {
      "id": "2d08b11b-d4cb-41de-a8ed-4962ba1a8b8f",
      "name": "병합1",
      "type": "n8n-nodes-base.merge",
      "position": [
        9136,
        544
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition"
      },
      "typeVersion": 3.1
    },
    {
      "id": "a4480866-98a0-45ad-94d0-0d806cb79a46",
      "name": "place Order",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        14464,
        576
      ],
      "parameters": {
        "url": "=https://www.example.com/rest/V1/carts/{{ $('set Quote Id').first().json.quote_id }}/order",
        "method": "PUT",
        "options": {},
        "jsonBody": "={\n    \"paymentMethod\": {\n        \"method\": \"companycredit\"\n    }\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "magento2Api"
      },
      "credentials": {
        "magento2Api": {
          "id": "yGyqOmSuvrgMUFB9",
          "name": "Magento 2 PROD"
        }
      },
      "executeOnce": true,
      "typeVersion": 4.2
    },
    {
      "id": "1d589a8b-fcdb-4f8f-940a-41ac846ff0e0",
      "name": "filter Emailadresses",
      "type": "n8n-nodes-base.code",
      "position": [
        2240,
        1168
      ],
      "parameters": {
        "jsCode": "const content = $json.content;\nconst emails = $input.first().json.content.email ?? [];\nconst filteredEmails = emails.filter(email => !email.toLowerCase().includes('@example.com'));\nconst updatedContent = {\n    ...content,\n    email: filteredEmails\n};\n\nreturn [{\n    json: {\n        content: updatedContent\n    }\n}];"
      },
      "typeVersion": 2
    },
    {
      "id": "af09e1cb-7445-4282-8d42-21dc46c2f045",
      "name": "remove SCH",
      "type": "n8n-nodes-base.code",
      "position": [
        3184,
        848
      ],
      "parameters": {
        "jsCode": "return items.map(item => {\n  // veilige clone (ook van json) zodat we het origineel niet muteren\n  const newItem = { ...item, json: { ...item.json } };\n\n  const content = newItem.json.content || {};\n  const srcProducts = Array.isArray(content.products) ? content.products : [];\n\n  // bewerk elke productregel\n  const newProducts = srcProducts.map(p => {\n    const product = { ...p };\n    let num = product.articlenumber;\n\n    if (typeof num === 'string') {\n      // trim en case-insensitive check\n      const trimmed = num.trim();\n      if (trimmed.toUpperCase().startsWith('SCH')) {\n        // verwijder alleen de eerste 3 tekens (de 'SCH' prefix)\n        product.articlenumber = trimmed.substring(3);\n      } else {\n        product.articlenumber = trimmed; // normaliseer zonder prefix\n      }\n    }\n\n    return product;\n  });\n\n  // zet terug in content.products\n  newItem.json.content = { ...content, products: newProducts };\n\n  return newItem;\n});"
      },
      "typeVersion": 2
    },
    {
      "id": "c5239a47-4d29-41bf-a109-cdfc22bbeb6b",
      "name": "작업 없음, do nothing4",
      "type": "n8n-nodes-base.noOp",
      "position": [
        10432,
        1088
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "52a5fb8a-0462-4e97-a1c0-da6e8fc0bb79",
      "name": "set Feedback configurable",
      "type": "n8n-nodes-base.set",
      "position": [
        8672,
        1072
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "7d430e2c-bc0f-4f7a-a718-e0f4a0e21a51",
              "name": "message",
              "type": "string",
              "value": "=No product found with sku: \n{{ $json.articlenumber }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "a1d68621-d2ca-44ee-9ebc-67dc85dab044",
      "name": "get Order by PO number",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3984,
        928
      ],
      "parameters": {
        "url": "=https://www.example.com/rest/V1/orders?searchCriteria[filterGroups][0][filters][0][conditionType]=eq&searchCriteria[filterGroups][0][filters][0][field]=custom_reference_number&searchCriteria[filterGroups][0][filters][0][value]={{ $json.content.po_number }}",
        "options": {},
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "magento2Api"
      },
      "credentials": {
        "magento2Api": {
          "id": "yGyqOmSuvrgMUFB9",
          "name": "Magento 2 PROD"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "545040e0-790e-4904-8d73-6c05c952459d",
      "name": "설정 empty PO number message1",
      "type": "n8n-nodes-base.set",
      "position": [
        4464,
        1664
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "50596fcc-fd14-4554-88a7-919c9826b68b",
              "name": "message",
              "type": "string",
              "value": "PO number already exists in Magento"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "81fcce51-167a-4f2b-8c55-d6d5a8e15614",
      "name": "조건 분기 PO number not exists",
      "type": "n8n-nodes-base.if",
      "position": [
        4192,
        928
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "83de1941-269f-46db-82e4-fd4945887cb6",
              "operator": {
                "type": "number",
                "operation": "equals"
              },
              "leftValue": "={{ $json.total_count }}",
              "rightValue": 0
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "d19b78d3-428d-471a-aa6f-be6a3b48e7f3",
      "name": "Microsoft Outlook Trigger",
      "type": "n8n-nodes-base.microsoftOutlookTrigger",
      "position": [
        -80,
        832
      ],
      "parameters": {
        "output": "raw",
        "filters": {
          "foldersToInclude": [
            "AAMkADc5ZDM1NjExLWUyMmEtNGFjNS1iZjQ0LWQ1NDIzNjIwM2JhYgAuAAAAAADhdXAyhBkYQ7FZ5j1Q8N6TAQDWbfNIjjgwSYEfigJmM_e_AAAAAAEMAAA="
          ]
        },
        "options": {
          "downloadAttachments": true
        },
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        }
      },
      "credentials": {
        "microsoftOutlookOAuth2Api": {
          "id": "u58VRn2K8b0NAng2",
          "name": "Outlook orders@jc-electronics.nl"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "8aeda9ee-3bb7-4bf6-bd10-fa255e55fa2a",
      "name": "set Text",
      "type": "n8n-nodes-base.set",
      "position": [
        128,
        832
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "fa169825-4f61-4185-8382-1e7760219241",
              "name": "text",
              "type": "string",
              "value": "={{ $json.body.content }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "fe530607-22d6-47e9-8496-136b67939e6d",
      "name": "AI 에이전트",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1648,
        1168
      ],
      "parameters": {
        "text": "=Please extract the following information from the text as valid json.:\n\n\"email\" (array with all email adresses found. Add ALL found email addresses!)\n\"po_number\"\n\"express\" (true or false when express shipping is requested)\n\n\"address\" (skip any address from ourselves, ...), which contains the following fields:\n\"first_name\" (dash if empty)\n\"last_name\" (dash if empty)\n\"company_name\"\n\"street\" (without housenumber)\n\"housenumber\"\n\"zipcode\"\n\"city\" (make sure this city really exist in the country that is also extracted)\n\"country_code\": 2 digit country code\n\"phone_number\": can only contains a + in the beginning, dashes or spaces. Remove any other characters!\n\nAn array with \"products\" that contains:\narticlenumber: Remove any addition Extract the line items from the following purchase order text, making sure to include the full article number exactly as it appears in the text — including any leading characters or digits. Do not omit or alter any part of the article number. \nquantity\nprice\n\nAfter all the products, add ALL extra fields and their values in their original language when found within an object \"extra_fields\"!\n\nThis is a template of how the output should be:\n{\n  \"email\": [\n    \"\"\n  ],\n  \"po_number\": \"\",\n  \"express\": true,\n  \"address\": {\n    \"first_name\": \"\",\n    \"last_name\": \"\",\n    \"company_name\": \"\",\n    \"street\": \"\",\n    \"housenumber\": \"\",\n    \"zipcode\": \"\",\n    \"city\": \"\",\n    \"country_code\": \"\",\n    \"phone_number\": \"\"\n  },\n  \"products\": [\n    {\n      \"articlenumber\": \"\",\n      \"condition\": \"\",\n      \"quantity\": 2,\n      \"price\": 1455.75\n    }\n  ],\n  \"extra_fields\": {  }\n}\n\nThis is the information:\n{{ $json.info }}",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 2.1
    },
    {
      "id": "4dc910d3-4288-4891-b188-b8a2782cf930",
      "name": "Move a message",
      "type": "n8n-nodes-base.microsoftOutlook",
      "position": [
        14912,
        576
      ],
      "webhookId": "778df66b-207d-4bdf-a9f8-51b755fef6bd",
      "parameters": {
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "AAMkADc5ZDM1NjExLWUyMmEtNGFjNS1iZjQ0LWQ1NDIzNjIwM2JhYgAuAAAAAADhdXAyhBkYQ7FZ5j1Q8N6TAQDWbfNIjjgwSYEfigJmM_e_AAC4Oo2sAAA=",
          "cachedResultUrl": "https://outlook.office365.com/mail/AAMkADc5ZDM1NjExLWUyMmEtNGFjNS1iZjQ0LWQ1NDIzNjIwM2JhYgAuAAAAAADhdXAyhBkYQ7FZ5j1Q8N6TAQDWbfNIjjgwSYEfigJmM_e_AAC4Oo2sAAA%3D",
          "cachedResultName": "processed orders"
        },
        "messageId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Email combine').first().json.id }}"
        },
        "operation": "move"
      },
      "credentials": {
        "microsoftOutlookOAuth2Api": {
          "id": "u58VRn2K8b0NAng2",
          "name": "Outlook orders@jc-electronics.nl"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "5de7e170-6b63-445f-af9c-2a5e9b8b2cc3",
      "name": "작업 없음, do nothing2",
      "type": "n8n-nodes-base.noOp",
      "position": [
        5408,
        1728
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "f702cbea-aa85-45c0-a7bf-630971cf6286",
      "name": "get Customer",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        5168,
        928
      ],
      "parameters": {
        "url": "=https://www.example.com/rest/V1/customers/search?searchCriteria[filterGroups][0][filters][0][conditionType]=eq&searchCriteria[filterGroups][0][filters][0][field]=email&searchCriteria[filterGroups][0][filters][0][value]={{ $json.email.trim() }}&searchCriteria[filterGroups][1][filters][0][conditionType]=eq\n&searchCriteria[filterGroups][1][filters][0][field]=website_id\n&searchCriteria[filterGroups][1][filters][0][value]=1&searchCriteria[pageSize]=1",
        "options": {},
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "magento2Api"
      },
      "credentials": {
        "magento2Api": {
          "id": "yGyqOmSuvrgMUFB9",
          "name": "Magento 2 PROD"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "0fb6677d-e26d-4373-b2a4-318950742b8e",
      "name": "If Customer",
      "type": "n8n-nodes-base.if",
      "position": [
        5344,
        928
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "28934991-2b90-46fe-873d-58ba9303fcd0",
              "operator": {
                "type": "number",
                "operation": "equals"
              },
              "leftValue": "={{ $('get Customer').first().json.total_count }}",
              "rightValue": 1
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "94f319fe-7e02-47b7-b6fc-07f882fb51f3",
      "name": "Products",
      "type": "n8n-nodes-base.noOp",
      "position": [
        3456,
        992
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "5d76163c-e4e0-4701-b7f4-fce91e26793f",
      "name": "메모 - Trigger & Input",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        -16
      ],
      "parameters": {
        "color": 4,
        "width": 1568,
        "height": 2592,
        "content": "# 📩 1. Trigger & Input\n## This section retrieves emails and extracts PDF attachments.\n\nMonitors the Outlook mailbox for incoming purchase order emails.\nAutomatically downloads PDF attachments.\nCombines email body text and PDF data into a single data stream.\nPrepares raw order information for AI-based parsing"
      },
      "typeVersion": 1
    },
    {
      "id": "d92ce0d3-e32a-42f2-9203-0d271163584f",
      "name": "메모 - AI Parsing",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1440,
        -16
      ],
      "parameters": {
        "color": 6,
        "width": 2960,
        "height": 1584,
        "content": "# 📝 AI Parsing & Normalisation & Checks\n## Parse PDF with AI, clean product data and filter emails.\n\nSends email and PDF content to Azure OpenAI for parsing.\nExtracts key fields such as PO number, customer data, and product list into structured JSON.\nCleans product article numbers (e.g. removing SCH prefixes or unwanted suffixes).\nFilters out invalid or irrelevant email addresses from the extracted data.\nEnsures no duplicate or invalid orders are created."
      },
      "typeVersion": 1
    },
    {
      "id": "faaae4e9-a753-43ab-b158-4a7cba1fec9d",
      "name": "메모 - Customer Validation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4448,
        -16
      ],
      "parameters": {
        "color": 2,
        "width": 1664,
        "height": 1584,
        "content": "# 👤 Customer Validation\n## Check if customer exists, validate addresses and company credit.\n\nSearches for the customer in Adobe Commerce using the extracted email address.\nVerifies if the customer account exists in the webshop.\nRetrieves and checks the default shipping address.\nProvides feedback if no valid customer or default address is found."
      },
      "typeVersion": 1
    },
    {
      "id": "ba367cd6-adc9-40ea-b541-1f971c4568ab",
      "name": "메모 - Cart Creation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        6160,
        -16
      ],
      "parameters": {
        "color": 5,
        "width": 5008,
        "height": 1584,
        "content": "# 🛒 Cart Creation & Products\n## Create cart, add products, remove duplicates and prepare order.\n\nCreates a new empty shopping cart (quote) for the validated customer.\nClears any existing items from the customer’s cart.\nIterates over each parsed product and adds it to the cart.\nValidates SKU and availability in Adobe Commerce.\nLogs feedback if products are missing or cannot be added."
      },
      "typeVersion": 1
    },
    {
      "id": "52c35a3c-a624-45c3-8c88-bf1985665879",
      "name": "메모 - Shipping & Billing",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        11184,
        -16
      ],
      "parameters": {
        "color": 6,
        "width": 1776,
        "height": 1584,
        "content": "# 🚚 Shipping & Billing\n## Set billing and shipping addresses, estimate methods, apply standard/express.\n\nSets the billing address in the cart.\nEstimates available shipping methods.\nApplies either the standard or express shipping method based on extracted order data.\nEnsures shipping information is correctly linked to the quote."
      },
      "typeVersion": 1
    },
    {
      "id": "de3a1ffb-d421-4218-8b4b-c4df4f334397",
      "name": "메모 - Finalize Order",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        12992,
        -16
      ],
      "parameters": {
        "color": 4,
        "width": 2528,
        "height": 1584,
        "content": "# ✅ Finalize Order\n## Set PO number, add order comments, validate payment and place order.\n\nValidates and sets the Purchase Order number in the cart.\nAdds an internal order comment for traceability.\nRetrieves available payment methods and checks for Company Credit.\nPlaces the final order in Adobe Commerce using Company Credit.\nMoves the processed email into the “Processed Orders” folder."
      },
      "typeVersion": 1
    },
    {
      "id": "d0d18335-f840-498e-be2b-edb3e8b2bdae",
      "name": "메모 - Error Handling1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1440,
        1600
      ],
      "parameters": {
        "color": 3,
        "width": 14080,
        "height": 976,
        "content": "# ⚠️ Error Handling\n## Fallback nodes to catch and log errors, feedback messages, and move processed email.\n\nStops the workflow gracefully if critical data is missing.\nProvides clear feedback messages (e.g. “No customer found”, “No PO number”, “Company Credit not available”).\nSends structured error output for notifications or monitoring."
      },
      "typeVersion": 1
    },
    {
      "id": "a9745dc5-5bcf-4414-9cb0-7e035859c792",
      "name": "Azure OpenAI Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
      "position": [
        1648,
        1408
      ],
      "parameters": {
        "model": "model-router",
        "options": {
          "responseFormat": "json_object"
        }
      },
      "credentials": {
        "azureOpenAiApi": {
          "id": "h70WE7Hm1hTGuZxy",
          "name": "Azure Open AI account Anno"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "5513ca36-a813-4136-8c4e-e4dda5fae7a9",
      "name": "Loop until existing customer found",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        4912,
        912
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "389b4f77-2cc6-48d1-b547-7910903aaef4",
      "name": "If configurable product found",
      "type": "n8n-nodes-base.if",
      "position": [
        8160,
        688
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "7be16b31-66d4-402e-801d-b8ad9ce4624e",
              "operator": {
                "type": "number",
                "operation": "equals"
              },
              "leftValue": "={{ $json.total_count }}",
              "rightValue": 1
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "754c7b4c-4f07-481d-9108-186a6e588c5e",
      "name": "Prepare sku & quote",
      "type": "n8n-nodes-base.set",
      "position": [
        8480,
        672
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "ecb9f0e5-4452-49f6-b224-7394ecd097d4",
              "name": "sku",
              "type": "string",
              "value": "={{ $json.items[0].sku }}"
            },
            {
              "id": "6714cc81-bfa6-450d-a202-759485205490",
              "name": "quote_id",
              "type": "string",
              "value": "={{ $('set Quote Id').first().json.quote_id }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "783ffc5c-8107-47c7-a703-6d4bc6550c3c",
      "name": "If product in cart",
      "type": "n8n-nodes-base.if",
      "position": [
        9552,
        544
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "10555ad1-148f-496b-9198-dd69b1cfc54a",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.item_id }}",
              "rightValue": ""
            }
          ]
        },
        "looseTypeValidation": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "01ee82fd-75f5-4471-b0b3-4523ce827ce0",
      "name": "Loop over products",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        8912,
        672
      ],
      "parameters": {
        "options": {
          "reset": false
        }
      },
      "typeVersion": 3
    },
    {
      "id": "d33241a7-592e-4386-8dd7-787d41d5744c",
      "name": "Combine processed skus",
      "type": "n8n-nodes-base.code",
      "position": [
        10352,
        688
      ],
      "parameters": {
        "jsCode": "const output = items.map(item => {\n  const sku = item.json.items[0].sku;\n  const price = item.json.price;\n  return `\\n${sku}: €${price}`;\n});\n\nreturn [\n  {\n    json: {\n      combined: output.join(\", \")\n    }\n  }\n];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "cf0fd160-d2a5-4f71-bca6-8fab70d4a734",
      "name": "Combine failed skus",
      "type": "n8n-nodes-base.code",
      "position": [
        10352,
        832
      ],
      "parameters": {
        "jsCode": "const output = items.map(item => {\n  const sku = item.json.items[0].sku;\n  const price = item.json.price;\n  return `\\n${sku}: €${price}`;\n});\n\nreturn [\n  {\n    json: {\n      combined: output.join(\", \")\n    }\n  }\n];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "92cfc8a1-d480-4ddb-8e52-9fde4ad458b2",
      "name": "set Feedback failed",
      "type": "n8n-nodes-base.set",
      "position": [
        10560,
        832
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "7d430e2c-bc0f-4f7a-a718-e0f4a0e21a51",
              "name": "message",
              "type": "string",
              "value": "=No product with specified price found, or requested stock is not available for sku(s):\n{{ $json.combined }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "aa70d781-e980-4072-86b4-13e57028d4c4",
      "name": "set Feedback processed",
      "type": "n8n-nodes-base.set",
      "position": [
        10560,
        688
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "7d430e2c-bc0f-4f7a-a718-e0f4a0e21a51",
              "name": "message",
              "type": "string",
              "value": "=The following product(s) are added to the order:\n{{ $json.combined }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "c61ed836-43ce-4f36-aa1a-d35fb88a60f6",
      "name": "Combine feedback",
      "type": "n8n-nodes-base.code",
      "position": [
        10752,
        832
      ],
      "parameters": {
        "jsCode": "let input1 = null;\nlet input2 = null;\nlet input3 = null;\n\nif ($node[\"set Feedback failed\"].runIndex !== -1 || $node[\"set Feedback configurable\"].runIndex !== -1) {\n  \n  if ($node[\"set Feedback processed\"].runIndex !== -1) {\n    input1 = $node[\"set Feedback processed\"].json.message;\n  }\n  \n  if ($node[\"set Feedback failed\"].runIndex !== -1) {\n    input2 = $node[\"set Feedback failed\"].json.message;\n  }\n  \n  if ($node[\"set Feedback configurable\"].runIndex !== -1) {\n    input3 = $node[\"set Feedback configurable\"].json.message;\n  }\n  \n  const messages = [input1, input2, input3].filter(Boolean);\n  \n  return [\n    {\n      json: {\n        message: messages.join(\"\\n\\n\")\n      }\n    }\n  ];\n}\nreturn [];"
      },
      "typeVersion": 2
    },
    {
      "id": "65a9e568-9028-492c-9825-3f05055dd0bd",
      "name": "Keep 1",
      "type": "n8n-nodes-base.limit",
      "position": [
        11200,
        1792
      ],
      "parameters": {
        "keep": "lastItems"
      },
      "typeVersion": 1
    },
    {
      "id": "ab7996fa-0563-4645-898a-1b122bc970af",
      "name": "If express",
      "type": "n8n-nodes-base.if",
      "position": [
        12368,
        656
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "22a9eef8-b4b6-407a-a79f-0e3325722973",
              "operator": {
                "type": "boolean",
                "operation": "false",
                "singleValue": true
              },
              "leftValue": "={{ $('set OpenAI').first().json.content.express }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "1353dc3b-85a1-4adf-bcc7-d0c397903ebd",
      "name": "Split 이메일s",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        4704,
        912
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "=email"
      },
      "typeVersion": 1
    },
    {
      "id": "f27efa95-baed-423a-87de-367c1c5002d7",
      "name": "set Emails",
      "type": "n8n-nodes-base.set",
      "position": [
        4528,
        912
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "f2368651-32aa-4d50-b872-e234e7e63b77",
              "name": "email",
              "type": "array",
              "value": "={{ $('filter Emailadresses').item.json.content.email }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "396f5658-7aab-4804-ade0-ac5283fe96cb",
      "name": "이메일 combine",
      "type": "n8n-nodes-base.noOp",
      "position": [
        368,
        832
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "2fef49c4-2552-429b-bd97-697fcc111913",
      "name": "If developer",
      "type": "n8n-nodes-base.if",
      "position": [
        14160,
        592
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "33abf56a-611d-47ff-b1cd-e8d72f93d81b",
              "operator": {
                "type": "string",
                "operation": "notEquals"
              },
              "leftValue": "={{ $('Microsoft Outlook Trigger').first().json.sender.emailAddress.address }}",
              "rightValue": "developer@example.com"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "339a908b-5bb2-4ffe-adbe-6a05b34dc590",
      "name": "메모",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -992,
        -16
      ],
      "parameters": {
        "width": 800,
        "height": 1488,
        "content": "# 📄 PDF-to-Order Automation for Magento2 (Adobe commerce / open source)\n\n## Description\nThis n8n template demonstrates how to automatically process **PDF purchase orders** received via email and convert them into **sales orders in Adobe Commerce (Magento 2)** using **Company Credit** as the payment method.  \n\nThis is especially useful for **B2B companies** receiving structured orders from clients by email.  \n\n**Use cases include:**  \n- Automating incoming B2B orders  \n- Reducing manual entry for sales teams  \n- Ensuring fast order creation in Adobe Commerce  \n- Reliable error handling and customer validation  \n\n---\n\n## Good to know\n- This workflow is tailored for **Adobe Commerce**, using the **Company Credit** payment method.  \n- It requires that the customer already has an account in Adobe Commerce and is authorized to use Company Credit.  \n- The same flow can be easily adapted for other payment methods (e.g. Purchase Order, Bank Transfer).  \n- No third-party services are required aside from **n8n** and access to Adobe Commerce with API credentials.  \n\n---\n\n## How it works\n1. **Trigger** → Monitors an email inbox for incoming emails with PDF attachments.  \n2. **Extract PDF** → Downloads the attached PDF and parses order data (e.g. SKU, quantity, customer reference).  \n3. **Validate Customer** → Checks if the sender matches an existing customer in Adobe Commerce and verifies Company Credit eligibility.  \n4. **Create Order** → Generates a new order in Magento using the extracted product data and Company Credit.  \n5. **Handle Errors** → Logs issues and can notify a designated channel (email, Slack, etc.) if something goes wrong.  \n6. **Optional Enhancements** → Add logging to Airtable, send confirmations to customers, or attach parsed order data to CRM entries.  \n\n---\n\n## How to use\n- A manual trigger is included as an example, but you can replace it with an **IMAP Email Trigger**, **Gmail Trigger**, or **Webhook**, depending on your setup.  \n- Customize the **PDF parser** node to fit your specific document layout and field structure.  \n- Configure **Adobe Commerce API credentials** in the HTTP nodes (or use environment variables).  \n- Optionally connect error steps to **Slack**, **Email**, or **dashboards** for monitoring.  \n\n---\n\n## Requirements\n- ✅ n8n instance (self-hosted or cloud)  \n- ✅ Adobe Commerce (Magento 2) instance with API access and Company Credit enabled  \n- ✅ Structured PDF templates used by your customers  \n- (Optional) Slack/Email/Airtable for notifications and logs  \n\n---\n\n## Customising this workflow\nThis workflow can be adapted for:  \n- Other payment methods (e.g. **Purchase Orders**, **Online Payment**)  \n- Alternate order sources (e.g. uploading PDFs via a portal instead of email)  \n- Parsing other document formats (e.g. **CSV, Excel**)  \n- Direct integration into **ERP systems**  \n\n---\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "d70bcaf1-fc6c-4542-a4b7-0f6d1e30fd61",
  "connections": {
    "Code": {
      "main": [
        [
          {
            "node": "Extract from File2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait": {
      "main": [
        [
          {
            "node": "01ee82fd-75f5-4471-b0b3-4523ce827ce0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limit": {
      "main": [
        [
          {
            "node": "ab7996fa-0563-4645-898a-1b122bc970af",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "389b4f77-2cc6-48d1-b547-7910903aaef4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "65a9e568-9028-492c-9825-3f05055dd0bd": {
      "main": [
        [
          {
            "node": "No Operation, do nothing1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge1": {
      "main": [
        [
          {
            "node": "783ffc5c-8107-47c7-a703-6d4bc6550c3c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch": {
      "main": [
        [
          {
            "node": "521ca2ab-920f-4092-86e6-69fa938c2469",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "af09e1cb-7445-4282-8d42-21dc46c2f045",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "94f319fe-7e02-47b7-b6fc-07f882fb51f3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "2908f698-e451-4d37-a3f5-02d7cd88e505",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "94f319fe-7e02-47b7-b6fc-07f882fb51f3": {
      "main": [
        [
          {
            "node": "7a0daa68-cf6c-4fce-b0b2-fdc4c6aa92a0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8aeda9ee-3bb7-4bf6-bd10-fa255e55fa2a": {
      "main": [
        [
          {
            "node": "Email combine",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate": {
      "main": [
        [
          {
            "node": "02230beb-0a2b-4e95-84cb-fbf1fd66ba0c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ab7996fa-0563-4645-898a-1b122bc970af": {
      "main": [
        [
          {
            "node": "44611b16-16a4-4a21-a73d-15a9d022239b",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "736d887a-006d-4aa3-b4ba-4344ba00aea8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "af09e1cb-7445-4282-8d42-21dc46c2f045": {
      "main": [
        [
          {
            "node": "94f319fe-7e02-47b7-b6fc-07f882fb51f3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f27efa95-baed-423a-87de-367c1c5002d7": {
      "main": [
        [
          {
            "node": "Split Emails",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2908f698-e451-4d37-a3f5-02d7cd88e505": {
      "main": [
        [
          {
            "node": "1d589a8b-fcdb-4f8f-940a-41ac846ff0e0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "395233c3-597c-4704-aa34-95700166f2ee": {
      "main": [
        [
          {
            "node": "0f4c3f39-7dd7-4f30-a08d-e71d6a7b6522",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0fb6677d-e26d-4373-b2a4-318950742b8e": {
      "main": [
        [
          {
            "node": "dc25383f-c225-4b9b-a0a3-187281aeb673",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "5513ca36-a813-4136-8c4e-e4dda5fae7a9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a4480866-98a0-45ad-94d0-0d806cb79a46": {
      "main": [
        [
          {
            "node": "4dc910d3-4288-4891-b188-b8a2782cf930",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d2120bca-773d-4c2e-a404-1e1aad88a198": {
      "main": [
        [
          {
            "node": "f378aa93-9039-4003-aba8-466f9f32abfd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2fef49c4-2552-429b-bd97-697fcc111913": {
      "main": [
        [
          {
            "node": "a4480866-98a0-45ad-94d0-0d806cb79a46",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "28409228-4cc4-47f0-be65-b4f1a94d7b8e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Emails": {
      "main": [
        [
          {
            "node": "5513ca36-a813-4136-8c4e-e4dda5fae7a9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f702cbea-aa85-45c0-a7bf-630971cf6286": {
      "main": [
        [
          {
            "node": "0fb6677d-e26d-4373-b2a4-318950742b8e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9594d9ef-a7b3-4c92-b137-85e44bc7bd0e": {
      "main": [
        [
          {
            "node": "Split Out Products",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dc25383f-c225-4b9b-a0a3-187281aeb673": {
      "main": [
        [
          {
            "node": "d2120bca-773d-4c2e-a404-1e1aad88a198",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "384255bb-4301-4a4d-a08e-b25cf8f8c13c": {
      "main": [
        [
          {
            "node": "No Operation, do nothing1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0f4c3f39-7dd7-4f30-a08d-e71d6a7b6522": {
      "main": [
        [
          {
            "node": "6a43fd7f-c7fb-4365-815f-315028af24b0",
            "type": "main",
            "index": 0
          },
          {
            "node": "9594d9ef-a7b3-4c92-b137-85e44bc7bd0e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Email combine": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "521ca2ab-920f-4092-86e6-69fa938c2469": {
      "main": [
        [
          {
            "node": "94f319fe-7e02-47b7-b6fc-07f882fb51f3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6a43fd7f-c7fb-4365-815f-315028af24b0": {
      "main": [
        [
          {
            "node": "81a33420-77c6-4986-a1b4-84d222b7fc7f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "28409228-4cc4-47f0-be65-b4f1a94d7b8e": {
      "main": [
        [
          {
            "node": "2f6e189d-c322-43a1-83a9-3a3ca8f34567",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "354d7cd2-3cc4-40b8-8e9c-95e9579715a4": {
      "main": [
        [
          {
            "node": "No Operation, do nothing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c61ed836-43ce-4f36-aa1a-d35fb88a60f6": {
      "main": [
        [
          {
            "node": "65a9e568-9028-492c-9825-3f05055dd0bd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Emails not empty": {
      "main": [
        [
          {
            "node": "136e83aa-750d-4c0d-938a-e470de35e5e6",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set empty email message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1f0bc0cc-0813-4ca2-9aad-0033c809a2e6": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "72eca58d-c3e0-47c9-82d7-3dff8207fbde": {
      "main": [
        [
          {
            "node": "2fef49c4-2552-429b-bd97-697fcc111913",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "df152c99-cb59-41ae-ac76-0429d1531767",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "05efafa7-bbd0-409b-b1c7-e38030a87030": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Extract from File": {
      "main": [
        [
          {
            "node": "76a4df77-73b6-4ee1-be21-7429a5a743bb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "76a4df77-73b6-4ee1-be21-7429a5a743bb": {
      "main": [
        [
          {
            "node": "No Operation, do nothing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "491bd788-b44e-41b9-9c1c-fd58d71bccc8": {
      "main": [
        [
          {
            "node": "6a9d7577-4008-42ff-a1ab-02a5e8f994d1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File1": {
      "main": [
        [
          {
            "node": "76a4df77-73b6-4ee1-be21-7429a5a743bb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File2": {
      "main": [
        [
          {
            "node": "354d7cd2-3cc4-40b8-8e9c-95e9579715a4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f378aa93-9039-4003-aba8-466f9f32abfd": {
      "main": [
        [
          {
            "node": "395233c3-597c-4704-aa34-95700166f2ee",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "92de4eba-62fd-4314-a15d-ebcd4d0440b0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "783ffc5c-8107-47c7-a703-6d4bc6550c3c": {
      "main": [
        [
          {
            "node": "d33241a7-592e-4386-8dd7-787d41d5744c",
            "type": "main",
            "index": 0
          },
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "cf0fd160-d2a5-4f71-bca6-8fab70d4a734",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bcfa313b-0206-4212-be8b-e58d11dfc077": {
      "main": [
        [
          {
            "node": "Stop and Error1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "01ee82fd-75f5-4471-b0b3-4523ce827ce0": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 1
          }
        ],
        [
          {
            "node": "1f0bc0cc-0813-4ca2-9aad-0033c809a2e6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f2c25774-8c2e-4d83-9029-1ddcec3f1be9": {
      "main": [
        [
          {
            "node": "Extract from File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "136e83aa-750d-4c0d-938a-e470de35e5e6": {
      "main": [
        [
          {
            "node": "Switch",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set empty products message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out Products": {
      "main": [
        [
          {
            "node": "fa659e1c-24ec-4540-b973-115a998a8bb4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "cf0fd160-d2a5-4f71-bca6-8fab70d4a734": {
      "main": [
        [
          {
            "node": "92cfc8a1-d480-4ddb-8e52-9fde4ad458b2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "754c7b4c-4f07-481d-9108-186a6e588c5e": {
      "main": [
        [
          {
            "node": "01ee82fd-75f5-4471-b0b3-4523ce827ce0",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1249cf58-e268-4039-b3e2-44fdf66b7a82": {
      "main": [
        [
          {
            "node": "72eca58d-c3e0-47c9-82d7-3dff8207fbde",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6a9d7577-4008-42ff-a1ab-02a5e8f994d1": {
      "main": [
        [
          {
            "node": "1249cf58-e268-4039-b3e2-44fdf66b7a82",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "02230beb-0a2b-4e95-84cb-fbf1fd66ba0c": {
      "main": [
        [
          {
            "node": "6a0265b7-1ced-4d10-a8b6-b904a696097f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "92cfc8a1-d480-4ddb-8e52-9fde4ad458b2": {
      "main": [
        [
          {
            "node": "c61ed836-43ce-4f36-aa1a-d35fb88a60f6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "150f9f98-f67b-47ab-9f88-83ea2e55fc1b": {
      "main": [
        [
          {
            "node": "bcfa313b-0206-4212-be8b-e58d11dfc077",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1d589a8b-fcdb-4f8f-940a-41ac846ff0e0": {
      "main": [
        [
          {
            "node": "Emails not empty",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1fe3857b-dc7a-4147-b318-c02f703300d5": {
      "main": [
        [
          {
            "node": "491bd788-b44e-41b9-9c1c-fd58d71bccc8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d33241a7-592e-4386-8dd7-787d41d5744c": {
      "main": [
        [
          {
            "node": "aa70d781-e980-4072-86b4-13e57028d4c4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7a0daa68-cf6c-4fce-b0b2-fdc4c6aa92a0": {
      "main": [
        [
          {
            "node": "a1d68621-d2ca-44ee-9ebc-67dc85dab044",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set empty PO number message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a1d68621-d2ca-44ee-9ebc-67dc85dab044": {
      "main": [
        [
          {
            "node": "IF PO number not exists",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "aa70d781-e980-4072-86b4-13e57028d4c4": {
      "main": [
        [
          {
            "node": "c61ed836-43ce-4f36-aa1a-d35fb88a60f6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF PO number not exists": {
      "main": [
        [
          {
            "node": "f27efa95-baed-423a-87de-367c1c5002d7",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set empty PO number message1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set empty email message": {
      "main": [
        [
          {
            "node": "No Operation, do nothing3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "fa659e1c-24ec-4540-b973-115a998a8bb4": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          },
          {
            "node": "05efafa7-bbd0-409b-b1c7-e38030a87030",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a9745dc5-5bcf-4414-9cb0-7e035859c792": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "No Operation, do nothing": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d19b78d3-428d-471a-aa6f-be6a3b48e7f3": {
      "main": [
        [
          {
            "node": "8aeda9ee-3bb7-4bf6-bd10-fa255e55fa2a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "No Operation, do nothing1": {
      "main": [
        [
          {
            "node": "150f9f98-f67b-47ab-9f88-83ea2e55fc1b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "No Operation, do nothing2": {
      "main": [
        [
          {
            "node": "384255bb-4301-4a4d-a08e-b25cf8f8c13c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "No Operation, do nothing3": {
      "main": [
        [
          {
            "node": "150f9f98-f67b-47ab-9f88-83ea2e55fc1b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "No Operation, do nothing4": {
      "main": [
        [
          {
            "node": "c61ed836-43ce-4f36-aa1a-d35fb88a60f6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6a0265b7-1ced-4d10-a8b6-b904a696097f": {
      "main": [
        [
          {
            "node": "Limit",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "52a5fb8a-0462-4e97-a1c0-da6e8fc0bb79": {
      "main": [
        [
          {
            "node": "No Operation, do nothing4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set empty products message": {
      "main": [
        [
          {
            "node": "No Operation, do nothing3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "Extract from File1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2f6e189d-c322-43a1-83a9-3a3ca8f34567": {
      "main": [
        [
          {
            "node": "Set successfull message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set empty PO number message": {
      "main": [
        [
          {
            "node": "No Operation, do nothing3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "736d887a-006d-4aa3-b4ba-4344ba00aea8": {
      "main": [
        [
          {
            "node": "1fe3857b-dc7a-4147-b318-c02f703300d5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "df152c99-cb59-41ae-ac76-0429d1531767": {
      "main": [
        [
          {
            "node": "150f9f98-f67b-47ab-9f88-83ea2e55fc1b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set empty PO number message1": {
      "main": [
        [
          {
            "node": "No Operation, do nothing3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "92de4eba-62fd-4314-a15d-ebcd4d0440b0": {
      "main": [
        [
          {
            "node": "No Operation, do nothing1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "44611b16-16a4-4a21-a73d-15a9d022239b": {
      "main": [
        [
          {
            "node": "1fe3857b-dc7a-4147-b318-c02f703300d5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "389b4f77-2cc6-48d1-b547-7910903aaef4": {
      "main": [
        [
          {
            "node": "754c7b4c-4f07-481d-9108-186a6e588c5e",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "52a5fb8a-0462-4e97-a1c0-da6e8fc0bb79",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5513ca36-a813-4136-8c4e-e4dda5fae7a9": {
      "main": [
        [
          {
            "node": "No Operation, do nothing2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "f702cbea-aa85-45c0-a7bf-630971cf6286",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

이 워크플로우를 어떻게 사용하나요?

위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.

이 워크플로우는 어떤 시나리오에 적합한가요?

고급 - 문서 추출, 기타, 멀티모달 AI

유료인가요?

이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
고급
노드 수96
카테고리3
노드 유형22
난이도 설명

고급 사용자를 위한 16+개 노드의 복잡한 워크플로우

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34