Flujo de documentos inteligente
Este es unDocument Extraction, AI Summarizationflujo de automatización del dominio deautomatización que contiene 16 nodos.Utiliza principalmente nodos como If, Code, Wait, Gmail, GoogleDrive. Extraer información de instituciones y resumir documentos usando Foxit y Diffbot
- •Cuenta de Google y credenciales de API de Gmail
- •Credenciales de API de Google Drive
- •Pueden requerirse credenciales de autenticación para la API de destino
Nodos utilizados (16)
{
"id": "jq3ISjs9Ah5SrJEl",
"meta": {
"instanceId": "8a623c3f1a4c9388f43b80af022dca52562aec4339b44f00a07491999dffc00f",
"templateCredsSetupCompleted": true
},
"name": "Intelligent Document Flow",
"tags": [],
"nodes": [
{
"id": "e0e1f4a8-973f-44cc-9103-b2a92fa0cd0c",
"name": "Activar al Nuevo Archivo en Carpeta Google Drive",
"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": "Descargar Archivo",
"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": "Subir a 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": "Iniciar Extracción de 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": "Verificar Tarea",
"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": "¿Está completado el trabajo?",
"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": "Esperar",
"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": "Descargar Texto Extraído",
"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": "Obtener Entidades 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": "Dar Formato a Datos",
"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": "Nota Adhesiva",
"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": "Nota Adhesiva1",
"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": "Nota Adhesiva2",
"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 Contenido de Correo",
"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": "Nota Adhesiva3",
"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
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Avanzado - Extracción de documentos, Resumen de IA
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
Raymond Camden
@raymondcamdenAs 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.
Compartir este flujo de trabajo