[astro/nextjs] Asignar categorías/etiquetas a artículos/publicaciones
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
- •Personal Access Token de GitHub
- •Credenciales de API de Google Sheets
- •Clave de API de OpenAI
Nodos utilizados (29)
Categoría
{
"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
}
]
]
}
}
}¿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.
Flujos de trabajo relacionados recomendados
Piotr Sikora
@argoneCompartir este flujo de trabajo