Sistema de revisión por pares con IA, con generación automática de criterios de calificación

Avanzado

Este es unDocument Extraction, AI Summarizationflujo de automatización del dominio deautomatización que contiene 22 nodos.Utiliza principalmente nodos como Set, Code, Slack, Webhook, Postgres. Automatizar la asignación de revisiones por pares con Slack y notificaciones por correo electrónico

Requisitos previos
  • Bot Token de Slack o URL de Webhook
  • Punto final de HTTP Webhook (n8n generará automáticamente)
  • Información de conexión de la base de datos PostgreSQL
  • Pueden requerirse credenciales de autenticación para la API de destino
  • Clave de API de OpenAI
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "id": "hyS3D6DeGnzyTr2u",
  "meta": {
    "instanceId": "b91e510ebae4127f953fd2f5f8d40d58ca1e71c746d4500c12ae86aad04c1502",
    "templateCredsSetupCompleted": true
  },
  "name": "AI-Powered Peer Review Assignment System with Automated Rubric Generation",
  "tags": [],
  "nodes": [
    {
      "id": "dbb5ad4a-a451-454c-ae02-0c9ba0e24009",
      "name": "Webhook - Enviar Tarea",
      "type": "n8n-nodes-base.webhook",
      "position": [
        688,
        272
      ],
      "webhookId": "07ab9df1-015b-4aab-83af-a1969ecb2376",
      "parameters": {
        "path": "peer-assessment",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 2
    },
    {
      "id": "5c775304-5483-4bc9-b9d9-9217cff51568",
      "name": "Almacenar Datos de la Tarea",
      "type": "n8n-nodes-base.set",
      "position": [
        912,
        272
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "={{ $json.studentId }}",
              "value": "={{ $json }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "525afedc-981e-4264-8eb0-56b2ab98850a",
      "name": "Distribuir Tareas a Pares",
      "type": "n8n-nodes-base.code",
      "position": [
        1136,
        272
      ],
      "parameters": {
        "jsCode": "const assignments = $input.all();\nconst numPeers = 3;\nconst results = [];\n\nfor (let i = 0; i < assignments.length; i++) {\n  const assignment = assignments[i].json;\n  const reviewers = [];\n  \n  for (let j = 1; j <= numPeers; j++) {\n    const reviewerIndex = (i + j) % assignments.length;\n    reviewers.push({\n      reviewerId: assignments[reviewerIndex].json.studentId,\n      reviewerName: assignments[reviewerIndex].json.studentName,\n      reviewerEmail: assignments[reviewerIndex].json.email\n    });\n  }\n  \n  results.push({\n    assignmentId: assignment.assignmentId,\n    studentId: assignment.studentId,\n    studentName: assignment.studentName,\n    submissionUrl: assignment.submissionUrl,\n    assignmentTitle: assignment.assignmentTitle,\n    reviewers: reviewers,\n    dueDate: assignment.dueDate\n  });\n}\n\nreturn results;"
      },
      "typeVersion": 2
    },
    {
      "id": "2ce2eeee-90b2-4f47-a4af-5a711ae1f4d5",
      "name": "Modelo OpenAI",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1368,
        496
      ],
      "parameters": {
        "model": "gpt-4.1-nano",
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "OGYj7DgYv5GFLFZk",
          "name": "OpenAi account 2"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a5f15c1f-7de0-4f4a-93cb-4933f919a3d8",
      "name": "Generar Rúbrica de Revisión",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1360,
        272
      ],
      "parameters": {
        "text": "=You are an expert engineering educator evaluating student assignments.\n\nAssignment Title: {{ $json.assignmentTitle }}\nStudent Name: {{ $json.studentName }}\nSubmission: {{ $json.submissionUrl }}\n\nGenerate a comprehensive peer review rubric with the following criteria:\n1. Technical Accuracy (0-25 points)\n2. Problem-solving Approach (0-25 points)\n3. Documentation Quality (0-20 points)\n4. Code/Design Quality (0-20 points)\n5. Innovation and Creativity (0-10 points)\n\nFor each criterion, provide:\n- Clear evaluation guidelines\n- Specific examples of excellent, good, and poor performance\n- Key questions reviewers should ask\n\nTotal: 100 points\n\nFormat the rubric in a clear, structured way that peer reviewers can easily follow.",
        "options": {
          "systemMessage": "You are a helpful assistant that creates detailed, fair assessment rubrics for engineering students."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.7
    },
    {
      "id": "dfee8790-e94b-4538-ac78-82f83aa98dde",
      "name": "Analizador de Estructura",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1496,
        496
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "7018f378-326e-4b01-a063-c3c582d7aae6",
      "name": "Notificar en Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        1712,
        176
      ],
      "webhookId": "b7ef9ed7-b2eb-4065-b2d1-26879685c25c",
      "parameters": {
        "text": "=📚 *New Peer Review Assignment*\n\n*Student:* {{ $json.studentName }}\n*Assignment:* {{ $json.assignmentTitle }}\n*Due Date:* {{ $json.dueDate }}\n\n*Assigned Reviewers:*\n{{$json.reviewers.map(r => `• ${r.reviewerName} (${r.reviewerEmail})`).join('\\n')}}\n\n*Submission:* {{ $json.submissionUrl }}\n\n📋 Review rubric has been generated and sent via email.",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "C12345678",
          "cachedResultName": "peer-reviews"
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "typeVersion": 2.2
    },
    {
      "id": "5dfa2873-48bd-43ba-9d11-887bd65244ae",
      "name": "Enviar Correo a Revisores",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        1712,
        368
      ],
      "webhookId": "025cb70a-2cfc-4b34-b97b-e9739db3f5e6",
      "parameters": {
        "html": "=<h2>Peer Review Assignment</h2>\n<p>Dear Reviewer,</p>\n<p>You have been assigned to review: <strong>{{ $json.assignmentTitle }}</strong></p>\n<p><strong>Student:</strong> {{ $json.studentName }}</p>\n<p><strong>Due Date:</strong> {{ $json.dueDate }}</p>\n<p><a href=\"{{ $json.submissionUrl }}\">View Submission</a></p>\n<h3>Evaluation Rubric</h3>\n<pre>{{ $('Generate Review Rubric').item.json.output }}</pre>\n<p>Please complete your review by the due date.</p>",
        "options": {},
        "subject": "=Peer Review Assignment: {{ $json.assignmentTitle }}",
        "toEmail": "={{ $json.reviewers.map(r => r.reviewerEmail).join(', ') }}",
        "fromEmail": "noreply@university.edu"
      },
      "typeVersion": 2.1
    },
    {
      "id": "01db542c-43a3-433e-834f-e21ea5fb7588",
      "name": "Preparar Datos de Respuesta",
      "type": "n8n-nodes-base.set",
      "position": [
        1936,
        368
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "assignmentId",
              "value": "={{ $json.assignmentId }}"
            },
            {
              "id": "studentId",
              "value": "={{ $json.studentId }}"
            },
            {
              "id": "studentName",
              "value": "={{ $json.studentName }}"
            },
            {
              "id": "rubric",
              "value": "={{ $('Generate Review Rubric').item.json.output }}"
            },
            {
              "id": "reviewers",
              "value": "={{ $json.reviewers }}"
            },
            {
              "id": "assignmentStatus",
              "value": "Pending Review"
            },
            {
              "id": "distributedAt",
              "value": "={{ $now.toISO() }}"
            },
            {
              "id": "dueDate",
              "value": "={{ $json.dueDate }}"
            },
            {
              "id": "reviewerCount",
              "value": "={{ $json.reviewers.length }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "0d11436b-6fcb-443d-ad80-b22e1c8455d0",
      "name": "Responder a Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        2160,
        368
      ],
      "parameters": {
        "options": {},
        "respondWith": "json",
        "responseBody": "={\n  \"success\": true,\n  \"message\": \"Peer review assignments distributed successfully\",\n  \"assignmentId\": \"{{ $json.assignmentId }}\",\n  \"student\": \"{{ $json.studentName }}\",\n  \"reviewersAssigned\": {{ $json.reviewers.length }},\n  \"rubricGenerated\": true,\n  \"status\": \"{{ $json.assignmentStatus }}\"\n}"
      },
      "typeVersion": 1.1
    },
    {
      "id": "dc5379a3-fe2d-469d-8cea-3fd823e6e568",
      "name": "Calificar Evaluación de Pares",
      "type": "n8n-nodes-base.code",
      "position": [
        1936,
        560
      ],
      "parameters": {
        "mode": "runOnceForEachItem",
        "jsCode": "const reviewData = $input.item.json;\nconst scores = {\n  technicalAccuracy: Math.floor(Math.random() * 26),\n  problemSolving: Math.floor(Math.random() * 26),\n  documentation: Math.floor(Math.random() * 21),\n  codeQuality: Math.floor(Math.random() * 21),\n  innovation: Math.floor(Math.random() * 11)\n};\n\nconst totalScore = Object.values(scores).reduce((a, b) => a + b, 0);\nconst grade = totalScore >= 90 ? 'A' : totalScore >= 80 ? 'B' : totalScore >= 70 ? 'C' : totalScore >= 60 ? 'D' : 'F';\n\nreturn {\n  ...reviewData,\n  scores,\n  totalScore,\n  grade,\n  evaluatedAt: new Date().toISOString()\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "e3bbd041-325b-4781-9c62-28792f04f829",
      "name": "Almacenar Resultados de la Revisión",
      "type": "n8n-nodes-base.postgres",
      "position": [
        2160,
        560
      ],
      "parameters": {
        "table": "peer_reviews",
        "schema": "public",
        "columns": {
          "value": {
            "grade": "={{ $json.grade }}",
            "scores": "={{ JSON.stringify($json.scores) }}",
            "studentId": "={{ $json.studentId }}",
            "reviewerId": "={{ $json.reviewerId }}",
            "totalScore": "={{ $json.totalScore }}",
            "evaluatedAt": "={{ $json.evaluatedAt }}",
            "assignmentId": "={{ $json.assignmentId }}"
          },
          "mappingMode": "defineBelow"
        },
        "options": {}
      },
      "typeVersion": 2.5
    },
    {
      "id": "9d6e0259-cdf7-45ac-b30a-91ddd94c59c2",
      "name": "Verificar Estado de Finalización",
      "type": "n8n-nodes-base.code",
      "position": [
        2384,
        560
      ],
      "parameters": {
        "jsCode": "const reviews = $input.all();\nconst assignmentGroups = {};\n\nreviews.forEach(review => {\n  const aid = review.json.assignmentId;\n  if (!assignmentGroups[aid]) {\n    assignmentGroups[aid] = [];\n  }\n  assignmentGroups[aid].push(review.json);\n});\n\nconst results = [];\nfor (const [assignmentId, reviewList] of Object.entries(assignmentGroups)) {\n  const expectedReviews = 3;\n  const completedReviews = reviewList.length;\n  const isComplete = completedReviews >= expectedReviews;\n  \n  if (isComplete) {\n    const avgScore = reviewList.reduce((sum, r) => sum + r.totalScore, 0) / completedReviews;\n    results.push({\n      assignmentId,\n      studentId: reviewList[0].studentId,\n      completedReviews,\n      averageScore: Math.round(avgScore * 10) / 10,\n      finalGrade: avgScore >= 90 ? 'A' : avgScore >= 80 ? 'B' : avgScore >= 70 ? 'C' : avgScore >= 60 ? 'D' : 'F',\n      isComplete,\n      completedAt: new Date().toISOString()\n    });\n  }\n}\n\nreturn results;"
      },
      "typeVersion": 2
    },
    {
      "id": "034536c4-2459-4f27-8b29-7ea152b3837a",
      "name": "Generar Informe Final",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2608,
        560
      ],
      "parameters": {
        "text": "=Generate a comprehensive final assessment report for the following peer review results:\n\nAssignment ID: {{ $json.assignmentId }}\nStudent ID: {{ $json.studentId }}\nCompleted Reviews: {{ $json.completedReviews }}\nAverage Score: {{ $json.averageScore }}/100\nFinal Grade: {{ $json.finalGrade }}\n\nProvide:\n1. Executive Summary (2-3 sentences)\n2. Strengths identified across reviews\n3. Areas for improvement\n4. Specific actionable recommendations\n5. Comparison to class average (assume 75/100)\n6. Next steps for the student\n\nFormat as a professional academic report.",
        "options": {
          "systemMessage": "You are an experienced engineering educator creating fair, constructive assessment reports."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.7
    },
    {
      "id": "f77c9063-2576-412d-85e4-fdb3f6e3550d",
      "name": "Modelo OpenAI 2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2616,
        784
      ],
      "parameters": {
        "model": "gpt-4.1-nano",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "b7a33e8f-905b-4077-994b-4d98b67b14fb",
      "name": "Analizador de Estructura 2",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        2744,
        784
      ],
      "parameters": {
        "jsonSchemaExample": "{\"executiveSummary\":\"Brief overview\",\"strengths\":[\"Strength 1\",\"Strength 2\"],\"improvements\":[\"Area 1\",\"Area 2\"],\"recommendations\":[\"Rec 1\",\"Rec 2\"],\"classComparison\":\"Above/Below average\",\"nextSteps\":[\"Step 1\",\"Step 2\"]}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "8a930773-95cc-434c-b9b5-ceff96bcb624",
      "name": "Enviar Informe Final por Correo",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        2960,
        272
      ],
      "webhookId": "1f75864b-71ad-468f-af05-5eae19442f8d",
      "parameters": {
        "html": "=<h2>Peer Review Complete</h2>\n<p><strong>Final Grade:</strong> {{ $json.finalGrade }} ({{ $json.averageScore }}/100)</p>\n<h3>Report Summary</h3>\n<pre>{{ $('Generate Final Report').item.json.output }}</pre>\n<p>Reviewed by {{ $json.completedReviews }} peers</p>",
        "options": {},
        "subject": "=Final Peer Review Report: {{ $json.assignmentId }}",
        "toEmail": "={{ $('Distribute Peer Assignments').item.json.email }}",
        "fromEmail": "noreply@university.edu"
      },
      "typeVersion": 2.1
    },
    {
      "id": "61f0ed39-ee56-4540-aef7-19c228ac8a40",
      "name": "Actualizar Métricas del Panel",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2960,
        464
      ],
      "parameters": {
        "url": "https://dashboard.university.edu/api/metrics",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "assignmentId",
              "value": "={{ $json.assignmentId }}"
            },
            {
              "name": "averageScore",
              "value": "={{ $json.averageScore }}"
            },
            {
              "name": "grade",
              "value": "={{ $json.finalGrade }}"
            },
            {
              "name": "timestamp",
              "value": "={{ $json.completedAt }}"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.2
    },
    {
      "id": "0d1cb75c-5209-4e2d-ae42-501097d02164",
      "name": "Informe Analítico",
      "type": "n8n-nodes-base.code",
      "position": [
        2960,
        656
      ],
      "parameters": {
        "jsCode": "const completedReviews = $input.all();\nconst totalReviews = completedReviews.length;\nconst avgScore = completedReviews.reduce((sum, r) => sum + r.json.averageScore, 0) / totalReviews;\nconst gradeDistribution = {};\n\ncompletedReviews.forEach(review => {\n  const grade = review.json.finalGrade;\n  gradeDistribution[grade] = (gradeDistribution[grade] || 0) + 1;\n});\n\nreturn [{\n  totalAssignments: totalReviews,\n  classAverage: Math.round(avgScore * 10) / 10,\n  gradeDistribution,\n  generatedAt: new Date().toISOString()\n}];"
      },
      "typeVersion": 2
    },
    {
      "id": "97d2721d-1cf6-4526-b49e-6fb55919d8ae",
      "name": "Publicar Análisis en Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        3184,
        656
      ],
      "webhookId": "afdef287-b6e6-4afc-a97a-0ff0cc332e12",
      "parameters": {
        "text": "=📊 *Peer Review Analytics Report*\n\n*Total Assignments Completed:* {{ $json.totalAssignments }}\n*Class Average Score:* {{ $json.classAverage }}/100\n\n*Grade Distribution:*\n{{Object.entries($json.gradeDistribution).map(([grade, count]) => `• ${grade}: ${count} students`).join('\\n')}}\n\n*Generated:* {{ $json.generatedAt }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "C12345678"
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "typeVersion": 2.2
    },
    {
      "id": "29d958b0-32a6-4422-978c-2362e9b5a566",
      "name": "Nota Adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        368,
        448
      ],
      "parameters": {
        "width": 656,
        "height": 624,
        "content": "## Introduction\nAutomate peer review assignment and grading with AI-powered evaluation. Designed for educators managing collaborative assessments efficiently.\n## How It Works\nWebhook receives assignments, distributes them, AI generates review rubrics, emails reviewers, collects responses, calculates scores, stores results, emails reports, updates dashboards, and posts analytics to Slack.\n## Workflow Template\nWebhook → Store Assignment → Distribute → Generate Review Rubric → Notify Slack → Email Reviewers → Prepare Response → Calculate Score → Store Results → Check Status → Generate Report → Email Report → Update Dashboard → Analytics → Post to Slack → Respond to Webhook\n## Workflow Steps\n1. Receive & Store: Webhook captures assignments, stores data.\n2. Distribute & Generate: Assigns peer reviewers, AI creates rubrics.\n3. Notify & Email: Alerts via Slack, sends review requests.\n4. Collect & Score: Gathers responses, calculates peer scores.\n5. Report & Update: Generates reports, emails results, updates dashboard.\n6. Analyze & Alert: Posts analytics to Slack, confirms completion.\n## Setup Instructions\n1. Webhook & Storage: Configure endpoint, set up database.\n2. AI Configuration: Add OpenAI key, customize rubric prompts.\n3. Communication: Connect Gmail, Slack credentials.\n4. Dashboard: Link analytics platform, configure metrics.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "43e2c3fe-85b8-4df4-b537-f0d951c0b010",
      "name": "Nota Adhesiva 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1056,
        608
      ],
      "parameters": {
        "color": 6,
        "width": 512,
        "height": 464,
        "content": "## Prerequisites\n- OpenAI API key\n- Gmail account\n- Slack workspace\n- Database or storage system\n- Dashboard tool\n## Use Cases\n- University peer review assignments\n- Corporate training evaluations\n- Research paper assessments\n## Customization\n- Multi-round review cycles\n- Custom scoring algorithms\n## Benefits\n- Eliminates manual distribution\n- Ensures consistent evaluation\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "2de6649a-58f2-47c5-b2e1-3316b32830c2",
  "connections": {
    "2ce2eeee-90b2-4f47-a4af-5a711ae1f4d5": {
      "ai_languageModel": [
        [
          {
            "node": "a5f15c1f-7de0-4f4a-93cb-4933f919a3d8",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "f77c9063-2576-412d-85e4-fdb3f6e3550d": {
      "ai_languageModel": [
        [
          {
            "node": "034536c4-2459-4f27-8b29-7ea152b3837a",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "5dfa2873-48bd-43ba-9d11-887bd65244ae": {
      "main": [
        [
          {
            "node": "01db542c-43a3-433e-834f-e21ea5fb7588",
            "type": "main",
            "index": 0
          },
          {
            "node": "dc5379a3-fe2d-469d-8cea-3fd823e6e568",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0d1cb75c-5209-4e2d-ae42-501097d02164": {
      "main": [
        [
          {
            "node": "97d2721d-1cf6-4526-b49e-6fb55919d8ae",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dfee8790-e94b-4538-ac78-82f83aa98dde": {
      "ai_outputParser": [
        [
          {
            "node": "a5f15c1f-7de0-4f4a-93cb-4933f919a3d8",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "b7a33e8f-905b-4077-994b-4d98b67b14fb": {
      "ai_outputParser": [
        [
          {
            "node": "034536c4-2459-4f27-8b29-7ea152b3837a",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "dc5379a3-fe2d-469d-8cea-3fd823e6e568": {
      "main": [
        [
          {
            "node": "e3bbd041-325b-4781-9c62-28792f04f829",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e3bbd041-325b-4781-9c62-28792f04f829": {
      "main": [
        [
          {
            "node": "9d6e0259-cdf7-45ac-b30a-91ddd94c59c2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "034536c4-2459-4f27-8b29-7ea152b3837a": {
      "main": [
        [
          {
            "node": "8a930773-95cc-434c-b9b5-ceff96bcb624",
            "type": "main",
            "index": 0
          },
          {
            "node": "61f0ed39-ee56-4540-aef7-19c228ac8a40",
            "type": "main",
            "index": 0
          },
          {
            "node": "0d1cb75c-5209-4e2d-ae42-501097d02164",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "01db542c-43a3-433e-834f-e21ea5fb7588": {
      "main": [
        [
          {
            "node": "0d11436b-6fcb-443d-ad80-b22e1c8455d0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5c775304-5483-4bc9-b9d9-9217cff51568": {
      "main": [
        [
          {
            "node": "525afedc-981e-4264-8eb0-56b2ab98850a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a5f15c1f-7de0-4f4a-93cb-4933f919a3d8": {
      "main": [
        [
          {
            "node": "7018f378-326e-4b01-a063-c3c582d7aae6",
            "type": "main",
            "index": 0
          },
          {
            "node": "5dfa2873-48bd-43ba-9d11-887bd65244ae",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9d6e0259-cdf7-45ac-b30a-91ddd94c59c2": {
      "main": [
        [
          {
            "node": "034536c4-2459-4f27-8b29-7ea152b3837a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "525afedc-981e-4264-8eb0-56b2ab98850a": {
      "main": [
        [
          {
            "node": "a5f15c1f-7de0-4f4a-93cb-4933f919a3d8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dbb5ad4a-a451-454c-ae02-0c9ba0e24009": {
      "main": [
        [
          {
            "node": "5c775304-5483-4bc9-b9d9-9217cff51568",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿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

Calificación de tareas impulsada por IA con GPT-4-Turbo y salida en múltiples formatos
Usar GPT-4-Turbo para automatizar la corrección de trabajos y la generación de informes en múltiples formatos
Set
Code
Webhook
+
Set
Code
Webhook
15 NodosCheng Siong Chin
Extracción de documentos
Proceso de reclutamiento impulsado por IA con GPT-4o-mini: de filtrado de CVs a agendamiento de entrevistas
Usar GPT-4o-mini en Airtable para automatizar contrataciones: desde el cribado de CVs hasta la programación de entrevistas
Slack
Filter
Webhook
+
Slack
Filter
Webhook
21 NodosCheng Siong Chin
Recursos Humanos
Evaluación de tareas con IA de Sonar Pro y recordatorios de múltiples fechas límite
Automatizar la asignación de revisiones por pares con Sonar Pro AI y recordatorios de plazos multicanal
Set
Filter
Discord
+
Set
Filter
Discord
23 NodosCheng Siong Chin
Extracción de documentos
Generador de informes y resúmenes post-evento impulsado por IA
Usar GPT-4 para generar informes post-evento, con soporte para envío por correo y almacenamiento en base de datos
Code
Webhook
Postgres
+
Code
Webhook
Postgres
13 NodosOneclick AI Squad
Extracción de documentos
Investigación avanzada de IA multi-fuente basada en Bright Data, OpenAI y Redis
Investigación avanzada multi-fuente de IA usando Bright Data, OpenAI y Redis
If
Set
Code
+
If
Set
Code
43 NodosDaniel Shashko
Investigación de mercado
Sistema de advertencia de salud impulsado por IA para Grok-3 (con notificación para familiares)
Sistema de monitoreo de salud basado en Grok-3 AI con alertas por correo para familiares/médicos
If
Set
Merge
+
If
Set
Merge
17 NodosCheng Siong Chin
Productividad personal
Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos22
Categoría2
Tipos de nodos12
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Autor
Cheng Siong Chin

Cheng Siong Chin

@cschin

Prof. Cheng Siong CHIN serves as Chair Professor in Intelligent Systems Modelling and Simulation in Newcastle University, Singapore. His academic credentials include an M.Sc. in Advanced Control and Systems Engineering from The University of Manchester and a Ph.D. in Robotics from Nanyang Technological University.

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34