Telegram を使った Pollinations による画像生成、そして Gemini 2.5 でブログ記事生成

上級

これはContent Creation, Multimodal AI分野の自動化ワークフローで、34個のノードを含みます。主にIf, Set, Code, Switch, Telegramなどのノードを使用。 Telegram を使って Pollinations で画像を生成し、Gemini 2.5 でブログ記事を生成

前提条件
  • Telegram Bot Token
  • Google Drive API認証情報
  • ターゲットAPIの認証情報が必要な場合あり
  • Google Sheets API認証情報
  • Google Gemini API Key
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "meta": {
    "instanceId": "ba73835d772fb31a8c93dbcda773c1ef34e21227b9c152c1ee6fdf0eab995f28",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "ad8656b2-a542-4942-a978-23bfe85721db",
      "name": "Gemini チャットモデル",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        560,
        260
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.5-flash-lite-preview-06-17"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "0F73fCXNqVx03YLr",
          "name": "Google Gemini(PaLM) Api account 2"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "ae3d4575-e1c9-4fc8-b4ef-d2394e24acb1",
      "name": "Telegram メッセージトリガー",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        -1280,
        -220
      ],
      "webhookId": "7b019646-348f-4f01-b9ad-c25fb8cdaedc",
      "parameters": {
        "updates": [
          "callback_query",
          "message"
        ],
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "CU5S8GReZfzUW955",
          "name": "Tele Image Generator"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "116ee884-b2ea-42af-addd-5e335197c990",
      "name": "Telegram 入力分類",
      "type": "n8n-nodes-base.code",
      "position": [
        -1060,
        -220
      ],
      "parameters": {
        "jsCode": "let inputType = '';\n\nif ($json.hasOwnProperty(\"callback_query\")) {\n  const cbData = $json.callback_query.data || \"\";\n  \n  if (cbData.startsWith(\"style_\")) {\n    inputType = 'style';\n  } else {\n    inputType = 'callback_query';\n  }\n\n} else if (\n  $json.hasOwnProperty(\"message\") &&\n  $json.message.text === \"/start\"\n) {\n  inputType = 'message';\n\n} else if (\n  $json.hasOwnProperty(\"message\") &&\n  $json.message.text &&\n  $json.message.text.toLowerCase().startsWith(\"/help\")\n) {\n  inputType = \"help\";\n\n} else if (\n  $json.hasOwnProperty(\"message\") &&\n  $json.message.text\n) {\n  inputType = 'text';\n}\n\nreturn [\n  {\n    json: {\n      ...$json,\n      inputType\n    }\n  }\n];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "7087e9ef-b1e6-486d-88f1-1a49397579c4",
      "name": "入力タイプ切替",
      "type": "n8n-nodes-base.switch",
      "position": [
        -840,
        -240
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "loose"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "58bd7d4b-4553-4e9c-85ee-a92b50e1e93b",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.inputType }}",
                    "rightValue": "message"
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "loose"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "e5b29bef-e663-45e1-9e6e-21dde7e2627e",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.inputType }}",
                    "rightValue": "=callback_query"
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "loose"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "75121808-30dd-4205-adef-e4c4d062ad37",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.inputType }}",
                    "rightValue": "text"
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "loose"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "6dd8132d-6c99-4b01-b55a-be53cab37bb2",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.inputType }}",
                    "rightValue": "style"
                  }
                ]
              }
            }
          ]
        },
        "options": {},
        "looseTypeValidation": true
      },
      "typeVersion": 3.2
    },
    {
      "id": "d5976879-6a5b-492c-82bd-e4189b4da648",
      "name": "ユーザーにメインメニューを送信",
      "type": "n8n-nodes-base.telegram",
      "position": [
        -620,
        -580
      ],
      "webhookId": "effd353c-0bfe-44d9-889e-8314d3034888",
      "parameters": {
        "text": "Please choose a menu:",
        "chatId": "={{$json[\"message\"][\"chat\"][\"id\"]}}",
        "replyMarkup": "inlineKeyboard",
        "inlineKeyboard": {
          "rows": [
            {
              "row": {
                "buttons": [
                  {
                    "text": "Generate Image",
                    "additionalFields": {
                      "callback_data": "image"
                    }
                  },
                  {
                    "text": "Blog Article",
                    "additionalFields": {
                      "callback_data": "blog"
                    }
                  },
                  {
                    "text": "❓ Help",
                    "additionalFields": {
                      "callback_data": "help"
                    }
                  }
                ]
              }
            }
          ]
        },
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "CU5S8GReZfzUW955",
          "name": "Tele Image Generator"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "01112b5e-05f5-4877-bf2d-16ed895b0801",
      "name": "コールバック選択切替",
      "type": "n8n-nodes-base.switch",
      "position": [
        -640,
        -400
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "56c41166-8753-4a92-ae59-68949a001b74",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.callback_query.data }}",
                    "rightValue": "image"
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "bd80f13b-f7c6-4578-b23a-5490a04b41b5",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.callback_query.data }}",
                    "rightValue": "blog"
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "0274338b-4f92-4405-ba57-a80049db0b53",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.callback_query.data }}",
                    "rightValue": "help"
                  }
                ]
              }
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "672826f4-1a49-41fe-ae3e-36365b5611c6",
      "name": "ユーザーに画像説明を入力依頼",
      "type": "n8n-nodes-base.telegram",
      "position": [
        -360,
        -760
      ],
      "webhookId": "7f16cbe4-eab9-4690-b07e-4cc207cbc019",
      "parameters": {
        "text": "Please send an image prompt, start with image",
        "chatId": "={{ $json.callback_query.message.chat.id }}",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "CU5S8GReZfzUW955",
          "name": "Tele Image Generator"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "09bc2384-c4c3-4a29-9910-e68622a0621d",
      "name": "ユーザーにブログタイトルを入力依頼",
      "type": "n8n-nodes-base.telegram",
      "position": [
        -360,
        -580
      ],
      "webhookId": "99329519-a287-425d-84ad-5db503f88bd9",
      "parameters": {
        "text": "Please submit article title, start with blog",
        "chatId": "={{ $json.callback_query.message.chat.id }}",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "CU5S8GReZfzUW955",
          "name": "Tele Image Generator"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "9e8d3f41-0d4e-4a06-aab9-289fa374a3a7",
      "name": "コマンド形式の検証",
      "type": "n8n-nodes-base.if",
      "position": [
        -640,
        -220
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "f8a7aca4-5637-44aa-b3ce-dab8fcb25aec",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $json.message.text.startsWith('image') || $json.message.text.startsWith('blog') }}",
              "rightValue": ""
            }
          ]
        },
        "looseTypeValidation": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "892747b0-9fcf-4cca-b781-29d22f782a81",
      "name": "テキストベース入力タイプの検出",
      "type": "n8n-nodes-base.set",
      "position": [
        -360,
        -240
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "a82b158b-21dc-4018-8887-1a936e50d525",
              "name": "=typeText",
              "type": "string",
              "value": "={{ $json.inputType === 'text' && $json.message.text && $json.message.text.toLowerCase().startsWith('blog') ? 'blog' : 'image' }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "0bf22449-827c-4b9a-991f-cf4d7b18b2c0",
      "name": "テキストコマンドタイプ切替",
      "type": "n8n-nodes-base.switch",
      "position": [
        -120,
        -240
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "8375ffa7-4f87-4dd6-ae62-6a908eb61b4f",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.typeText }}",
                    "rightValue": "image"
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "bd572c93-d722-4953-a6d3-a3eb1c5f4e5f",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.typeText }}",
                    "rightValue": "=blog"
                  }
                ]
              }
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "7f184919-2d9e-4ec7-aa3b-f20720c42779",
      "name": "画像生成URLの構築",
      "type": "n8n-nodes-base.code",
      "position": [
        340,
        -340
      ],
      "parameters": {
        "jsCode": "const width = 1024;\nconst height = 1024;\nconst randomSeed = Math.floor(Math.random() * 100000);\n\nconst finalPrompt = $('Switch Input Type').first().json.message.text;\nconst imageUrl = `https://image.pollinations.ai/prompt/${encodeURIComponent(finalPrompt)}.jpg?width=${width}&height=${height}&seed=${randomSeed}&model=flux&nologo=true`;\n\nreturn [\n  {\n    json: {\n      text: finalPrompt,\n      imageUrl\n    }\n  }\n];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "0699c5a1-a030-4a4f-be9e-8ff615dc4037",
      "name": "AI画像のダウンロード",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        560,
        -340
      ],
      "parameters": {
        "url": "={{ $json.imageUrl }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "58b67910-d5ed-4993-b71d-a5ca4c31a1f9",
      "name": "画像結果を Telegram に送信",
      "type": "n8n-nodes-base.telegram",
      "position": [
        780,
        -340
      ],
      "webhookId": "603fa444-2d96-40d2-8e88-37ef980e381c",
      "parameters": {
        "chatId": "={{ $('Trigger Telegram Message').item.json.message.chat.id }}",
        "operation": "sendPhoto",
        "binaryData": true,
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "CU5S8GReZfzUW955",
          "name": "Tele Image Generator"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "5ad1b4cd-102d-4786-a11e-329cf9150a81",
      "name": "画像プロンプトを Google シートに記録",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        960,
        -340
      ],
      "parameters": {
        "columns": {
          "value": {
            "date": "={{ new Date().toLocaleString() }}",
            "type": "image",
            "output": "={{ $('Download AI Image').item.json.imageUrl }}",
            "prompt": "={{ $('Download AI Image').item.json.text }}",
            "user id": "={{ $('Validate Command Format').item.json.message.chat.id }}"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "id",
              "defaultMatch": true,
              "canBeUsedToMatch": true
            },
            {
              "id": "prompt",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "date",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "user id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "user id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "type",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "type",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "output",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "output",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "style",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "style",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1dCxrF8eJqe_oYY6wZ1Zqo97v96SsXohVVzDgqUHVn1I/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1dCxrF8eJqe_oYY6wZ1Zqo97v96SsXohVVzDgqUHVn1I",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1dCxrF8eJqe_oYY6wZ1Zqo97v96SsXohVVzDgqUHVn1I/edit?usp=drivesdk",
          "cachedResultName": "History"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "8SCk1D65lQur82YT",
          "name": "Google Sheets account 2"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "c89ca7b4-3338-4497-90f0-d003562b3487",
      "name": "画像を Google ドライブにアップロード",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        780,
        -520
      ],
      "parameters": {
        "name": "={{ $json.text }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "1afFdG_eCYtca7fNAz1t7deKxIOcqZ0tv",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1afFdG_eCYtca7fNAz1t7deKxIOcqZ0tv",
          "cachedResultName": "telegram img generator assets"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "en8M5JCW3g49rIK1",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "ef820546-a244-4b84-bead-914ddc4faeb0",
      "name": "無効な入力形式を通知",
      "type": "n8n-nodes-base.telegram",
      "position": [
        -360,
        -80
      ],
      "webhookId": "55090118-c497-41a7-b808-979d49d6a544",
      "parameters": {
        "text": "❌ Invalid format. Please use image your prompt or blog your title.",
        "chatId": "={{ $('Switch Input Type').item.json.message.chat.id }}",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "CU5S8GReZfzUW955",
          "name": "Tele Image Generator"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "de96a570-97cb-491b-bd2d-0c7d0798058c",
      "name": "記事応答のタイピング表示",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        100,
        -120
      ],
      "parameters": {
        "url": "https://api.telegram.org/bot[your-token]/sendChatAction",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "chat_id",
              "value": "={{ $('Switch Input Type').item.json.message.chat.id }}"
            },
            {
              "name": "action",
              "value": "typing"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "7573c3f9-4c6c-45d5-b7d6-2ace53258d29",
      "name": "画像生成のタイピング表示",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        100,
        -340
      ],
      "parameters": {
        "url": "https://api.telegram.org/bot[your-token]/sendChatAction",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "chat_id",
              "value": "={{ $('Switch Input Type').item.json.message.chat.id }}"
            },
            {
              "name": "action",
              "value": "upload_photo"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "98ee826a-4cb5-415d-b974-23edd06b9a31",
      "name": "ヘルプ説明を送信",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -360,
        -400
      ],
      "parameters": {
        "url": "https://api.telegram.org/bot{YOUR-TOKEN}/sendMessage",
        "options": {},
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "chat_id",
              "value": "={{ $json.callback_query.message.chat.id }}"
            },
            {
              "name": "parse_mode",
              "value": "Markdown"
            },
            {
              "name": "text",
              "value": "=Welcome! Here's how to use this bot:\n\n🖼️ /image\nType the command:  \n`image of mountain scenery at sunrise`\n\n📝 /blog \nType the command:  \n`blog What is MongoDB`\n\n🧾 Format:\n- Start with the keyword `image` or `blog`\n- After that, write a description or title\n- Without quotation marks\n\n📌 Correct Example:\n- `image of a futuristic house on a cloud`\n- `blog How to Learn React Native for Beginners`\n\nIf you are still confused, type `/start` to open the main menu.\n\nThank you! 🙌\n\nTranslated with DeepL.com (free version)"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "06407eb2-aafd-40aa-bb22-8970d2f08100",
      "name": "記事スタイルオプションを送信",
      "type": "n8n-nodes-base.telegram",
      "position": [
        780,
        -120
      ],
      "webhookId": "f93e7b41-0c92-4c9a-97c9-d8e34cb16f66",
      "parameters": {
        "text": "Choose your preferred article style:",
        "chatId": "={{ $('Validate Command Format').item.json.message.chat.id }}",
        "replyMarkup": "inlineKeyboard",
        "inlineKeyboard": {
          "rows": [
            {
              "row": {
                "buttons": [
                  {
                    "text": "Formal",
                    "additionalFields": {
                      "callback_data": "style_formal"
                    }
                  },
                  {
                    "text": "Relax",
                    "additionalFields": {
                      "callback_data": "relax_style"
                    }
                  },
                  {
                    "text": "News",
                    "additionalFields": {
                      "callback_data": "news_style"
                    }
                  }
                ]
              }
            }
          ]
        },
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "CU5S8GReZfzUW955",
          "name": "Tele Image Generator"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "7c4d2f57-d083-4a91-991f-6f58d1fef66d",
      "name": "ブログプロンプトを保存",
      "type": "n8n-nodes-base.set",
      "position": [
        340,
        -120
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "30d22676-0174-4723-947e-5d8e604cd320",
              "name": "blogTitle",
              "type": "string",
              "value": "={{ $('Validate Command Format').item.json.message.text }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "c9503a8c-7a61-41db-bc3b-a1ea3c368a87",
      "name": "ブログプロンプトを Google シートに記録",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        560,
        -120
      ],
      "parameters": {
        "columns": {
          "value": {
            "id": "={{ $('Validate Command Format').item.json.message.date }}",
            "prompt": "={{ $json.blogTitle }}",
            "user id": "={{ $('Validate Command Format').item.json.message.chat.id }}"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "id",
              "defaultMatch": true,
              "canBeUsedToMatch": true
            },
            {
              "id": "prompt",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "date",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "user id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "user id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "type",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "type",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "output",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "output",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "style",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "style",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1dCxrF8eJqe_oYY6wZ1Zqo97v96SsXohVVzDgqUHVn1I/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1dCxrF8eJqe_oYY6wZ1Zqo97v96SsXohVVzDgqUHVn1I",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1dCxrF8eJqe_oYY6wZ1Zqo97v96SsXohVVzDgqUHVn1I/edit?usp=drivesdk",
          "cachedResultName": "History"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "8SCk1D65lQur82YT",
          "name": "Google Sheets account 2"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "452c93e8-4ee9-4b81-a2cc-5e4f65e43864",
      "name": "選択された記事スタイルを保存",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -120,
        80
      ],
      "parameters": {
        "columns": {
          "value": {
            "id": "=",
            "style": "={{ $json.callback_query.data.replace('style_', '') }}",
            "user id": "={{ $json.callback_query.message.chat.id }}"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "id",
              "defaultMatch": true,
              "canBeUsedToMatch": true
            },
            {
              "id": "prompt",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "date",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "user id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "user id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "type",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "type",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "output",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "output",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "style",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "style",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "user id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "gid=0"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "1dCxrF8eJqe_oYY6wZ1Zqo97v96SsXohVVzDgqUHVn1I"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "8SCk1D65lQur82YT",
          "name": "Google Sheets account 2"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "da632e75-b26c-44ea-8385-40710ae4259c",
      "name": "最終ユーザープロンプトを取得",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        100,
        80
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "={{ $json['user id'] }}",
              "lookupColumn": "user id"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1dCxrF8eJqe_oYY6wZ1Zqo97v96SsXohVVzDgqUHVn1I/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1dCxrF8eJqe_oYY6wZ1Zqo97v96SsXohVVzDgqUHVn1I",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1dCxrF8eJqe_oYY6wZ1Zqo97v96SsXohVVzDgqUHVn1I/edit?usp=drivesdk",
          "cachedResultName": "History"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "8SCk1D65lQur82YT",
          "name": "Google Sheets account 2"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "a5de2e3d-cd42-4725-bb41-08f9eed810e1",
      "name": "最終ブログプロンプトを抽出",
      "type": "n8n-nodes-base.code",
      "position": [
        340,
        80
      ],
      "parameters": {
        "jsCode": "const userId = $('Switch Input Type').first().json.callback_query.message.chat.id || $('Switch Input Type').first().json.callback_query.message.chat.id\n\nconst rows = items.map(item => item.json);\n\n// Filter data according to User ID\nconst filtered = rows.filter(r => r['user id'] == userId);\n\n// Take the last line of the user\nconst lastRow = filtered[filtered.length - 1];\n\nreturn [{ json: lastRow }];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "e605824e-3934-4bb1-8303-5ad3a144dd57",
      "name": "Gemini で記事を生成",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        580,
        80
      ],
      "parameters": {
        "text": "={{ $json.prompt }}",
        "messages": {
          "messageValues": [
            {
              "message": "=Write an English blog post based on the title: {{ $json.Prompt }}.\\n\\nLength about 3 paragraphs. Use the article style {{ $json.Style }}\n\ndo not add any introduction. directly provide the output.\n\nFollow the json format below :\n\n\n  {\n    \"title\": \"title\",\n    \"content\": \"content\"\n  }\n"
            }
          ]
        },
        "promptType": "define"
      },
      "typeVersion": 1.6
    },
    {
      "id": "dc89f75a-1e6d-4cd1-9cdb-d9779663496f",
      "name": "Gemini 応答を解析",
      "type": "n8n-nodes-base.code",
      "position": [
        960,
        80
      ],
      "parameters": {
        "jsCode": "const raw = $json.text;\nconst clean = raw.replace(/```json|```/g, '').trim(); // optional: just in case the model still adds\nconst parsed = JSON.parse(clean);\nreturn [{ json: parsed }];"
      },
      "typeVersion": 2
    },
    {
      "id": "3107ddba-743b-4792-9731-bbd26873abcf",
      "name": "記事を Telegram に送信",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1180,
        80
      ],
      "parameters": {
        "url": "https://api.telegram.org/bot-YOURTOKEN/sendMessage",
        "options": {},
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "chat_id",
              "value": "={{ $('Extract Last Blog Prompt').item.json['user id'] }}"
            },
            {
              "name": "text",
              "value": "={{ $json.title }}\n\n{{ $json.content }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "5c5933cd-479e-4255-8ed4-115cfbbc1f01",
      "name": "完成記事を Google シートに記録",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1420,
        80
      ],
      "parameters": {
        "columns": {
          "value": {
            "id": "=",
            "date": "={{ new Date().toLocaleString() }}",
            "type": "blog",
            "output": "={{ $('Parse Gemini Response').item.json.content }}",
            "prompt": "={{ $('Parse Gemini Response').item.json.title }}",
            "user id": "={{ $json.result.chat.id }}",
            "row_number": "={{ $('Extract Last Blog Prompt').item.json.row_number }}"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "id",
              "defaultMatch": true,
              "canBeUsedToMatch": true
            },
            {
              "id": "prompt",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "date",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "user id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "user id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "type",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "type",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "output",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "output",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "style",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "style",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "row_number"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1dCxrF8eJqe_oYY6wZ1Zqo97v96SsXohVVzDgqUHVn1I/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1dCxrF8eJqe_oYY6wZ1Zqo97v96SsXohVVzDgqUHVn1I",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1dCxrF8eJqe_oYY6wZ1Zqo97v96SsXohVVzDgqUHVn1I/edit?usp=drivesdk",
          "cachedResultName": "History"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "8SCk1D65lQur82YT",
          "name": "Google Sheets account 2"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "50a9f952-da98-4940-b53a-6c39fb97965b",
      "name": "付箋",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3420,
        -1660
      ],
      "parameters": {
        "width": 640,
        "height": 940,
        "content": "# Generate Images with Pollinations AI & Blog Articles with Gemini 2.5 from Telegram\n\n\nThis workflow is a multi-functional Telegram bot that allows users to generate:\n\n - 🎨 AI images using Pollinations API\n - 📝 AI-written blog articles using [Gemini AI via LangChain]\n\n\nIt uses Google Sheets to log all user activities and Google Drive to store image assets.\n\n\n## 📲 Example Commands:\nimage a modern smart city at sunset  \nblog The Benefits of Remote Work\n\n\n## ✅ Features:\n  - Telegram Bot with menu buttons (/start)\n  - Detects message type: /start, /help, button callbacks, or free text\n  - Validates format (image ... or blog ...)\n  - Auto-routes command to:\n  - AI Image Generator\n  - Blog Article Generator\n  - Lets user choose article style: Formal, Casual, News\n  - Sends real-time feedback: typing, uploading, error\n  - Logs each entry to Google Sheets with timestamp\n  - Uploads images to Google Drive folder\n\n\n## 🧾 Requirements:\n  - Telegram Bot Token\n  - Google Sheets OAuth credential\n  - Google Drive OAuth credential\n  - Google Gemini API (via LangChain)"
      },
      "typeVersion": 1
    },
    {
      "id": "c1a9d6fd-2c5b-4450-a2da-4d1e57602703",
      "name": "付箋2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2720,
        -1660
      ],
      "parameters": {
        "color": 3,
        "width": 640,
        "height": 680,
        "content": "## ⚙️ Setup Instructions:\n1. 🔐 Add Credentials to your n8n:\n\n   - Telegram API\n   - Google Sheets OAuth\n   - Google Drive OAuth\n   - Google Gemini (PaLM) via LangChain\n\n2. 🧩 Update Variables:\n\n   - Replace Google Sheet ID and Drive Folder ID\n   - Make sure chat_id expressions are dynamic (avoid hardcoding)\n\n3. 🧪 Test Commands:\n\n   - /start → opens main menu\n   - image your prompt → generates image\n   - blog your title → asks for style → generates article\n\n\n\n## 🔧 Customization Tips:\n1. ✍️ Modify Gemini prompt format in Generate Article with Gemini node\n2. ➕ Add new style types like SEO, Story, Product Review\n3. 🖼 Add more image models (e.g., Stability AI, DALL·E)\n4. 📊 Add category/tags to Sheets for better reporting\n5. 💾 Save responses with filenames using timestamps"
      },
      "typeVersion": 1
    },
    {
      "id": "0f06dde2-108d-48b4-b2a9-ecd624c48c42",
      "name": "付箋3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2020,
        -1660
      ],
      "parameters": {
        "color": 4,
        "width": 560,
        "height": 480,
        "content": "## 🔐 Security Best Practices:\n1. Do NOT hardcode API keys into HTTP nodes\n2. Store all credentials via n8n credential manager\n3. Avoid exposing actual Sheet/Drive URLs in public templates\n\n\n## 🏁 Summary:\nA powerful Telegram bot for content creators that lets users generate image assets and full-length articles — without ever leaving the chat. Ideal for bloggers, designers, educators, marketers, and developers.\n\n\n## 🔗 Want to Learn More?\n📚 https://n8n.partnerlinks.io/l3i5p47vr7s2\n📚 https://github.com/pollinations/pollinations\n📚 https://aistudio.google.com/apikey"
      },
      "typeVersion": 1
    },
    {
      "id": "f1271c8b-f7ba-4c62-93cc-02bb5504d767",
      "name": "付箋1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3420,
        -560
      ],
      "parameters": {
        "width": 920,
        "height": 1300,
        "content": "## 🔁 Google Sheets Integration (📄 Logging System)\nThis workflow uses Google Sheets as a central log for all user activities and generated content.\n\nEach time a user sends a valid prompt (image or blog), a row is appended to the spreadsheet with relevant details.\n\n\n\n## 📊 Sheet Structure\nThe spreadsheet is expected to have one sheet (e.g. Sheet1) with the following columns:\n\n| Column Name | Type     | Description                                                  |\n| ----------- | -------- | ------------------------------------------------------------ |\n| `Tanggal`   | `string` | Date and time of the request (`new Date().toLocaleString()`) |\n| `Prompt`    | `string` | The user’s original prompt (image description or blog title) |\n| `User ID`   | `string` | Telegram user ID (from message/chat context)                 |\n| `Jenis`     | `string` | Type of generation: `\"image\"` or `\"blog\"`                    |\n| `Hasil`     | `string` | For images: the image URL; for blogs: full content           |\n| `Style`     | `string` | Writing style (only applicable for blog prompts)             |\n\n\n\n## ✅ What’s Logged?\nFor image prompts, it stores the image description, user ID, and image URL.\n\nFor blog prompts, it stores the blog title, selected writing style, and final article content.\n\n\n## ⚙️ Customizing Google Sheets for Other Use Cases\nYou can adapt the column names and fields for your own use. Here are suggestions:\n\n📌 Add a “Category” column if you want to tag prompts (e.g., “Marketing”, “Travel”, “News”)\n\n📌 Track response time by adding a Latency column using Date.now() logic\n\n📌 Include sentiment or keyword analysis with custom AI nodes\n\n📌 Use row_number to update specific entries if needed (already used in blog article flow)\n\n\nTo apply custom columns:\n\n- Open Log Image Prompt to Google Sheets, Log Blog Prompt to Google Sheets, or Log Final Article to Google Sheets node\n\n- Add new fields in the “Columns” > “Value” section\n\n- Map expressions or variables from the current data flow\n\n- Make sure your spreadsheet has matching headers to avoid errors.\n\n\n## 📁 Google Drive Upload (for image)\nIn addition to logging to Sheets, AI-generated images are uploaded to a designated Google Drive folder for archiving.\n\nYou can change the folder ID in the Upload Image to Google Drive node and optionally rename the file to include:\n\nUser ID\nPrompt\nTimestamp"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "0699c5a1-a030-4a4f-be9e-8ff615dc4037": {
      "main": [
        [
          {
            "node": "58b67910-d5ed-4993-b71d-a5ca4c31a1f9",
            "type": "main",
            "index": 0
          },
          {
            "node": "c89ca7b4-3338-4497-90f0-d003562b3487",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ad8656b2-a542-4942-a978-23bfe85721db": {
      "ai_languageModel": [
        [
          {
            "node": "e605824e-3934-4bb1-8303-5ad3a144dd57",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "7c4d2f57-d083-4a91-991f-6f58d1fef66d": {
      "main": [
        [
          {
            "node": "c9503a8c-7a61-41db-bc3b-a1ea3c368a87",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7087e9ef-b1e6-486d-88f1-1a49397579c4": {
      "main": [
        [
          {
            "node": "d5976879-6a5b-492c-82bd-e4189b4da648",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "01112b5e-05f5-4877-bf2d-16ed895b0801",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "9e8d3f41-0d4e-4a06-aab9-289fa374a3a7",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "452c93e8-4ee9-4b81-a2cc-5e4f65e43864",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dc89f75a-1e6d-4cd1-9cdb-d9779663496f": {
      "main": [
        [
          {
            "node": "3107ddba-743b-4792-9731-bbd26873abcf",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "da632e75-b26c-44ea-8385-40710ae4259c": {
      "main": [
        [
          {
            "node": "a5de2e3d-cd42-4725-bb41-08f9eed810e1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "116ee884-b2ea-42af-addd-5e335197c990": {
      "main": [
        [
          {
            "node": "7087e9ef-b1e6-486d-88f1-1a49397579c4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9e8d3f41-0d4e-4a06-aab9-289fa374a3a7": {
      "main": [
        [
          {
            "node": "892747b0-9fcf-4cca-b781-29d22f782a81",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "ef820546-a244-4b84-bead-914ddc4faeb0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a5de2e3d-cd42-4725-bb41-08f9eed810e1": {
      "main": [
        [
          {
            "node": "e605824e-3934-4bb1-8303-5ad3a144dd57",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3107ddba-743b-4792-9731-bbd26873abcf": {
      "main": [
        [
          {
            "node": "5c5933cd-479e-4255-8ed4-115cfbbc1f01",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0bf22449-827c-4b9a-991f-cf4d7b18b2c0": {
      "main": [
        [
          {
            "node": "7573c3f9-4c6c-45d5-b7d6-2ace53258d29",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "de96a570-97cb-491b-bd2d-0c7d0798058c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ae3d4575-e1c9-4fc8-b4ef-d2394e24acb1": {
      "main": [
        [
          {
            "node": "116ee884-b2ea-42af-addd-5e335197c990",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "01112b5e-05f5-4877-bf2d-16ed895b0801": {
      "main": [
        [
          {
            "node": "672826f4-1a49-41fe-ae3e-36365b5611c6",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "09bc2384-c4c3-4a29-9910-e68622a0621d",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "98ee826a-4cb5-415d-b974-23edd06b9a31",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7f184919-2d9e-4ec7-aa3b-f20720c42779": {
      "main": [
        [
          {
            "node": "0699c5a1-a030-4a4f-be9e-8ff615dc4037",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "09bc2384-c4c3-4a29-9910-e68622a0621d": {
      "main": [
        []
      ]
    },
    "892747b0-9fcf-4cca-b781-29d22f782a81": {
      "main": [
        [
          {
            "node": "0bf22449-827c-4b9a-991f-cf4d7b18b2c0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e605824e-3934-4bb1-8303-5ad3a144dd57": {
      "main": [
        [
          {
            "node": "dc89f75a-1e6d-4cd1-9cdb-d9779663496f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "452c93e8-4ee9-4b81-a2cc-5e4f65e43864": {
      "main": [
        [
          {
            "node": "da632e75-b26c-44ea-8385-40710ae4259c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "58b67910-d5ed-4993-b71d-a5ca4c31a1f9": {
      "main": [
        [
          {
            "node": "5ad1b4cd-102d-4786-a11e-329cf9150a81",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c9503a8c-7a61-41db-bc3b-a1ea3c368a87": {
      "main": [
        [
          {
            "node": "06407eb2-aafd-40aa-bb22-8970d2f08100",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "de96a570-97cb-491b-bd2d-0c7d0798058c": {
      "main": [
        [
          {
            "node": "7c4d2f57-d083-4a91-991f-6f58d1fef66d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7573c3f9-4c6c-45d5-b7d6-2ace53258d29": {
      "main": [
        [
          {
            "node": "7f184919-2d9e-4ec7-aa3b-f20720c42779",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5ad1b4cd-102d-4786-a11e-329cf9150a81": {
      "main": [
        []
      ]
    },
    "5c5933cd-479e-4255-8ed4-115cfbbc1f01": {
      "main": [
        []
      ]
    }
  }
}
よくある質問

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

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

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

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

有料ですか?

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

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

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

作成者
Fahmi Oktafian

Fahmi Oktafian

@fahmi3322

Hi! I’m Fahmi Oktafian, a developer and automation enthusiast with expertise in n8n, Node.js, and API integrations. I specialize in building smart, scalable workflows — from auto-publishing content to WordPress, sending automated Telegram notifications, to processing AI-based summaries and paraphrase. I’m passionate about helping businesses save time, increase efficiency, and automate their digital processes with clean and user-friendly solutions.

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34