[astro/nextjs] Asignar categorías/etiquetas a artículos/publicaciones

Avanzado

Este es unContent Creation, AI Summarizationflujo de automatización del dominio deautomatización que contiene 29 nodos.Utiliza principalmente nodos como Code, Form, Merge, Github, Switch. Usar OpenAI GPT-4, GitHub y Google Sheets para clasificar automáticamente artículos de blog de Astro/Next.js

Requisitos previos
  • Personal Access Token de GitHub
  • Credenciales de API de Google Sheets
  • 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": "c3REFIr9ubIDDYJ5",
  "meta": {
    "instanceId": "2295c029f4cb86c8f849f9c87dade323734dc279619eb9e2704f8473c381e4d1",
    "templateCredsSetupCompleted": true
  },
  "name": "[astro/nextjs] Assign cattegories / tags for article / post",
  "tags": [],
  "nodes": [
    {
      "id": "48cac2b7-14b3-4d02-8db7-082c9a8a5cec",
      "name": "Agente de IA",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2192,
        96
      ],
      "parameters": {
        "text": "={{ $json.path }}",
        "options": {
          "systemMessage": "You are a helpful assistant which helps to assign proper tags and categories for post. Example of post is added in section <post>.  \n\nEach post has a section which starts with \"---\" and ands with next ocurance of \"---\". This section is metadata which describes the post. After second ocurance of \"---\" file has a content. \n\nRead tags and categories and assign them to <tags> and <categories> variables used later in response.\n\nBased on content please provide categories assigned to <new_assigned_categories> and tags list assigned to <new_assigned_tags> as example below:\n\n<example>\ncategories: [\"business\"] \ntags: [\"DigitalGirls\", \"ITPioneers\", \"WomenInIT\", \"IT\", \"FemalePower\", \"Debugging\", \"GraceHopper\"] \n</example>\n\nFinal result should be post with updated metadata passed to variable <content>.\n\n<post> \n--- \ntitle: \"Where Did the Term ‘Debug’ Come From? – Women in IT\" \npubDate: 2024-07-23 description: \"Did you know that the term ‘debug’ was coined by Admiral Grace Hopper?\" \ncategories: [\"business\"] \ntags: [\"DigitalGirls\", \"ITPioneers\", \"WomenInIT\", \"IT\", \"FemalePower\", \"Debugging\", \"GraceHopper\"] \ncoverImage: \"@assets/2024-07-23-skad-sie-wzielo-okreslenie-debug-kobiety-w-it.jpeg\" \n---\n\nDid you know that the term debug was coined by Admiral Grace Hopper?\nWhile working on the Mark II computer at Harvard University, a moth got trapped in a relay, interfering with the machine’s operation. Removing the dead insect was humorously referred to by Admiral Hopper as debugging.\n\nPS. After a conversation with Wioletta Klimczak, I got my hands on the book “Digital Girls. Pioneers of Polish Computer Science” by Karolina Wasielewska. The story above comes from that book. It’s proof that women are an important part of the IT world!\n\n#DigitalGirls #ITPioneers #WomenInIT #IT #FemalePower #Debugging #GraceHopper\n</post>"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "1844db4c-6da3-47cb-be7a-2aad32126178",
      "name": "Memoria Simple",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        2272,
        288
      ],
      "parameters": {
        "sessionKey": "simple_memory",
        "sessionIdType": "customKey",
        "contextWindowLength": 2
      },
      "typeVersion": 1.3
    },
    {
      "id": "5467bd31-25c6-4133-ba33-a6c66c332881",
      "name": "Modelo de Chat OpenAI",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2128,
        288
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {
          "responseFormat": "json_object"
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "7lmHcPMAjhsZFa1f",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "d462260a-ba85-4e3b-9ddf-f3e0d37ea249",
      "name": "Listar publicaciones/artículos/páginas",
      "type": "n8n-nodes-base.github",
      "position": [
        -240,
        512
      ],
      "webhookId": "ecf1a2e3-4fc4-4660-b4a9-a97743df2a1b",
      "parameters": {
        "owner": {
          "__rl": true,
          "mode": "list",
          "value": "pjsikora",
          "cachedResultUrl": "https://github.com/pjsikora",
          "cachedResultName": "pjsikora"
        },
        "filePath": "src/content/blog/pl/",
        "resource": "file",
        "operation": "list",
        "repository": {
          "__rl": true,
          "mode": "list",
          "value": "astro-n8n-test",
          "cachedResultUrl": "https://github.com/pjsikora/astro-n8n-test",
          "cachedResultName": "astro-n8n-test"
        }
      },
      "credentials": {
        "githubApi": {
          "id": "Qjzxc6aMdLBzUGJB",
          "name": "GitHub account"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "3fb2d73a-f707-46dc-8357-67772d6a9b67",
      "name": "Nota Adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -320,
        208
      ],
      "parameters": {
        "color": 6,
        "width": 256,
        "height": 480,
        "content": "## Define repository\nDefine repository and directory in which workflow can find articles / post "
      },
      "typeVersion": 1
    },
    {
      "id": "41217dfe-2aa3-43bc-a415-88d22bb7e042",
      "name": "Nota Adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1424,
        -576
      ],
      "parameters": {
        "color": 5,
        "height": 416,
        "content": "## Get file content\nGet file content and pass it to AI Agent"
      },
      "typeVersion": 1
    },
    {
      "id": "9985d456-e5ec-4546-9020-ce0a0f9eb57c",
      "name": "Añadir filas con análisis de publicaciones/artículos",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2768,
        400
      ],
      "parameters": {
        "columns": {
          "value": {
            "Tags": "={{ JSON.stringify($json.output.old_tags) }}",
            "FileName": "={{ $('Get post/article file').item.json.path }}",
            "Categories": "={{ JSON.stringify($json.output.old_categories) }}",
            "Proposed Tags": "={{ JSON.stringify($json.output.tags) }}",
            "Proposed Categories": "={{ JSON.stringify($json.output.categories) }}"
          },
          "schema": [
            {
              "id": "FileName",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "FileName",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Categories",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Categories",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Proposed Categories",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Proposed Categories",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Tags",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Tags",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Proposed Tags",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Proposed Tags",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MU35s5OAZ4rcCXRnvkkcxrgSVAjXISeULPrCdCl0gXo/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1MU35s5OAZ4rcCXRnvkkcxrgSVAjXISeULPrCdCl0gXo",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MU35s5OAZ4rcCXRnvkkcxrgSVAjXISeULPrCdCl0gXo/edit?usp=drivesdk",
          "cachedResultName": "[AstroPosts]"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "sgj6aGeryqEVmS3h",
          "name": "GSheets - Piotr.Sikora.Ck@gmail.com"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "2476998a-9a1b-4d40-b9d1-32f6f68d5d02",
      "name": "Nota Adhesiva2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2624,
        112
      ],
      "parameters": {
        "color": 4,
        "width": 368,
        "height": 464,
        "content": "## Save propositions to Google SHeet file\n\nPrepare Google Sheet to contain following columns:\n- FileName\n- Categories\n- Proposed Categories\n- Tags\n- Proposed Tags"
      },
      "typeVersion": 1
    },
    {
      "id": "b8e31673-da84-4368-9f88-7a9cc2980e43",
      "name": "Obtener archivo de publicación/artículo",
      "type": "n8n-nodes-base.github",
      "position": [
        1504,
        -352
      ],
      "webhookId": "682a79e6-7c61-452d-8170-6f83196743a8",
      "parameters": {
        "owner": {
          "__rl": true,
          "mode": "list",
          "value": "pjsikora",
          "cachedResultUrl": "https://github.com/pjsikora",
          "cachedResultName": "pjsikora"
        },
        "filePath": "={{ $json.path }}",
        "resource": "file",
        "operation": "get",
        "repository": {
          "__rl": true,
          "mode": "list",
          "value": "piotr-sikora.com",
          "cachedResultUrl": "https://github.com/pjsikora/piotr-sikora.com",
          "cachedResultName": "piotr-sikora.com"
        },
        "additionalParameters": {}
      },
      "credentials": {
        "githubApi": {
          "id": "Qjzxc6aMdLBzUGJB",
          "name": "GitHub account"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "980668bc-d2d2-4452-8f89-b16bec365c91",
      "name": "Obtener fila(s) en hoja",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -512,
        -512
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MU35s5OAZ4rcCXRnvkkcxrgSVAjXISeULPrCdCl0gXo/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1MU35s5OAZ4rcCXRnvkkcxrgSVAjXISeULPrCdCl0gXo",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MU35s5OAZ4rcCXRnvkkcxrgSVAjXISeULPrCdCl0gXo/edit?usp=drivesdk",
          "cachedResultName": "[AstroPosts]"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "sgj6aGeryqEVmS3h",
          "name": "GSheets - Piotr.Sikora.Ck@gmail.com"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "00c43343-2e97-43fb-96d7-a1df7492516e",
      "name": "Solo NombreArchivo / Eliminar duplicados",
      "type": "n8n-nodes-base.code",
      "position": [
        -240,
        -512
      ],
      "parameters": {
        "jsCode": "const filteredList = $input.all().map(item => {\n  return {\n    json: {\n      path: item.json.FileName\n    }\n  };\n});\n\n\nconst seen = new Set();\nconst unique = [];\n\nfor (const item of filteredList) {\n  const name = item.json.path;\n  if (!seen.has(name)) {\n    seen.add(name);\n    unique.push(item);\n  }\n}\n\nreturn unique;"
      },
      "typeVersion": 2
    },
    {
      "id": "2f1096f5-0280-4a3b-9a6f-3247bdd1ea44",
      "name": "Obtener solo rutas de archivos desde repositorio GitHub",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        48,
        512
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "renameField": true,
              "outputFieldName": "githubPaths",
              "fieldToAggregate": "path"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "31799c27-6a3b-4220-bceb-e7dcf6277f5f",
      "name": "Obtener solo rutas de archivos desde GoogleSheets",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        32,
        -512
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "renameField": true,
              "outputFieldName": "googlesheetsPaths",
              "fieldToAggregate": "path"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "3aba4eab-3305-4f86-9976-ef33d5a7c96e",
      "name": "Verificar archivos nuevos en repositorio para procesamiento de IA",
      "type": "n8n-nodes-base.code",
      "position": [
        800,
        -448
      ],
      "parameters": {
        "jsCode": "const allItems = $input.all();\n\n// Extract arrays \nconst googlePaths = allItems.find(i => i.json.googlesheetsPaths)?.json.googlesheetsPaths || [];\nconst githubPaths = allItems.find(i => i.json.githubPaths)?.json.githubPaths || [];\n\n// Compute difference: elements in githubPaths not in googlesheetsPaths\nconst difference = githubPaths.filter(path => !googlePaths.includes(path));\n\n// Return as n8n item array\nreturn difference.map(path => ({ json: { path } }));"
      },
      "typeVersion": 2,
      "alwaysOutputData": true
    },
    {
      "id": "1b542ec1-b963-4064-89fb-40a2a846c5f6",
      "name": "Switch",
      "type": "n8n-nodes-base.switch",
      "position": [
        1008,
        -448
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "Empty JSON",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "7a2c39ae-c079-4e60-ac98-163b1b148244",
                    "operator": {
                      "type": "object",
                      "operation": "empty",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Not empty JSON",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "90067dec-6a4b-4a26-8703-61d4fd44ed7a",
                    "operator": {
                      "type": "object",
                      "operation": "notEmpty",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.3
    },
    {
      "id": "8e129b23-d5a7-4630-ab8a-e780373657db",
      "name": "Al enviar formulario",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -832,
        -512
      ],
      "webhookId": "67880b06-ee61-4732-9324-3440d25c9f95",
      "parameters": {
        "options": {},
        "formTitle": "Start process ",
        "formDescription": "Start process of adding tags and categories"
      },
      "typeVersion": 2.3
    },
    {
      "id": "47908ded-1702-483c-9ab9-f60a1ba3c82f",
      "name": "No hay publicaciones/artículos nuevos en GitHub",
      "type": "n8n-nodes-base.form",
      "position": [
        1488,
        -848
      ],
      "webhookId": "bee21cb0-92f3-45a1-b680-d9fc37b4f9d8",
      "parameters": {
        "options": {},
        "operation": "completion",
        "completionTitle": "List is empty",
        "completionMessage": "List of articles is empty (there is no new articles/pages in repository)"
      },
      "typeVersion": 2.3
    },
    {
      "id": "a1410a1b-0ce6-490e-912b-3c14107b13bb",
      "name": "Proceso finalizado - Categorías y etiquetas añadidas",
      "type": "n8n-nodes-base.form",
      "position": [
        2176,
        -560
      ],
      "webhookId": "bee21cb0-92f3-45a1-b680-d9fc37b4f9d8",
      "parameters": {
        "options": {},
        "operation": "completion",
        "completionTitle": "Proces finished",
        "completionMessage": "Categories and tags added"
      },
      "typeVersion": 2.3
    },
    {
      "id": "ec135e1d-ba4d-4069-8da0-a1d663ad839c",
      "name": "Combinar lectura de Hojas GitHub y Google",
      "type": "n8n-nodes-base.merge",
      "position": [
        560,
        -448
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "ba6b4acc-e548-4df7-9559-bf3ba9b087b6",
      "name": "Analizador de Salida Estructurada",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        2416,
        288
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"old_categories\": [\"category1\"],\n  \"categories\": [\"category1\",\"category2\"],\n  \"old_tags\": [\"tag1\",\"tag2\"],\n  \"tags\": [\"tag1\",\"tag2\",\"tag3\",\"tag4\"]\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "a637ee7d-af38-420d-8717-e82dbafb3edb",
      "name": "Nota Adhesiva3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -592,
        -960
      ],
      "parameters": {
        "color": 4,
        "width": 256,
        "height": 608,
        "content": "## Get list of posts from Google Sheets\n\nThis step prevents repeating usage of AI Agent for previously analysed posts/pages.\n\nPrepare Google Sheet to contain following columns:\n- FileName\n- Categories\n- Proposed Categories\n- Tags\n- Proposed Tags"
      },
      "typeVersion": 1
    },
    {
      "id": "3fa92146-9b0d-45a9-be49-9cf6be9d66ec",
      "name": "Nota Adhesiva4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -320,
        -960
      ],
      "parameters": {
        "color": 7,
        "width": 256,
        "height": 608,
        "content": "## List FileNames only and Remove duplicates\n\nThis function filters out duplicate items from a list of Google Sheet objects based on the value of each item’s `FileName` property"
      },
      "typeVersion": 1
    },
    {
      "id": "1653cada-fdf6-418e-aab6-bb715d25ebf1",
      "name": "Nota Adhesiva5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -48,
        -960
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 608,
        "content": "## Conver JSON to Array\n\nConvert from:\n```\n{\n\"path\": \"src1\"\n},\n{\n\"path\": \"src2\"\n},\n```\nTo\n```\n{\n\"googlesheetsPaths\": \n[\n\"src1\", \n\"src2\"\n]\n}\n```"
      },
      "typeVersion": 1
    },
    {
      "id": "45a2544a-424d-466c-9fa4-afa25ea1f08c",
      "name": "Nota Adhesiva6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1424,
        -1008
      ],
      "parameters": {
        "height": 352,
        "content": "## No new files in GitHub repository\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8b7ed568-b0fb-4589-9d5d-cf10699794d1",
      "name": "Nota Adhesiva7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -48,
        208
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 480,
        "content": "## Conver JSON to Array\n\nConvert complex JSON to Array\n```\n{\n\"githubPaths\": \n[\n\"src1\", \n\"src2\"\n]\n}\n```"
      },
      "typeVersion": 1
    },
    {
      "id": "c39a9ece-2d68-47c0-b4e5-82e6acb0eb1e",
      "name": "Nota Adhesiva8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        -608
      ],
      "parameters": {
        "color": 7,
        "width": 256,
        "height": 320,
        "content": "## Compare list from Google Sheets with list from Github\n"
      },
      "typeVersion": 1
    },
    {
      "id": "97c232f0-6358-442d-a8c1-8234e7afff4d",
      "name": "Nota Adhesiva9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2080,
        -288
      ],
      "parameters": {
        "color": 7,
        "width": 480,
        "height": 736,
        "content": "## AI Agent\n\nRole of **AI Agent** is to:\n- Analyse content of the file (post/page)\n- Assign categories and tags per analysed file\n- Return JSON in format by `Structured output` like below:\n\n```\n{\n  \"old_categories\": [\"category1\"],\n  \"categories\": [\"category1\",\"category2\"],\n  \"old_tags\": [\"tag1\",\"tag2\"],\n  \"tags\": [\"tag1\",\"tag2\",\"tag3\",\"tag4\"]\n}\n```"
      },
      "typeVersion": 1
    },
    {
      "id": "935037f1-860d-42a3-b898-fccbd545c145",
      "name": "Bucle sobre Publicaciones/Páginas",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1776,
        -352
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "779d1b8f-1523-4c49-bdcc-6f4ed34ca301",
      "name": "Nota Adhesiva10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2096,
        -736
      ],
      "parameters": {
        "height": 352,
        "content": "## No new files in GitHub repository\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "e501f3f5-a580-4fdb-94cb-62bb5de8d0dc",
  "connections": {
    "1b542ec1-b963-4064-89fb-40a2a846c5f6": {
      "main": [
        [
          {
            "node": "47908ded-1702-483c-9ab9-f60a1ba3c82f",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "b8e31673-da84-4368-9f88-7a9cc2980e43",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "48cac2b7-14b3-4d02-8db7-082c9a8a5cec": {
      "main": [
        [
          {
            "node": "9985d456-e5ec-4546-9020-ce0a0f9eb57c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1844db4c-6da3-47cb-be7a-2aad32126178": {
      "ai_memory": [
        [
          {
            "node": "48cac2b7-14b3-4d02-8db7-082c9a8a5cec",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "5467bd31-25c6-4133-ba33-a6c66c332881": {
      "ai_languageModel": [
        [
          {
            "node": "48cac2b7-14b3-4d02-8db7-082c9a8a5cec",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "8e129b23-d5a7-4630-ab8a-e780373657db": {
      "main": [
        [
          {
            "node": "980668bc-d2d2-4452-8f89-b16bec365c91",
            "type": "main",
            "index": 0
          },
          {
            "node": "d462260a-ba85-4e3b-9ddf-f3e0d37ea249",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "980668bc-d2d2-4452-8f89-b16bec365c91": {
      "main": [
        [
          {
            "node": "00c43343-2e97-43fb-96d7-a1df7492516e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b8e31673-da84-4368-9f88-7a9cc2980e43": {
      "main": [
        [
          {
            "node": "935037f1-860d-42a3-b898-fccbd545c145",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "935037f1-860d-42a3-b898-fccbd545c145": {
      "main": [
        [
          {
            "node": "a1410a1b-0ce6-490e-912b-3c14107b13bb",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "48cac2b7-14b3-4d02-8db7-082c9a8a5cec",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ba6b4acc-e548-4df7-9559-bf3ba9b087b6": {
      "ai_outputParser": [
        [
          {
            "node": "48cac2b7-14b3-4d02-8db7-082c9a8a5cec",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "d462260a-ba85-4e3b-9ddf-f3e0d37ea249": {
      "main": [
        [
          {
            "node": "2f1096f5-0280-4a3b-9a6f-3247bdd1ea44",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ec135e1d-ba4d-4069-8da0-a1d663ad839c": {
      "main": [
        [
          {
            "node": "3aba4eab-3305-4f86-9976-ef33d5a7c96e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3aba4eab-3305-4f86-9976-ef33d5a7c96e": {
      "main": [
        [
          {
            "node": "1b542ec1-b963-4064-89fb-40a2a846c5f6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "31799c27-6a3b-4220-bceb-e7dcf6277f5f": {
      "main": [
        [
          {
            "node": "ec135e1d-ba4d-4069-8da0-a1d663ad839c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "00c43343-2e97-43fb-96d7-a1df7492516e": {
      "main": [
        [
          {
            "node": "31799c27-6a3b-4220-bceb-e7dcf6277f5f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9985d456-e5ec-4546-9020-ce0a0f9eb57c": {
      "main": [
        [
          {
            "node": "935037f1-860d-42a3-b898-fccbd545c145",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2f1096f5-0280-4a3b-9a6f-3247bdd1ea44": {
      "main": [
        [
          {
            "node": "ec135e1d-ba4d-4069-8da0-a1d663ad839c",
            "type": "main",
            "index": 1
          }
        ]
      ]
    }
  }
}
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 - Creación de contenido, 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.

Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos29
Categoría2
Tipos de nodos14
Descripción de la dificultad

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

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34