Agente IA - Generador de enlaces cortos
Este es unMiscellaneous, AI Chatbotflujo de automatización del dominio deautomatización que contiene 18 nodos.Utiliza principalmente nodos como Set, Code, Html, Webhook, DataTable. Usar GPT-4.1 y un almacenamiento de datos para generar y gestionar enlaces acortados
- •Punto final de HTTP Webhook (n8n generará automáticamente)
- •Clave de API de OpenAI
Nodos utilizados (18)
Categoría
{
"id": "WmHtnpnkARE1wVqs",
"meta": {
"instanceId": "a0e41110bf9f611e96e18e0663d80d746aeedc58368940bfe471a8d577a5069b",
"templateCredsSetupCompleted": true
},
"name": "AI Agent - Short Link Generator",
"tags": [],
"nodes": [
{
"id": "6c7043d8-e091-4e50-a661-f1047576c565",
"name": "Insertar fila",
"type": "n8n-nodes-base.dataTable",
"position": [
-16,
-144
],
"parameters": {
"columns": {
"value": {
"orginalLink": "={{ $('GenerateShortLink').item.json.originalLink }}",
"shortlinkId": "={{ $json.shortLinkId }}"
},
"schema": [
{
"id": "orginalLink",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "orginalLink",
"defaultMatch": false
},
{
"id": "shortlinkId",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "shortlinkId",
"defaultMatch": false
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"dataTableId": {
"__rl": true,
"mode": "list",
"value": "MzE4aKh7Wsv4N0Cv",
"cachedResultUrl": "/projects/pjq2PmuJxpMOPZST/datatables/MzE4aKh7Wsv4N0Cv",
"cachedResultName": "ShortLink"
}
},
"typeVersion": 1
},
{
"id": "310ecc62-f469-42d8-bb15-8795e0aef955",
"name": "Generar shorlinkId",
"type": "n8n-nodes-base.code",
"position": [
-240,
-144
],
"parameters": {
"jsCode": "\nvar length = 4;\n const chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\n let result = '';\n for (let i = 0; i < length; i++) {\n const randomIndex = Math.floor(Math.random() * chars.length);\n result += chars[randomIndex];\n }\n\n return [{ shortLinkId: result }];\n"
},
"typeVersion": 2
},
{
"id": "1a615458-ea3c-4336-b9fd-602844b36f5d",
"name": "Obtener fila(s)",
"type": "n8n-nodes-base.dataTable",
"position": [
-464,
80
],
"parameters": {
"filters": {
"conditions": [
{
"keyName": "shortlinkId",
"keyValue": "={{ $json.query.a }}"
}
]
},
"operation": "get",
"dataTableId": {
"__rl": true,
"mode": "list",
"value": "MzE4aKh7Wsv4N0Cv",
"cachedResultUrl": "/projects/pjq2PmuJxpMOPZST/datatables/MzE4aKh7Wsv4N0Cv",
"cachedResultName": "ShortLink"
}
},
"typeVersion": 1
},
{
"id": "2c2ace57-bb37-43b5-a606-122e38928bb2",
"name": "Cuando se recibe mensaje de chat",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
-688,
-576
],
"webhookId": "a282c57a-a0b2-43d9-9fe5-fdd3b61ad585",
"parameters": {
"public": true,
"options": {}
},
"typeVersion": 1.3
},
{
"id": "af6bae57-7f02-4b14-b5a0-f4d852321a62",
"name": "Agente de IA",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-352,
-576
],
"parameters": {
"options": {
"systemMessage": "You are a helpful assistant.\n"
}
},
"typeVersion": 2.2
},
{
"id": "c10cdd53-ddaa-4701-922c-5788c3f41759",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-480,
-368
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "2TBvwobWbbHlIjKT",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "8d9e3709-0fb7-4fbc-9c1d-f3f74878e6bc",
"name": "Memoria Simple",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
-256,
-368
],
"parameters": {},
"typeVersion": 1.3
},
{
"id": "1e495a59-c48b-4887-a9c1-19c53072a591",
"name": "GenerateShortLink",
"type": "n8n-nodes-base.executeWorkflowTrigger",
"position": [
-688,
-144
],
"parameters": {
"inputSource": "jsonExample",
"jsonExample": "\n{\n\"originalLink\": \n\"https://www.nghiaai.dev/\"\n}"
},
"typeVersion": 1.1
},
{
"id": "4e019563-fc6f-4ec7-b79e-1817cd35e411",
"name": "Config",
"type": "n8n-nodes-base.set",
"position": [
-464,
-144
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "5c7030c4-c308-4e95-a78d-c32d8a252df4",
"name": "your_webhook_url",
"type": "string",
"value": "http://localhost:5678"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "290c7c96-1cc9-432a-806e-6f2b04fe92a5",
"name": "Generar Enlace Corto",
"type": "n8n-nodes-base.code",
"position": [
208,
-144
],
"parameters": {
"jsCode": "var your_webhook_url = $('Config').first().json.your_webhook_url;\nvar shortLinkId = $('Generate shorlinkId').first().json.shortLinkId\nvar shortLink = your_webhook_url + \"/webhook/shortLink?a=\" + shortLinkId;\nreturn [{ shortLink: shortLink }];"
},
"typeVersion": 2
},
{
"id": "1a2213c2-c423-49a0-a2b1-939109d30391",
"name": "Llamar a 'Crear Enlace Corto'",
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
"position": [
-48,
-368
],
"parameters": {
"workflowId": {
"__rl": true,
"mode": "list",
"value": "WmHtnpnkARE1wVqs",
"cachedResultUrl": "/workflow/WmHtnpnkARE1wVqs",
"cachedResultName": "Create Short Link"
},
"description": "Call this tool to get short link",
"workflowInputs": {
"value": {
"originalLink": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('originalLink', ``, 'string') }}"
},
"schema": [
{
"id": "originalLink",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "originalLink",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "host",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "host",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
}
},
"typeVersion": 2.2
},
{
"id": "49807a5c-8c1a-4a6d-9e1b-b6d0ea72ff92",
"name": "Redirección de Página",
"type": "n8n-nodes-base.html",
"position": [
-240,
80
],
"parameters": {
"html": "<!doctype html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\" />\n <title>Redirecting…</title>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <!-- Optional: meta refresh as a no-JS fallback -->\n <meta http-equiv=\"refresh\" content=\"0; url={{ $json.orginalLink }}\" />\n <script>\n // Use replace() so it doesn't create an extra history entry\n location.replace({{ $json.orginalLink }});\n </script>\n <style>\n body {font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif; display:grid; place-content:center; min-height:100vh;}\n a {text-decoration: none;}\n </style>\n</head>\n<body>\n <p>Redirecting… If nothing happens, <a href=\"{{ $json.orginalLink }}\">click here</a>.</p>\n</body>\n</html>\n"
},
"typeVersion": 1.2
},
{
"id": "d6732527-8565-4d7d-8bf5-77f02eba0462",
"name": "Respuesta",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
-16,
80
],
"parameters": {
"options": {},
"respondWith": "text",
"responseBody": "={{ $json.html }}"
},
"typeVersion": 1.4
},
{
"id": "866a4e41-ff4f-4eda-8be8-0e584285318b",
"name": "ShortLink API",
"type": "n8n-nodes-base.webhook",
"position": [
-688,
80
],
"webhookId": "b280e565-5037-4752-ba2c-547e4b52531c",
"parameters": {
"path": "shortLink",
"options": {},
"responseMode": "responseNode"
},
"typeVersion": 2.1
},
{
"id": "ad474ea3-02bb-4770-88b0-8bba2c5ad859",
"name": "Nota Adhesiva",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1120,
-656
],
"parameters": {
"width": 336,
"height": 896,
"content": "## Setup Guide\n1. Add your_webhook_url to the 'Config' Node.\n2. Set up OpenAI account\n3. Create a database table named ShortLink with the following columns:\n- originalLink\n- shortLinkId\n"
},
"typeVersion": 1
},
{
"id": "4903952a-5da7-4bee-b945-550c0a636b7e",
"name": "Nota Adhesiva1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-784,
-656
],
"parameters": {
"color": 4,
"width": 1168,
"height": 448,
"content": "## Agent "
},
"typeVersion": 1
},
{
"id": "05b8c558-4503-45a9-8c5d-52809d60f0d6",
"name": "Nota Adhesiva2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-784,
-208
],
"parameters": {
"color": 5,
"width": 1168,
"height": 224,
"content": "## Create Short Link"
},
"typeVersion": 1
},
{
"id": "5ba8e271-d542-42e9-8cab-fac08171c120",
"name": "Nota Adhesiva3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-784,
16
],
"parameters": {
"color": 3,
"width": 1168,
"height": 224,
"content": "## Process Short Link Requests\n"
},
"typeVersion": 1
}
],
"active": true,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "be460863-5692-4397-a9d3-c94e69d2c6b3",
"connections": {
"4e019563-fc6f-4ec7-b79e-1817cd35e411": {
"main": [
[
{
"node": "310ecc62-f469-42d8-bb15-8795e0aef955",
"type": "main",
"index": 0
}
]
]
},
"1a615458-ea3c-4336-b9fd-602844b36f5d": {
"main": [
[
{
"node": "49807a5c-8c1a-4a6d-9e1b-b6d0ea72ff92",
"type": "main",
"index": 0
}
]
]
},
"6c7043d8-e091-4e50-a661-f1047576c565": {
"main": [
[
{
"node": "290c7c96-1cc9-432a-806e-6f2b04fe92a5",
"type": "main",
"index": 0
}
]
]
},
"49807a5c-8c1a-4a6d-9e1b-b6d0ea72ff92": {
"main": [
[
{
"node": "d6732527-8565-4d7d-8bf5-77f02eba0462",
"type": "main",
"index": 0
}
]
]
},
"866a4e41-ff4f-4eda-8be8-0e584285318b": {
"main": [
[
{
"node": "1a615458-ea3c-4336-b9fd-602844b36f5d",
"type": "main",
"index": 0
}
]
]
},
"8d9e3709-0fb7-4fbc-9c1d-f3f74878e6bc": {
"ai_memory": [
[
{
"node": "af6bae57-7f02-4b14-b5a0-f4d852321a62",
"type": "ai_memory",
"index": 0
}
]
]
},
"1e495a59-c48b-4887-a9c1-19c53072a591": {
"main": [
[
{
"node": "4e019563-fc6f-4ec7-b79e-1817cd35e411",
"type": "main",
"index": 0
}
]
]
},
"c10cdd53-ddaa-4701-922c-5788c3f41759": {
"ai_languageModel": [
[
{
"node": "af6bae57-7f02-4b14-b5a0-f4d852321a62",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"310ecc62-f469-42d8-bb15-8795e0aef955": {
"main": [
[
{
"node": "6c7043d8-e091-4e50-a661-f1047576c565",
"type": "main",
"index": 0
}
]
]
},
"1a2213c2-c423-49a0-a2b1-939109d30391": {
"ai_tool": [
[
{
"node": "af6bae57-7f02-4b14-b5a0-f4d852321a62",
"type": "ai_tool",
"index": 0
}
]
]
},
"2c2ace57-bb37-43b5-a606-122e38928bb2": {
"main": [
[
{
"node": "af6bae57-7f02-4b14-b5a0-f4d852321a62",
"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 - Varios, Chatbot 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
Nghia Nguyen
@nghiaaidevI am Nguyen Trung Nghia, a Software Engineer passionate about AI Automation. I build intelligent automation systems that help businesses reduce costs, increase productivity, and scale faster with the power of AI technology.
Compartir este flujo de trabajo