8
n8n 한국어amn8n.com

지능형 문서 흐름

고급

이것은Document Extraction, AI Summarization분야의자동화 워크플로우로, 16개의 노드를 포함합니다.주로 If, Code, Wait, Gmail, GoogleDrive 등의 노드를 사용하며. Foxit과 Diffbot을 사용하여 기관 정보를 추출하고 문서를 요약합니다

사전 요구사항
  • Google 계정 및 Gmail API 인증 정보
  • Google Drive API 인증 정보
  • 대상 API의 인증 정보가 필요할 수 있음
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "id": "jq3ISjs9Ah5SrJEl",
  "meta": {
    "instanceId": "8a623c3f1a4c9388f43b80af022dca52562aec4339b44f00a07491999dffc00f",
    "templateCredsSetupCompleted": true
  },
  "name": "Intelligent Document Flow",
  "tags": [],
  "nodes": [
    {
      "id": "e0e1f4a8-973f-44cc-9103-b2a92fa0cd0c",
      "name": "Google 드라이브 폴더에서 새 파일 발생 시",
      "type": "n8n-nodes-base.googleDriveTrigger",
      "position": [
        -480,
        -140
      ],
      "parameters": {
        "event": "fileCreated",
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "triggerOn": "specificFolder",
        "folderToWatch": {
          "__rl": true,
          "mode": "url",
          "value": "https://drive.google.com/drive/folders/1yHMr9A68V4QLtd6fIKuM7BE1U4mpN6cD"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "yzSXRqiRtvWSu0sZ",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1a016850-c310-43a6-9925-538086367d4f",
      "name": "파일 다운로드",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -260,
        -140
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {},
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "yzSXRqiRtvWSu0sZ",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "8a1bf842-514e-4f28-b799-989de5ee2dae",
      "name": "Foxit에 업로드",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -40,
        -140
      ],
      "parameters": {
        "url": "https://na1.fusion.foxit.com/pdf-services/api/documents/upload",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "file",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "data"
            }
          ]
        },
        "genericAuthType": "httpCustomAuth"
      },
      "credentials": {
        "httpCustomAuth": {
          "id": "itvQ81oceu7Z42Sz",
          "name": "Custom Auth account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "e5227af7-afff-4f6e-af71-097b9b8b414e",
      "name": "Foxit 추출 시작",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        180,
        -140
      ],
      "parameters": {
        "url": "https://na1.fusion.foxit.com/pdf-services/api/documents/modify/pdf-extract",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"documentId\": \"{{ $json.documentId }}\",\n  \"extractType\":\"TEXT\"\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpCustomAuth"
      },
      "credentials": {
        "httpCustomAuth": {
          "id": "itvQ81oceu7Z42Sz",
          "name": "Custom Auth account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "f0c75b63-c65e-4dc3-acc2-83ba5b7557f2",
      "name": "작업 확인",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        620,
        -140
      ],
      "parameters": {
        "url": "=https://na1.fusion.foxit.com/pdf-services/api/tasks/{{$json.taskId}}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpCustomAuth"
      },
      "credentials": {
        "httpCustomAuth": {
          "id": "itvQ81oceu7Z42Sz",
          "name": "Custom Auth account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "d6c0040f-8453-4502-b24c-7ea4fb151b93",
      "name": "작업 완료 여부?",
      "type": "n8n-nodes-base.if",
      "position": [
        -420,
        140
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "fa958cdc-d7a8-49b9-b577-13429bd7bcf5",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.status }}",
              "rightValue": "COMPLETED"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "07a33ebd-53bd-49f9-967e-7c802b8fa162",
      "name": "대기",
      "type": "n8n-nodes-base.wait",
      "position": [
        -160,
        380
      ],
      "webhookId": "73c776cc-25e1-4543-8a18-48c69a7d6e82",
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "535c42f4-bd75-4ab4-8468-5ce253db452f",
      "name": "추출된 텍스트 다운로드",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -180,
        100
      ],
      "parameters": {
        "url": "=https://na1.fusion.foxit.com/pdf-services/api/documents/{{ $('Check Task').item.json.resultDocumentId }}/download",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpCustomAuth"
      },
      "credentials": {
        "httpCustomAuth": {
          "id": "itvQ81oceu7Z42Sz",
          "name": "Custom Auth account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "f4804b68-db6d-4fa0-9d38-e8d339ed949a",
      "name": "Diffbot 엔티티 가져오기",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        80,
        100
      ],
      "parameters": {
        "url": "https://nl.diffbot.com/v1/?fields=entities,summary",
        "method": "POST",
        "options": {},
        "jsonBody": "=[{\n  \"content\":{{ JSON.stringify($json.data) }},\n  \"lang\":\"en\",\n  \"format\":\"plain text\"\n}]",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpQueryAuth"
      },
      "credentials": {
        "httpQueryAuth": {
          "id": "oTrsbmKF2Bq7Awce",
          "name": "Query Auth account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "e3f7c3da-cda6-4039-84de-b162dae71b64",
      "name": "데이터 구성",
      "type": "n8n-nodes-base.code",
      "position": [
        300,
        100
      ],
      "parameters": {
        "jsCode": "// Loop over input items and add a new field called 'myNewField' to the JSON of each one\n/*\nfor (const item of $input.all()) {\n  console.log('in loop', item);\n  item.json.myNewField = 1;\n}\n*/\nconsole.log('hello ray');\n\nlet organizations = $input.all()[0].json.entities.filter(d => {\n  let hasOrg = false;\n  let isConfident = false;\n  let types = d.allTypes.reduce((names, i) => {\n    names.push(i.name);\n    return names;\n  },[]);\n  if(types.indexOf('organization') >= 0) hasOrg = true;\n  isConfident = d.confidence >= 0.85;\n  return (hasOrg && isConfident);\n});\n\nlet orgNames = organizations.reduce((names, o) => {\n  names.push(o.name);\n  return names;\n}, []);\n\nreturn { organizations:orgNames, summary:$input.all()[0].json.summary }\n"
      },
      "typeVersion": 2
    },
    {
      "id": "540a774b-82ee-41b2-9ac1-b21e30bfa71a",
      "name": "Gmail",
      "type": "n8n-nodes-base.gmail",
      "position": [
        720,
        100
      ],
      "webhookId": "d2b05334-9a0c-4795-a508-85fbc49c773d",
      "parameters": {
        "sendTo": "raymondcamden@gmail.com",
        "message": "={{ $json.html }}",
        "options": {},
        "subject": "intelligent Document Report on Upload"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "A7SxJ0FWjVNKGOnA",
          "name": "Gmail account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "eed7c59c-124e-461c-a7d0-1100376470f1",
      "name": "스티커 메모",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -480,
        -320
      ],
      "parameters": {
        "width": 320,
        "content": "## Ingestion\n\nThe workflow kicks off when a new file is added to Google Drive in a particular folder. The data is downloaded to n8n."
      },
      "typeVersion": 1
    },
    {
      "id": "9a39a52d-4765-47ce-91d2-f61b6df47838",
      "name": "스티커 메모1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -40,
        -320
      ],
      "parameters": {
        "width": 760,
        "content": "## Uploading and Extracting\nNext, the document is uploaded to Foxit and the Extraction API is fired to get the text. This is an async job so we check the status in a loop."
      },
      "typeVersion": 1
    },
    {
      "id": "fae16938-8a56-45b7-b3cf-87ee7a17ab09",
      "name": "스티커 메모2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        40,
        280
      ],
      "parameters": {
        "content": "## Analyzing\n\nAfter the Extract result is downloaded, Diffbot is called and asked to analyze and summarize the contents."
      },
      "typeVersion": 1
    },
    {
      "id": "574e824b-1f88-469c-b3e1-662ed7a653c0",
      "name": "Make 이메일 내용",
      "type": "n8n-nodes-base.code",
      "position": [
        520,
        100
      ],
      "parameters": {
        "jsCode": "// Loop over input items and add a new field called 'myNewField' to the JSON of each one\nlet input = $input.all()[0].json;\nlet doc = $('Fire on New File in Google Drive Folder').first().json.name;\nlet link = $('Fire on New File in Google Drive Folder').first().json.webViewLink;\n\nlet html = `\n<h2>Docucument Report for <a href=\"${link}\">${doc}</a></h2>\n\n<p>\nThis document discussed the following organizations:\n<ul>\n`;\nlet orgs = input.organizations.reduce((s, o) => {\n  return s + `<li>${o}</li>`;\n},'');\n\nhtml += orgs + `\n</ul>\n\n<p>\nSummary for this document:\n</p>\n<p>\n${input.summary}\n</p>\n`;\n\nreturn { html };"
      },
      "typeVersion": 2
    },
    {
      "id": "bb085e4b-04b3-4d6e-b1a0-722766490849",
      "name": "스티커 메모3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        320,
        280
      ],
      "parameters": {
        "width": 500,
        "content": "## Shaping and Emailing\n\nFinally, we shape the result from Diffbot and create an HTML string that can be used in the email stage."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "85760a47-a1c3-4928-8065-23bd5de0b437",
  "connections": {
    "07a33ebd-53bd-49f9-967e-7c802b8fa162": {
      "main": [
        [
          {
            "node": "f0c75b63-c65e-4dc3-acc2-83ba5b7557f2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f0c75b63-c65e-4dc3-acc2-83ba5b7557f2": {
      "main": [
        [
          {
            "node": "d6c0040f-8453-4502-b24c-7ea4fb151b93",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e3f7c3da-cda6-4039-84de-b162dae71b64": {
      "main": [
        [
          {
            "node": "574e824b-1f88-469c-b3e1-662ed7a653c0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1a016850-c310-43a6-9925-538086367d4f": {
      "main": [
        [
          {
            "node": "8a1bf842-514e-4f28-b799-989de5ee2dae",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8a1bf842-514e-4f28-b799-989de5ee2dae": {
      "main": [
        [
          {
            "node": "e5227af7-afff-4f6e-af71-097b9b8b414e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d6c0040f-8453-4502-b24c-7ea4fb151b93": {
      "main": [
        [
          {
            "node": "535c42f4-bd75-4ab4-8468-5ce253db452f",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "07a33ebd-53bd-49f9-967e-7c802b8fa162",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "574e824b-1f88-469c-b3e1-662ed7a653c0": {
      "main": [
        [
          {
            "node": "540a774b-82ee-41b2-9ac1-b21e30bfa71a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f4804b68-db6d-4fa0-9d38-e8d339ed949a": {
      "main": [
        [
          {
            "node": "e3f7c3da-cda6-4039-84de-b162dae71b64",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e5227af7-afff-4f6e-af71-097b9b8b414e": {
      "main": [
        [
          {
            "node": "f0c75b63-c65e-4dc3-acc2-83ba5b7557f2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "535c42f4-bd75-4ab4-8468-5ce253db452f": {
      "main": [
        [
          {
            "node": "f4804b68-db6d-4fa0-9d38-e8d339ed949a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e0e1f4a8-973f-44cc-9103-b2a92fa0cd0c": {
      "main": [
        [
          {
            "node": "1a016850-c310-43a6-9925-538086367d4f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

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

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

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

고급 - 문서 추출, AI 요약

유료인가요?

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

워크플로우 정보
난이도
고급
노드 수16
카테고리2
노드 유형8
난이도 설명

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

저자
Raymond Camden

Raymond Camden

@raymondcamden

As an API Evangelist for Foxit, Raymond Camden specializes in the power of APIs, the web platform, and generative AI. A prolific author and seasoned presenter, he has been a prominent voice in the developer community for over two decades. You can explore his work and insights on his long-running blog at www.raymondcamden.com or reach him directly at raymondcamden@gmail.com.

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34