Aave収益最適化(設定サブフローなし)

上級

これはContent Creation, Multimodal AI分野の自動化ワークフローで、24個のノードを含みます。主にIf, Code, Switch, OneShot, Telegramなどのノードを使用。 1Shot APIとTelegramを使用した財布とAave間のUSDC残高管理の自動化

前提条件
  • Telegram Bot Token
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "NxJjrXhk47s8zf7o",
  "meta": {
    "instanceId": "62f017ec8f130d172e2e5f39bbf09515036bfd403dfa60fe06f5ab14b78705d0"
  },
  "name": "Aave Yield Optimization (no setup subflow)",
  "tags": [],
  "nodes": [
    {
      "id": "068172f3-69be-4925-9f21-eceb223e92ef",
      "name": "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": "Aave L2PoolへのUSDC預け入れ",
      "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": "トリガーのスケジュール設定",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -560,
        992
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "36deb2f1-5ba4-42e6-b3bd-68410889a459",
      "name": "余剰資金の計算",
      "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": "預け入れ確認",
      "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": "不足資金の計算",
      "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": "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": "引き出し確認",
      "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": "貯蓄設定",
      "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": "ユーザーのAave貯蓄残高を確認",
      "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": "ユーザーのUSDC残高を確認",
      "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": "スイッチ",
      "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": "変更なし、アカウントステータスを送信",
      "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": "貯蓄不足警告",
      "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": "預け入れ失敗通知",
      "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": "引き出し失敗通知",
      "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": "引き出し後のユーザーUSDC残高を確認",
      "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": "引き出し後のユーザーAave貯蓄残高を確認",
      "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": "預け入れ後のユーザーUSDC残高を確認",
      "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": "預け入れ後のユーザーAave貯蓄残高を確認",
      "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": "付箋",
      "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": "付箋1",
      "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": "付箋5",
      "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": "ユーザーが十分な貯蓄を持っているか確認",
      "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
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

上級 - コンテンツ作成, マルチモーダルAI

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

ワークフロー情報
難易度
上級
ノード数24
カテゴリー2
ノードタイプ8
難易度説明

上級者向け、16ノード以上の複雑なワークフロー

作成者
1Shot API

1Shot API

@oneshotapi

1Shot API lets you bring onchain actions into your n8n workflows.

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34