Optimización de rendimiento de Aave (sin subflujo de configuración)
Este es unContent Creation, Multimodal AIflujo de automatización del dominio deautomatización que contiene 24 nodos.Utiliza principalmente nodos como If, Code, Switch, OneShot, Telegram. Automatizar la gestión del saldo USDC entre billetera y Aave con 1Shot API y Telegram
- •Bot Token de Telegram
Nodos utilizados (24)
Categoría
{
"id": "NxJjrXhk47s8zf7o",
"meta": {
"instanceId": "62f017ec8f130d172e2e5f39bbf09515036bfd403dfa60fe06f5ab14b78705d0"
},
"name": "Aave Yield Optimization (no setup subflow)",
"tags": [],
"nodes": [
{
"id": "068172f3-69be-4925-9f21-eceb223e92ef",
"name": "Aprobar USDC",
"type": "n8n-nodes-1shot.oneShotSynch",
"notes": "Point this node at the 'approve' function on USDC.",
"onError": "continueRegularOutput",
"position": [
784,
496
],
"parameters": {
"params": "={\n \"spender\": \"{{ $('Savings Configs').first().json.pool }}\",\n \"value\": \"{{ $('Calculate Excess Funds').first().json.excessFunds }}\"\n}",
"operation": "executeAsDelegator",
"additionalFields": {
"memo": "=USDC Approve: {{ $('Calculate Excess Funds').first().json.excessFunds }}"
},
"contractMethodId": "96e49453-a8c6-4ac1-b45a-ee2f3f690c44",
"delegatorWalletAddress": "0x9fead8b19c044c2f404dac38b925ea16adaa2954"
},
"credentials": {
"oneShotOAuth2Api": {
"id": "nkfF9AitCKUCrErK",
"name": "1Shot account"
}
},
"typeVersion": 1
},
{
"id": "15483cb4-3746-4d9a-8d02-e10a0411179b",
"name": "Depositar USDC en Aave L2Pool",
"type": "n8n-nodes-1shot.oneShotSynch",
"notes": "Point this node at the 'supply' function on the Aave: Pool (Base) contract.",
"onError": "continueRegularOutput",
"position": [
1008,
416
],
"parameters": {
"params": "={\n \"asset\": \"{{ $('Savings Configs').first().json.token }}\",\n \"amount\": \"{{ $('Calculate Excess Funds').first().json.excessFunds }}\",\n \"onBehalfOf\": \"{{ $('Savings Configs').first().json.delegator }}\",\n \"referralCode\": \"0\"\n}",
"operation": "executeAsDelegator",
"additionalFields": {
"memo": "=Aave deposit: {{ $('Calculate Excess Funds').first().json.excessFunds }}",
"gasLimit": "400000"
},
"contractMethodId": "74f01f06-c0aa-40ac-80fc-6b297ef0f01c",
"delegatorWalletAddress": "0x9fead8b19c044c2f404dac38b925ea16adaa2954"
},
"credentials": {
"oneShotOAuth2Api": {
"id": "nkfF9AitCKUCrErK",
"name": "1Shot account"
}
},
"typeVersion": 1
},
{
"id": "2ee7dbb8-f524-4220-be50-6f62fedf4da2",
"name": "Programar Activador",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-560,
992
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.2
},
{
"id": "36deb2f1-5ba4-42e6-b3bd-68410889a459",
"name": "Calcular Fondos Excedentes",
"type": "n8n-nodes-base.code",
"position": [
560,
480
],
"parameters": {
"jsCode": "const excessFunds = parseInt($('Check User\\'s USDC Balance').first().json.response) - parseInt($('Savings Configs').first().json.moveToSavingsThreshold)\n\n$input.first().json.excessFunds = excessFunds;\n\nreturn $input.all();"
},
"typeVersion": 2
},
{
"id": "906abb69-e734-4fbe-aafd-f478cc0a7553",
"name": "Confirmación de Depósito",
"type": "n8n-nodes-base.telegram",
"position": [
1680,
368
],
"webhookId": "be1b7868-1626-4f44-b8d4-bec519faaace",
"parameters": {
"text": "=Excess funds in your wallet (`{{ $('Savings Configs').item.json.delegator }}`) have been moved to Aave (tx hash: `{{ $('Deposit USDC into Aave L2Pool').item.json.transactionHash }}`). \n\nYour wallet balance is now `${{ parseInt($('Confirm User\\'s USDC Balance After Deposit').item.json.response)/1000000 }}` and you have `${{ parseInt($('Confirm User\\'s Aave Savings After Deposit').item.json.response)/1000000 }}` saved in Aave.",
"chatId": "={{ $('Savings Configs').first().json.telegramChatId }}",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "uN6xtW1sUnA0WiMc",
"name": "@1shotdemobot"
}
},
"typeVersion": 1.2
},
{
"id": "3300fe41-4de4-4f80-a7ae-167ffe5c5f98",
"name": "Calcular Fondos Insuficientes",
"type": "n8n-nodes-base.code",
"position": [
560,
992
],
"parameters": {
"jsCode": "const fundGap = parseInt($('Savings Configs').first().json.topOffBalance) - parseInt($('Check User\\'s USDC Balance').first().json.response)\n\n// withdraw enough saving to put us halfway between the upper and lower balance settings\n// the amount must be an Integer, so floor it to be sure\nlet withdrawAmount = Math.floor((parseInt($('Savings Configs').first().json.moveToSavingsThreshold) - parseInt($('Savings Configs').first().json.topOffBalance))/2) + fundGap\n\n// if there are not enough savings, move as much as you can\nif (withdrawAmount > parseInt($('Check User\\'s Aave Savings').first().json.response)) {\n withdrawAmount = parseInt($('Check User\\'s Aave Savings').first().json.response)\n}\n\n$input.first().json.fundGap = fundGap;\n$input.first().json.withdrawAmount = withdrawAmount;\n\n\nreturn $input.all();"
},
"typeVersion": 2
},
{
"id": "14202261-9afa-4bc3-9f2c-acff09c66ae9",
"name": "Retirar de Aave",
"type": "n8n-nodes-1shot.oneShotSynch",
"notes": "Point this node at the 'withdraw' function on the Aave: Pool (Base) contract.",
"onError": "continueRegularOutput",
"position": [
1008,
896
],
"parameters": {
"params": "={\n \"asset\": \"{{ $('Savings Configs').first().json.token }}\",\n \"amount\": \"{{ $('Calculate Insufficient Funds').first().json.withdrawAmount }}\",\n \"to\": \"{{ $('Savings Configs').first().json.delegator }}\"\n}",
"operation": "executeAsDelegator",
"additionalFields": {
"memo": "=Aave Withdraw: {{ $json.withdrawAmount }}",
"gasLimit": "500000"
},
"contractMethodId": "0f504e54-6909-4ab0-93d6-39073851c8a9",
"delegatorWalletAddress": "0x9fead8b19c044c2f404dac38b925ea16adaa2954"
},
"credentials": {
"oneShotOAuth2Api": {
"id": "nkfF9AitCKUCrErK",
"name": "1Shot account"
}
},
"typeVersion": 1
},
{
"id": "6a2ac4b0-eea0-4163-bf09-abd0703d1177",
"name": "Confirmación de Retiro",
"type": "n8n-nodes-base.telegram",
"position": [
1680,
800
],
"webhookId": "be1b7868-1626-4f44-b8d4-bec519faaace",
"parameters": {
"text": "=You wallet (`{{ $('Savings Configs').item.json.delegator }}`) has been topped off from your Aave savings (tx hash: `{{ $('Withdraw from Aave').item.json.transactionHash }}`).\n\nYour wallet balance is `${{ parseInt($('Confirm User\\'s USDC Balance After Withdraw').item.json.response)/1000000 }}` and you have `${{ parseInt($('Confirm User\\'s Aave Savings After Withdraw').item.json.response)/1000000 }}` in savings in Aave.",
"chatId": "={{ $('Savings Configs').first().json.telegramChatId }}",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "uN6xtW1sUnA0WiMc",
"name": "@1shotdemobot"
}
},
"typeVersion": 1.2
},
{
"id": "2ef97cb6-7479-4291-90d0-16b6294ff473",
"name": "Configuraciones de Ahorro",
"type": "n8n-nodes-base.code",
"position": [
-336,
992
],
"parameters": {
"jsCode": "// Any USDC balance above this gets stored in Aave\nconst moveToSavingsThreshold = 8564321; // set limit in atomic units (decimals)\n\n// If your balance drops below this, move funds from Aave into your account\n// IMPORTANT: this value must be less that moveToSavingsThreshold\nconst topOffBalance = 8123456; // set limit in atomic units (decimals)\n\nconst delegator = \"0x9fead8b19c044c2f404dac38b925ea16adaa2954\"; // your delegated wallet address.\nconst token = \"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913\" // USDC on Base\nconst pool = \"0xA238Dd80C259a72e81d7e4664a9801593F98d1c5\" // L2Pool on Base\nconst telegramChatId = 5034284669; // the chat id between you and your Telegram bot\n\n$input.first().json.moveToSavingsThreshold = moveToSavingsThreshold;\n$input.first().json.topOffBalance = topOffBalance;\n$input.first().json.delegator = delegator;\n$input.first().json.token = token;\n$input.first().json.pool = pool;\n$input.first().json.telegramChatId = telegramChatId;\n\nreturn $input.all();\n"
},
"typeVersion": 2
},
{
"id": "c95d9919-c82e-48b8-b2e5-3918fb11f04a",
"name": "Verificar Ahorros en Aave del Usuario",
"type": "n8n-nodes-1shot.oneShot",
"notes": "Point this node at the 'balanceOf' function on aBasUSDC.",
"position": [
112,
992
],
"parameters": {
"params": "={\n \"user\": \"{{ $('Savings Configs').item.json.delegator }}\"\n} ",
"operation": "read",
"contractMethodId": "6953085e-91a5-46d2-aff8-9267012490a6"
},
"credentials": {
"oneShotOAuth2Api": {
"id": "nkfF9AitCKUCrErK",
"name": "1Shot account"
}
},
"typeVersion": 1
},
{
"id": "ca8c9c20-db85-4d9c-8355-c1656d24ef4c",
"name": "Verificar Balance de USDC del Usuario",
"type": "n8n-nodes-1shot.oneShot",
"notes": "Point this node at the 'balanceOf' funcion on USDC.",
"position": [
-112,
992
],
"parameters": {
"params": "={\n \"account\": \"{{ $('Savings Configs').item.json.delegator }}\"\n} ",
"operation": "read",
"contractMethodId": "cb02f30e-fe92-4445-b145-15e2b0891c28"
},
"credentials": {
"oneShotOAuth2Api": {
"id": "nkfF9AitCKUCrErK",
"name": "1Shot account"
}
},
"typeVersion": 1
},
{
"id": "7016ada5-0923-47bd-a632-17fad5ddc3f0",
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
336,
976
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "deposit",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "b2cc4c9d-6b1a-42bb-8506-cbc085b354e4",
"operator": {
"type": "number",
"operation": "gt"
},
"leftValue": "={{ parseInt($('Check User\\'s USDC Balance').item.json.response) }}",
"rightValue": "={{ $('Savings Configs').item.json.moveToSavingsThreshold }}"
}
]
},
"renameOutput": true
},
{
"outputKey": "withdraw",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "d647444f-1efd-49a8-8319-47c9780e39b1",
"operator": {
"type": "number",
"operation": "lt"
},
"leftValue": "={{ parseInt($('Check User\\'s USDC Balance').item.json.response) }}",
"rightValue": "={{ $('Savings Configs').item.json.topOffBalance }}"
}
]
},
"renameOutput": true
}
]
},
"options": {
"fallbackOutput": "extra"
}
},
"typeVersion": 3.2
},
{
"id": "8f76dfee-aa4b-46a5-87b5-5eca558312b3",
"name": "Sin Cambios, Enviar Estado de Cuenta",
"type": "n8n-nodes-base.telegram",
"position": [
560,
1184
],
"webhookId": "be1b7868-1626-4f44-b8d4-bec519faaace",
"parameters": {
"text": "=Your current account balance is `${{ parseInt($('Check User\\'s USDC Balance').item.json.response)/1000000 }}` and you have `${{ parseInt($('Check User\\'s Aave Savings').item.json.response)/1000000 }}` saved in Aave.",
"chatId": "={{ $('Savings Configs').first().json.telegramChatId }}",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "uN6xtW1sUnA0WiMc",
"name": "@1shotdemobot"
}
},
"typeVersion": 1.2
},
{
"id": "5e02f8f3-5b63-43c2-a769-1c89adecc5fd",
"name": "Advertencia de Ahorros Insuficientes",
"type": "n8n-nodes-base.telegram",
"position": [
1008,
1088
],
"webhookId": "be1b7868-1626-4f44-b8d4-bec519faaace",
"parameters": {
"text": "=Your current account balance is `${{ parseInt($('Check User\\'s USDC Balance').item.json.response)/1000000 }}` and you have `${{ parseInt($('Check User\\'s Aave Savings').item.json.response)/100000 }}` saved in Aave.",
"chatId": "={{ $('Savings Configs').first().json.telegramChatId }}",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "uN6xtW1sUnA0WiMc",
"name": "@1shotdemobot"
}
},
"typeVersion": 1.2
},
{
"id": "6c0a3011-fe89-4dbb-954a-bbce96f7615b",
"name": "Notificación de Fallo en Depósito",
"type": "n8n-nodes-base.telegram",
"position": [
1232,
576
],
"webhookId": "be1b7868-1626-4f44-b8d4-bec519faaace",
"parameters": {
"text": "Aave Deposit failed",
"chatId": "={{ $('Savings Configs').first().json.telegramChatId }}",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "uN6xtW1sUnA0WiMc",
"name": "@1shotdemobot"
}
},
"typeVersion": 1.2
},
{
"id": "a35baa3e-5c75-493a-947f-53b3bfb3cf98",
"name": "Notificación de Fallo en Retiro",
"type": "n8n-nodes-base.telegram",
"position": [
1232,
992
],
"webhookId": "be1b7868-1626-4f44-b8d4-bec519faaace",
"parameters": {
"text": "=❌ Aave withdraw failed. \n\nYour wallet balance is `${{ parseInt($('Check User\\'s USDC Balance').item.json.response)/1000000 }}` and you have `${{ parseInt($('Check User\\'s Aave Savings').item.json.response)/1000000 }}`",
"chatId": "={{ $('Savings Configs').first().json.telegramChatId }}",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "uN6xtW1sUnA0WiMc",
"name": "@1shotdemobot"
}
},
"typeVersion": 1.2
},
{
"id": "0008742f-a49d-4cc3-9b80-a51a26f91289",
"name": "Confirmar Balance de USDC del Usuario tras Retiro",
"type": "n8n-nodes-1shot.oneShot",
"notes": "Point this node at the 'balanceOf' function on USDC.",
"position": [
1232,
800
],
"parameters": {
"params": "={\n \"account\": \"{{ $('Savings Configs').item.json.delegator }}\"\n} ",
"operation": "read",
"contractMethodId": "cb02f30e-fe92-4445-b145-15e2b0891c28"
},
"credentials": {
"oneShotOAuth2Api": {
"id": "nkfF9AitCKUCrErK",
"name": "1Shot account"
}
},
"typeVersion": 1
},
{
"id": "1a2f958f-d6fe-4295-bf3f-db2639d2f6eb",
"name": "Confirmar Ahorros en Aave del Usuario tras Retiro",
"type": "n8n-nodes-1shot.oneShot",
"notes": "Point this node at the 'balanceOf' function on aBasUSDC.",
"position": [
1456,
800
],
"parameters": {
"params": "={\n \"user\": \"{{ $('Savings Configs').item.json.delegator }}\"\n} ",
"operation": "read",
"contractMethodId": "6953085e-91a5-46d2-aff8-9267012490a6"
},
"credentials": {
"oneShotOAuth2Api": {
"id": "nkfF9AitCKUCrErK",
"name": "1Shot account"
}
},
"typeVersion": 1
},
{
"id": "12fd82b4-f8db-4446-87f1-bcc6f1f8df16",
"name": "Confirmar Balance de USDC del Usuario tras Depósito",
"type": "n8n-nodes-1shot.oneShot",
"notes": "Point this node at the 'balanceOf' function on USDC.",
"position": [
1232,
368
],
"parameters": {
"params": "={\n \"account\": \"{{ $('Savings Configs').item.json.delegator }}\"\n} ",
"operation": "read",
"contractMethodId": "cb02f30e-fe92-4445-b145-15e2b0891c28"
},
"credentials": {
"oneShotOAuth2Api": {
"id": "nkfF9AitCKUCrErK",
"name": "1Shot account"
}
},
"typeVersion": 1
},
{
"id": "8691c25d-09e6-4f8d-984a-8e792ed25fb4",
"name": "Confirmar Ahorros en Aave del Usuario tras Depósito",
"type": "n8n-nodes-1shot.oneShot",
"notes": "Point this node at the 'balanceOf' function on aBasUSDC.",
"position": [
1456,
368
],
"parameters": {
"params": "={\n \"user\": \"{{ $('Savings Configs').item.json.delegator }}\"\n} ",
"operation": "read",
"contractMethodId": "6953085e-91a5-46d2-aff8-9267012490a6"
},
"credentials": {
"oneShotOAuth2Api": {
"id": "nkfF9AitCKUCrErK",
"name": "1Shot account"
}
},
"typeVersion": 1
},
{
"id": "1dc64dab-0278-46cd-b7d3-17bd8dcb168b",
"name": "Nota Adhesiva",
"type": "n8n-nodes-base.stickyNote",
"position": [
-528,
672
],
"parameters": {
"width": 544,
"height": 256,
"content": "## Set Your Savings Thresholds\n\nClick on the `Savings Configs` node and set:\n\n1. The threshold where excess funds in your wallet are stored in Aave.\n2. The threshold below where funds are removed from Aave and put back into your wallet.\n3. Your wallet address that you have delegated to 1Shot API.\n4. The Telegram chat ID of you bot to receive notifications."
},
"typeVersion": 1
},
{
"id": "00fcdb46-2934-40c0-867c-fbd04a029e05",
"name": "Nota Adhesiva1",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
0
],
"parameters": {
"width": 768,
"height": 416,
"content": "## Setup Instructions\n\nThis workflow will automatically balance your USDC funds on Base network so that you keep funds you aren't using in [Aave](https://aave.com/) to earn interest and automatically move funds out of savings back into your wallet when funds get low. \n\n1. Create a free [1Shot API](https://1shotapi.com) account.\n2. Generate an API key & secret and use these to create a credential for the 1Shot API nodes.\n3. Click the trigger on the subworkflow to automatically import the required smart contract functions and provision a 1Shot API server wallet on Base that will relay your transactions when you are not online. \n4. Point the 1Shot API nodes at the functions denoted in each nodes \"Settings\" notes box.\n5. Set your saving thresholds in the \"Savings Config\" node.\n6. Create a Telegram bot and use the bot's API key to generate a credential for the Telegram nodes. Get your chat id with the bot and input it into the \"Savings Config\" node. \n7. Configure your desired schedule in the \"Schedule\" trigger node (like every 24 hours)\n8. Activate the workflow."
},
"typeVersion": 1
},
{
"id": "be37d49b-5bf1-4423-bbb5-4e8745b3bc49",
"name": "Nota Adhesiva5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-944,
80
],
"parameters": {
"width": 768,
"height": 560,
"content": "## YouTube Tutorial\n\n@[youtube](Hppd04sM4xE)\n"
},
"typeVersion": 1
},
{
"id": "85c55364-3b0b-46fc-b1ab-0785a427bf52",
"name": "Verificar si el Usuario Tiene Ahorros Suficientes",
"type": "n8n-nodes-base.if",
"position": [
784,
992
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "f9c2403a-4163-4c26-8452-6d12af40115b",
"operator": {
"type": "number",
"operation": "gt"
},
"leftValue": "={{ parseInt($json.withdrawAmount) }}",
"rightValue": 0
}
]
}
},
"typeVersion": 2.2
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "daccf8c8-f7c3-4e7a-99f9-c2ac8761e2e9",
"connections": {
"7016ada5-0923-47bd-a632-17fad5ddc3f0": {
"main": [
[
{
"node": "36deb2f1-5ba4-42e6-b3bd-68410889a459",
"type": "main",
"index": 0
}
],
[
{
"node": "3300fe41-4de4-4f80-a7ae-167ffe5c5f98",
"type": "main",
"index": 0
}
],
[
{
"node": "8f76dfee-aa4b-46a5-87b5-5eca558312b3",
"type": "main",
"index": 0
}
]
]
},
"068172f3-69be-4925-9f21-eceb223e92ef": {
"main": [
[
{
"node": "15483cb4-3746-4d9a-8d02-e10a0411179b",
"type": "main",
"index": 0
}
],
[
{
"node": "6c0a3011-fe89-4dbb-954a-bbce96f7615b",
"type": "main",
"index": 0
}
]
]
},
"2ef97cb6-7479-4291-90d0-16b6294ff473": {
"main": [
[
{
"node": "ca8c9c20-db85-4d9c-8355-c1656d24ef4c",
"type": "main",
"index": 0
}
]
]
},
"2ee7dbb8-f524-4220-be50-6f62fedf4da2": {
"main": [
[
{
"node": "2ef97cb6-7479-4291-90d0-16b6294ff473",
"type": "main",
"index": 0
}
]
]
},
"14202261-9afa-4bc3-9f2c-acff09c66ae9": {
"main": [
[
{
"node": "0008742f-a49d-4cc3-9b80-a51a26f91289",
"type": "main",
"index": 0
}
],
[
{
"node": "a35baa3e-5c75-493a-947f-53b3bfb3cf98",
"type": "main",
"index": 0
}
]
]
},
"36deb2f1-5ba4-42e6-b3bd-68410889a459": {
"main": [
[
{
"node": "068172f3-69be-4925-9f21-eceb223e92ef",
"type": "main",
"index": 0
}
]
]
},
"c95d9919-c82e-48b8-b2e5-3918fb11f04a": {
"main": [
[
{
"node": "7016ada5-0923-47bd-a632-17fad5ddc3f0",
"type": "main",
"index": 0
}
]
]
},
"ca8c9c20-db85-4d9c-8355-c1656d24ef4c": {
"main": [
[
{
"node": "c95d9919-c82e-48b8-b2e5-3918fb11f04a",
"type": "main",
"index": 0
}
]
]
},
"3300fe41-4de4-4f80-a7ae-167ffe5c5f98": {
"main": [
[
{
"node": "85c55364-3b0b-46fc-b1ab-0785a427bf52",
"type": "main",
"index": 0
}
]
]
},
"15483cb4-3746-4d9a-8d02-e10a0411179b": {
"main": [
[
{
"node": "12fd82b4-f8db-4446-87f1-bcc6f1f8df16",
"type": "main",
"index": 0
}
],
[
{
"node": "6c0a3011-fe89-4dbb-954a-bbce96f7615b",
"type": "main",
"index": 0
}
]
]
},
"85c55364-3b0b-46fc-b1ab-0785a427bf52": {
"main": [
[
{
"node": "14202261-9afa-4bc3-9f2c-acff09c66ae9",
"type": "main",
"index": 0
}
],
[
{
"node": "5e02f8f3-5b63-43c2-a769-1c89adecc5fd",
"type": "main",
"index": 0
}
]
]
},
"8691c25d-09e6-4f8d-984a-8e792ed25fb4": {
"main": [
[
{
"node": "906abb69-e734-4fbe-aafd-f478cc0a7553",
"type": "main",
"index": 0
}
]
]
},
"12fd82b4-f8db-4446-87f1-bcc6f1f8df16": {
"main": [
[
{
"node": "8691c25d-09e6-4f8d-984a-8e792ed25fb4",
"type": "main",
"index": 0
}
]
]
},
"1a2f958f-d6fe-4295-bf3f-db2639d2f6eb": {
"main": [
[
{
"node": "6a2ac4b0-eea0-4163-bf09-abd0703d1177",
"type": "main",
"index": 0
}
]
]
},
"0008742f-a49d-4cc3-9b80-a51a26f91289": {
"main": [
[
{
"node": "1a2f958f-d6fe-4295-bf3f-db2639d2f6eb",
"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 - Creación de contenido, IA Multimodal
¿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
Compartir este flujo de trabajo