ワークフローから Gemini と Cloudflare AI を使用して LinkedIn コンテンツを生成

上級

これは自動化ワークフローで、21個のノードを含みます。主にIf, Set, Code, LinkedIn, Telegramなどのノードを使用。 Gemini と Cloudflare AI を使ってワークフローから LinkedIn コンテンツを生成

前提条件
  • LinkedIn API認証情報
  • Telegram Bot Token
  • ターゲットAPIの認証情報が必要な場合あり
  • Google Sheets API認証情報

カテゴリー

-
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "meta": {
    "instanceId": "8ada9bcc9ea45588c6264d0e90c5cf681653b47a083291c1f78d0cc01f7e596b",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "23e32b78-14fb-49d9-88ee-fde24f34d751",
      "name": "付箋",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        -128
      ],
      "parameters": {
        "color": 5,
        "width": 2432,
        "height": 624,
        "content": "## LinkedIn Post Content and Image Generator"
      },
      "typeVersion": 1
    },
    {
      "id": "ae5e66ae-319c-445d-ab16-071186195544",
      "name": "付箋1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        864,
        512
      ],
      "parameters": {
        "color": 4,
        "width": 752,
        "height": 368,
        "content": "## Finalized Post Content and Image is Posted in LinkedIn"
      },
      "typeVersion": 1
    },
    {
      "id": "18081731-dc14-4c27-9cf0-a74aa3ad30cd",
      "name": "画像 > 1メガピクセル",
      "type": "n8n-nodes-base.stopAndError",
      "position": [
        1600,
        0
      ],
      "parameters": {
        "errorMessage": "The size of the image (width x height) is larger than 1 megapixel"
      },
      "typeVersion": 1
    },
    {
      "id": "b25d96d7-04ad-4098-910d-055bbca77caf",
      "name": "付箋4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -768,
        -240
      ],
      "parameters": {
        "width": 544,
        "height": 416,
        "content": "=========================\n Turn Your n8n Workflows to LinkedIn Post with a suitable Image. \n=======================================\nFor any questions or support, please contact:\n    anirudh.n.aeran@gmail.com\n\nExplore more tips here:\n    - LinkedIn: https://www.linkedin.com/in/anirudh-narayan-a-/\n\nHappy learning! -- Anirudh Aeran\n\n\n======================================="
      },
      "typeVersion": 1
    },
    {
      "id": "3ba01fe1-5a05-4046-96bf-677f4b029848",
      "name": "付箋2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -768,
        224
      ],
      "parameters": {
        "color": 5,
        "width": 544,
        "height": 848,
        "content": "## Try It Out!\n\nThis workflow is your personal AI ghostwriter and designer for LinkedIn. It turns your n8n workflows into stunning content in minutes.\n\n**To get started:**\n\n1. **Connect Your Brains:** This workflow uses multiple AIs and services. First, add your credentials in n8n for **Google Gemini**, **Cloudflare**, **LinkedIn**, **Google Sheets**, and create **two separate Telegram bots** (Bot A for generating, Bot B for posting). For Cloudflare credentials: [Watch](https://youtu.be/2tycZNP5_IA?t=75)\n\n2. **Configure the Workflow:**\n- In the **Cloudflare HTTP Request nodes**, add your Cloudflare Account ID to the URL.\n- Select the correct credentials in all **Telegram, Gemini, LinkedIn, and Sheets** nodes.\n- Add your Google Sheet ID to the **\"Append row in sheet\"** node.\n\n3. **Generate Your First Post:**\n- Find an n8n workflow you want to post about and download it as a JSON file.\n- Send this JSON file to **Bot A (your generator bot)**.\n- Wait a moment. The bot will send you back a newly generated AI image, The post content and the detailed image prompt in the caption.\n\n4. **Publish to LinkedIn:**\n- Go to your **Bot B (your publisher bot)**.\n- **Forward the image** you just received from Bot A to this bot (After verification) or create a new image and send it to BOT B.\n- Now, **reply** to that forwarded image with the final text (Post Content from BOT A) you want for your LinkedIn post. You can use the text generated by Gemini or write your own.\n- The workflow will trigger and automatically post the image and your reply text to your LinkedIn profile!\n\n5. **Go Live:** Keep the workflow active. Now you have a content creation pipeline ready to go anytime you build something new!"
      },
      "typeVersion": 1
    },
    {
      "id": "8c9aa345-6cde-4f50-b886-bb4e05df0d8f",
      "name": "n8n JSONを受信",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        96,
        192
      ],
      "webhookId": "252ddcaa-ec29-4392-8b06-af40290ac822",
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "rsiac7CZm9xv74tf",
          "name": "Linked In (JSON) Bot"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "32db6359-fcf5-4b5c-aa53-abf8c6298efd",
      "name": "TelegramからJSONファイルを取得",
      "type": "n8n-nodes-base.telegram",
      "position": [
        304,
        192
      ],
      "webhookId": "60f1d943-0371-48e8-945f-1fda338304e2",
      "parameters": {
        "fileId": "={{ $json.message.document.file_id }}",
        "resource": "file",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "rsiac7CZm9xv74tf",
          "name": "Linked In (JSON) Bot"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "dda73ea8-6f9c-4a1a-8cbe-a5403986728e",
      "name": "ワークフローJSONを解析",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        480,
        192
      ],
      "parameters": {
        "options": {},
        "operation": "fromJson"
      },
      "typeVersion": 1
    },
    {
      "id": "dd2d0e0b-fe4b-4b1a-b821-565cf6a42e50",
      "name": "Gemini: 投稿と画像プロンプトを生成",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        640,
        192
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "models/gemini-2.5-flash",
          "cachedResultName": "models/gemini-2.5-flash"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "## PERSONA AND CORE RULES ##\nYou are 'FlowArchitect', a world-class automation expert and LinkedIn content strategist specializing in n8n. Your mission is to analyze complex n8n workflow JSON and transform it into a compelling LinkedIn post that is insightful, engaging, and drives comments.\n\nYour secondary tasks are:\n1. Create a detailed, professional prompt for an AI image generation model (like Stable Diffusion or Midjourney). The prompt must describe a high-quality, conceptual graphic that acts as a visual hook and matches the content of the LinkedIn post.\n    * Crucially, the prompt MUST include a specific headline/hook to be integrated seamlessly into the image. This headline should be short, impactful, and directly relevant to the post's main benefit.\n    * The prompt must specify exact placement for this headline (e.g., \"prominently displayed in the top left,\" \"centered at the bottom\").\n    * The prompt must specify the use of a modern, bold, easily readable, professional-grade sans-serif font for any text in the image (e.g., 'Inter', 'Montserrat', 'Lato', 'Open Sans').\n2. Generate a unique, URL-safe filename for the image.\n3. Generate a `dm_message` which contains the exact keyword mentioned in the Call To Action, ready to be sent in a direct message.\n\nYour tone is expert, confident, and value-driven. You use emojis (like →, ✅, ❌, 🔥, 🚨, 💀) to add personality and improve readability.\n\nYour response MUST ALWAYS be a single, valid JSON object. Do not include any text, notes, or explanations outside of the JSON structure. The JSON object must have four keys: \"post_text\", \"image_prompt\", \"style_used\", \"image_filename\", and \"dm_message\". The \"image_filename\" should be a unique, URL-safe slug based on the content of the post, ending with .png (e.g., automated-review-system.png).\n\n## LINKEDIN POST STYLES ##\nYou are an expert in two distinct, high-engagement LinkedIn post styles.\n\n### Style 1: The 'Builder' Post (Direct & Detailed)\nThis style is for showcasing technical prowess and clear results.\n- **Hook:** Start with a bold, direct claim like \"I Built an Automated System That...\"\n- **Problem:** State the common problem the workflow solves.\n- **Solution Actions:** Use \"→\" to list the specific actions the automation performs.\n- **Results:** Use \"✅\" to list 3-4 quantifiable, impressive outcomes.\n- **How It Works:** Provide a clear \"Step 1, Step 2...\" breakdown of the workflow logic.\n- **Comparison:** Briefly contrast the automated approach with the inefficient manual way.\n- **Tech Stack:** List the key technologies used.\n- **Call to Action (CTA):** End with \"Like + Comment '[KEYWORD]' and I'll DM you the ready-to-import template 👇\"\n\n### Style 2: The 'Strategist' Post (Contrarian & Psychological)\nThis style is for showcasing strategic thinking and hooking the reader with a unique angle.\n- **Hook:** Start with a provocative, contrarian opinion like \"Unpopular Opinion: [Common Practice] is Killing Your Business 💀\"\n- **The Secret:** Reveal the \"secret\" or the core principle behind your method (e.g., Timing + Value Exchange).\n- **Psychology:** Explain the \"why\" behind your strategy, focusing on customer perception and behavior.\n- **Solution Functions:** Use \"✅\" to list the high-level functions the automation handles.\n- **Key Result:** State the single most impressive metric or outcome.\n- **The Best Part:** Mention that it's fully automatic and saves time/effort.\n- **Call to Action (CTA):** End with \"Comment '[KEYWORD]' and I'll share the complete system 🔥\"\n\n## EXAMPLES ##\nHere is an example of how to apply these styles to a workflow that automates Google Review collection.\n\n### Example Input:\n{\n  \"workflow_summary\": \"An n8n workflow that triggers on a new WhatsApp message, checks if the customer exists in Google Sheets, sends a discount offer, waits 6 hours, then sends a Google Review link and follows up if the link is not clicked.\",\n  \"tools\": [\"n8n\", \"WhatsApp Business API\", \"Google Sheets\", \"Webhook\"],\n  \"results\": {\n    \"review_rate_before\": \"2%\",\n    \"review_rate_after\": \"15%\",\n    \"hours_saved_weekly\": 25\n  }\n}\n\n### Example Output for Style 1 ('Builder'):\n{\n  \"post_text\": \"I Built an Automated Google Review System That Turns Every Customer Into a 5-Star Review 🚨\\nMost businesses lose 90% of potential reviews because they never follow up.\\nMeanwhile, I built a WhatsApp automation that:\\n→ Captures every customer interaction automatically\\n→ Sends personalized discount offers instantly\\n→ Follows up with review requests at the perfect timing\\n→ Tracks everything in Google Sheets without manual work\\nThe result?\\n✅ 300% increase in review collection rates\\n✅ Zero manual follow-up work required\\n✅ Automatic customer segmentation\\n✅ Smart duplicate prevention system\\nHow the automation works:\\nStep 1: Customer Detection\\nWhatsApp trigger captures incoming messages\\nAutomatically checks Google Sheets for existing customers\\nSegments new vs returning customers instantly\\nStep 2: Smart Offer System\\nNew customers → Instant 5% discount message\\nReturning customers → \\\"Already claimed\\\" prevention\\nAll interactions logged with timestamps\\nStep 3: Intelligent Follow-Up\\n6-hour delay before review request (perfect timing psychology)\\nPersonalized WhatsApp template messages\\nClick tracking for review link engagement\\nScheduled hourly follow-ups for non-responders\\nStep 4: Data Intelligence\\nGoogle Sheets integration tracks every touchpoint\\nStatus updates: pending → contacted → clicked → reviewed\\nFeedback collection and storage\\nCustomer journey analytics\\nWhy this beats manual review requests:\\n❌ Manual approach: 2% review rate, 20+ hours weekly\\n✅ My automation: 15% review rate, 0 hours weekly\\nThe tech stack:\\nn8n for workflow orchestration\\nWhatsApp Business API for messaging\\nGoogle Sheets for customer database\\nWebhook triggers for real-time updates\\nSmart conditional logic for customer segmentation\\nThis system has generated 500+ authentic reviews for my clients while saving 25+ hours weekly per business.\\nWant the complete n8n workflow JSON?\\nLike + Comment \\\"REVIEW SYSTEM\\\" and I'll DM you the ready-to-import template 👇\",\n  \"image_prompt\": \"Professional graphic for a LinkedIn post about automation. A central glowing 5-star icon, with data streams connecting icons for WhatsApp, Google Sheets, and a clock. Clean, technical, dark background with orange and blue highlights. Integrate the bold white text 'AUTOMATED 5-STAR REVIEWS' prominently in the top center, using a modern sans-serif font like 'Inter' or 'Montserrat'. High-detail, corporate tech aesthetic, digital art, high resolution.\",\n  \"style_used\": \"Builder\",\n  \"image_filename\": \"automated-google-review-system.png\",\n  \"dm_message\": \"REVIEW SYSTEM\"\n}\n\n### Example Output for Style 2 ('Strategist'):\n{\n  \"post_text\": \"Unpopular Opinion: Asking for Google Reviews is Killing Your Business 💀\\nEveryone's begging customers for reviews.\\nBut here's what actually works:\\nGive value FIRST, then ask.\\nI built a WhatsApp automation that turns every customer interaction into a review opportunity WITHOUT being pushy.\\nThe secret? Timing + Value Exchange\\nInstead of: \\\"Please leave us a review 🙏\\\"\\nI do this: \\\"Here's your exclusive 5% discount → [6 hours later] → How was your experience?\\\"\\nThe psychology behind it:\\nCustomers feel valued (discount first)\\nPerfect timing (6-hour delay = peak satisfaction)\\nNon-intrusive (WhatsApp vs email spam)\\nReciprocity principle (they got value, want to give back)\\nMy n8n workflow handles:\\n✅ Automatic customer detection\\n✅ Smart duplicate prevention\\n✅ Personalized discount delivery\\n✅ Perfectly timed review requests\\n✅ Follow-up for non-responders\\n✅ Complete analytics tracking\\nResult: 15% review rate vs industry average of 2%\\nThe best part? It runs completely automatically.\\nNo manual work. No pushy sales tactics. No spam.\\nJust value-first automation that customers actually appreciate.\\nReady to stop begging for reviews?\\nComment \\\"VALUE FIRST\\\" and I'll share the complete system 🔥\",\n  \"image_prompt\": \"Conceptual digital art for a business strategy post. A balanced scale. On one side, a small glowing gift box icon labeled 'Value First'. On the other side, a much larger pile of 5-star review icons. The theme is reciprocity and smart business. Minimalist, professional, sophisticated color palette, dark background. Integrate the bold white text 'GIVE VALUE, GET REVIEWS' prominently centered at the top, using an elegant, clean sans-serif font. High resolution.\",\n  \"style_used\": \"Strategist\",\n  \"image_filename\": \"value-first-review-strategy.png\",\n  \"dm_message\": \"VALUE FIRST\"\n}\n\n## FINAL TASK ##\nNow, analyze the following real n8n workflow JSON. Choose one of the two post styles ('Builder' or 'Strategist') to write the post. **Alternate which style you use for each new request to test which performs better.** Generate the final JSON output, including the detailed image prompt, a unique filename, and the `dm_message`.\n\n\n## Important Note: The CTA or the keyword should always be a relevant single word and not complex ones with multiple words or special characters of any type. "
            },
            {
              "content": "=n8n workflow in JSON:\n{{ JSON.stringify($json.data) }}"
            }
          ]
        }
      },
      "credentials": {
        "googlePalmApi": {
          "id": "3QMblcxz1YIoMjSA",
          "name": "Google Gemini(PaLM) Api account"
        }
      },
      "retryOnFail": true,
      "typeVersion": 1,
      "waitBetweenTries": 2000
    },
    {
      "id": "51910b8c-f726-462d-8b33-9233a0196cad",
      "name": "Gemini出力を解析",
      "type": "n8n-nodes-base.code",
      "position": [
        944,
        192
      ],
      "parameters": {
        "jsCode": "// This new code outputs ONE item with all the data combined.\n\nconst aiNodeOutput = items[0].json;\nconst rawText = aiNodeOutput.content.parts[0].text;\nconst cleanedJsonString = rawText.replace(/^```json\\n/, '').replace(/\\n```$/, '').trim();\nconst parsedData = JSON.parse(cleanedJsonString);\n\n// Return a single item containing the post_text, image_headline, and style_used\nreturn [{\n  json: parsedData\n}];"
      },
      "typeVersion": 2
    },
    {
      "id": "d6cfe1a0-d9e6-4aa9-8e03-e945782c3aea",
      "name": "コンテンツをGoogleシートに記録",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1136,
        368
      ],
      "parameters": {
        "columns": {
          "value": {
            "Keyword": "={{ $json.dm_message }}",
            "Style Used": "={{ $json.style_used }}",
            "Image Prompt": "={{ $json.image_prompt }}"
          },
          "schema": [
            {
              "id": "Keyword",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Keyword",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Github Repo Link",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Github Repo Link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Image Prompt",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Image Prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Style Used",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Style Used",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/15mWZ28bis89i-7mLY8EU39OxoYPQ0L7LeY4eqwq01Cs/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "15mWZ28bis89i-7mLY8EU39OxoYPQ0L7LeY4eqwq01Cs",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/15mWZ28bis89i-7mLY8EU39OxoYPQ0L7LeY4eqwq01Cs/edit?usp=drivesdk",
          "cachedResultName": "LinkedIn Keywords for DM Automation"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "9jbOpr1QoJsk9P2J",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "19a6fc45-55f1-4870-b6f7-220c7bcd77b9",
      "name": "画像生成パラメータを設定",
      "type": "n8n-nodes-base.set",
      "position": [
        1136,
        192
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "3f7d5020-0710-4f3c-858f-0485a2bd2963",
              "name": "width",
              "type": "number",
              "value": "={{ $json.width || 1024 }}"
            },
            {
              "id": "39b906fa-3e0b-45b9-9c1b-95cbc51e195d",
              "name": "prompt",
              "type": "string",
              "value": "={{ $json.image_prompt }}"
            },
            {
              "id": "3f8593d2-cfb3-437a-a9fc-4430995cb78f",
              "name": "height",
              "type": "number",
              "value": "={{ $json.height || 1024 }}"
            },
            {
              "id": "065181ef-404a-4860-9019-976e6e8391e0",
              "name": "seed",
              "type": "number",
              "value": "={{ Math.floor(Math.random() * 100000000) }}"
            },
            {
              "id": "2c131da3-e708-4468-bb09-d400e7e5f28c",
              "name": "steps",
              "type": "number",
              "value": 4
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "75c3d30b-3444-4cc2-82fa-29c4dc2607a0",
      "name": "画像サイズを検証",
      "type": "n8n-nodes-base.if",
      "position": [
        1344,
        192
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "f6e30a82-76cd-4bfd-9bc5-b7fffb15e35c",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $json.width * $json.height > 1048576 }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "e8a67bda-7a40-402a-9b0f-8c8b69abb40c",
      "name": "Cloudflare: アカウントIDを取得",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1600,
        192
      ],
      "parameters": {
        "url": "https://api.cloudflare.com/client/v4/accounts",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpBearerAuth": {
          "id": "97V45YZYPuR8LUd4",
          "name": "CloudFare"
        },
        "httpHeaderAuth": {
          "id": "gUe8q2vCgewIcQPz",
          "name": "Cloudfare header auth"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "6bcebec4-2f24-4d50-b6b1-f25db62cb765",
      "name": "Cloudflare: 画像を生成",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1792,
        192
      ],
      "parameters": {
        "url": "=https://api.cloudflare.com/client/v4/accounts/{{ $json.result[0].id }}/ai/run/@cf/black-forest-labs/flux-1-schnell",
        "method": "POST",
        "options": {},
        "jsonBody": "={{ \n\nJSON.stringify(\n  {\n    prompt: $('Set Image Generation Parameters').item.json.prompt,\n    seed: $('Set Image Generation Parameters').item.json.seed,\n    \"width\": $('Set Image Generation Parameters').item.json.width,\n    \"height\": $('Set Image Generation Parameters').item.json.height,\n    \"steps\": $('Set Image Generation Parameters').item.json.steps\n  }\n) \n\n}}",
        "sendBody": true,
        "specifyBody": "=json",
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {}
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpBearerAuth": {
          "id": "97V45YZYPuR8LUd4",
          "name": "CloudFare"
        },
        "httpHeaderAuth": {
          "id": "gUe8q2vCgewIcQPz",
          "name": "Cloudfare header auth"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "27cfe056-9e2a-410c-8cad-d12d47f088e0",
      "name": "画像をバイナリに変換",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        1984,
        192
      ],
      "parameters": {
        "options": {},
        "operation": "toBinary",
        "sourceProperty": "result.image"
      },
      "typeVersion": 1.1
    },
    {
      "id": "4a701ff4-6dec-4e90-b2d1-b228c701a97f",
      "name": "投稿コンテンツを確認用に送信",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1136,
        0
      ],
      "webhookId": "3820f391-f78e-49c5-b911-48bfe4566fea",
      "parameters": {
        "text": "={{ $json.post_text }}",
        "chatId": "={{ $('Receive n8n JSON').item.json.message.chat.id }}",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "EXE6014whXdKZuv3",
          "name": "Linked In Post Bot"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "4a7204b9-4a8e-4fa4-97c1-a682e5c31a8b",
      "name": "画像とプロンプトをユーザーに送信",
      "type": "n8n-nodes-base.telegram",
      "position": [
        2192,
        192
      ],
      "webhookId": "a6a4b316-9bed-4539-82d1-44851ed29d73",
      "parameters": {
        "chatId": "={{ $('Receive n8n JSON').item.json.message.chat.id }}",
        "operation": "sendPhoto",
        "binaryData": true,
        "additionalFields": {
          "caption": "={{ $('Parse Gemini Output').item.json.image_prompt }}"
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "rsiac7CZm9xv74tf",
          "name": "Linked In (JSON) Bot"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "decd0dc3-5f3d-4c25-9df7-ece684c25d7e",
      "name": "トリガー: 投稿画像に返信",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        960,
        640
      ],
      "webhookId": "34db5442-de08-4a27-91af-73ffebb7eac3",
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "EXE6014whXdKZuv3",
          "name": "Linked In Post Bot"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "c82cb7dd-f097-4942-be23-3faf7dd19a2d",
      "name": "返信から画像を取得",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1168,
        640
      ],
      "webhookId": "1a1cae12-cca1-448b-b5cb-ae31f9fea8ef",
      "parameters": {
        "fileId": "={{ $json.message.reply_to_message.photo[$json.message.reply_to_message.photo.length - 1].file_id }}",
        "resource": "file",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "EXE6014whXdKZuv3",
          "name": "Linked In Post Bot"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "223e88f1-85d3-4f33-b2cc-01f1a022a41f",
      "name": "投稿をLinkedInに公開",
      "type": "n8n-nodes-base.linkedIn",
      "position": [
        1376,
        640
      ],
      "parameters": {
        "text": "={{ $('Trigger: Reply to Post Image').item.json.message.text }}",
        "person": "-vNmfGJ-HL",
        "additionalFields": {
          "title": "Instagram DM Automation",
          "visibility": "CONNECTIONS"
        },
        "shareMediaCategory": "IMAGE"
      },
      "credentials": {
        "linkedInOAuth2Api": {
          "id": "4QoqhVOPLpvWgFxN",
          "name": "LinkedIn account"
        }
      },
      "typeVersion": 1
    }
  ],
  "pinData": {
    "Receive n8n JSON": [
      {
        "message": {
          "chat": {
            "id": 1250983224,
            "type": "private",
            "last_name": "A",
            "first_name": "Anirudh"
          },
          "date": 1760019290,
          "from": {
            "id": 1250983224,
            "is_bot": false,
            "last_name": "A",
            "first_name": "Anirudh",
            "language_code": "en"
          },
          "document": {
            "file_id": "BQACAgUAAxkBAAMOaOfDWqq9vDNM2iarFZyNiWfYWtcAAl4ZAAK7ujlXFOKuGtuE_tA2BA",
            "file_name": "code1.json",
            "file_size": 7629,
            "mime_type": "application/json",
            "file_unique_id": "AgADXhkAAru6OVc"
          },
          "message_id": 14
        },
        "update_id": 354524577
      }
    ],
    "Trigger: Reply to Post Image": [
      {
        "message": {
          "chat": {
            "id": 1250983224,
            "type": "private",
            "last_name": "A",
            "first_name": "Anirudh"
          },
          "date": 1760593151,
          "from": {
            "id": 1250983224,
            "is_bot": false,
            "last_name": "A",
            "first_name": "Anirudh",
            "language_code": "en"
          },
          "text": "Unpopular Opinion: Manually answering every Instagram DM is not sustainable personal branding 💀\n\nEveryone talks about 'authenticity' and 'personal connection' on Instagram. But what happens when your DMs explode? Most influencers and businesses either:\n\n❌ Get overwhelmed and miss opportunities\n❌ Send generic, uninspired replies that feel anything but 'personal'\n❌ Spend hours every day just trying to keep up\n\nMeanwhile, I've built an n8n workflow that changes the game.\n\nThe secret? AI-powered 'ghost' engagement that feels 100% authentic and on-brand, 24/7.\n\nThis isn't about replacing you. It's about scaling your unique voice and ensuring every follower feels heard, instantly. It’s about automating for authenticity, not away from it.\n\nThe psychology behind this approach:\n✅ Instant Gratification: Followers get immediate replies, fostering a sense of responsiveness.\n✅ Consistent Voice: Your brand persona is maintained across every interaction, building trust.\n✅ Personalized Experience: AI-driven replies are tailored to the conversation context, not just canned responses.\n✅ Effortless Engagement: You build deeper connections without the constant manual grind.\n\nMy n8n + ManyChat + AI system intelligently handles:\n✅ Real-time Instagram DM capture via ManyChat\n✅ Dynamic AI persona definition (e.g., your unique influencer style)\n✅ Context-aware responses with intelligent conversation memory\n✅ Consistent, on-brand messaging, reflecting your previous posts' tone\n✅ 24/7 personalized engagement with your audience, effortlessly\n\nKey Result: Scaled personalization, round-the-clock engagement, and a consistent, authentic brand voice across all your DMs – completely hands-free. You gain hours back, and your community feels more connected than ever.\n\nThe best part? You can be creating your next viral reel, filming a new course, or simply living your life, while your n8n bot expertly handles the influx, building deeper connections with your community.\n\nReady to redefine your Instagram strategy and turn your DMs into a powerful growth engine?\nComment \"INSTA-DM-AI\" and I'll share the complete system 🔥",
          "entities": [
            {
              "type": "bold",
              "length": 3,
              "offset": 60
            },
            {
              "type": "bold",
              "length": 3,
              "offset": 707
            }
          ],
          "message_id": 7,
          "reply_to_message": {
            "chat": {
              "id": 1250983224,
              "type": "private",
              "last_name": "A",
              "first_name": "Anirudh"
            },
            "date": 1760593003,
            "from": {
              "id": 1250983224,
              "is_bot": false,
              "last_name": "A",
              "first_name": "Anirudh",
              "language_code": "en"
            },
            "photo": [
              {
                "width": 90,
                "height": 47,
                "file_id": "AgACAgUAAxkBAAMEaPB98Ld1rnxfjZm6AktAWF9WBFkAAhMNaxvuGYBXReis1pAh8FsBAAMCAANzAAM2BA",
                "file_size": 746,
                "file_unique_id": "AQADEw1rG-4ZgFd4"
              },
              {
                "width": 320,
                "height": 168,
                "file_id": "AgACAgUAAxkBAAMEaPB98Ld1rnxfjZm6AktAWF9WBFkAAhMNaxvuGYBXReis1pAh8FsBAAMCAANtAAM2BA",
                "file_size": 7642,
                "file_unique_id": "AQADEw1rG-4ZgFdy"
              },
              {
                "width": 800,
                "height": 421,
                "file_id": "AgACAgUAAxkBAAMEaPB98Ld1rnxfjZm6AktAWF9WBFkAAhMNaxvuGYBXReis1pAh8FsBAAMCAAN4AAM2BA",
                "file_size": 29660,
                "file_unique_id": "AQADEw1rG-4ZgFd9"
              },
              {
                "width": 1280,
                "height": 674,
                "file_id": "AgACAgUAAxkBAAMEaPB98Ld1rnxfjZm6AktAWF9WBFkAAhMNaxvuGYBXReis1pAh8FsBAAMCAAN5AAM2BA",
                "file_size": 53542,
                "file_unique_id": "AQADEw1rG-4ZgFd-"
              }
            ],
            "message_id": 6
          }
        },
        "update_id": 670476625
      }
    ],
    "Gemini: Generate Post & Image Prompt": [
      {
        "index": 0,
        "content": {
          "role": "model",
          "parts": [
            {
              "text": "```json\n{\n  \"post_text\": \"Unpopular Opinion: Manually replying to every Instagram DM is killing your growth (and your sanity) 💀\\n\\nMost influencers and businesses are still trying to keep up with DMs one-by-one, or worse – ignoring them. That's a recipe for burnout and missed opportunities.\\n\\nThe secret? Scalable, *authentic* engagement through AI.\\n\\nYour audience craves connection. They DM for advice, questions, or just to say hi. Leaving them on read, or with generic responses, erodes trust. But providing instant, personalized, *on-brand* replies? That builds a loyal community, turning casual followers into super-fans.\\n\\nI've built an n8n automation that acts as your AI Instagram assistant, handling all your DMs with your unique voice:\\n\\n✅ Instantly captures every Instagram message via ManyChat.\\n✅ Learns your unique voice and style from your past posts.\\n✅ Crafts personalized, human-like responses using advanced AI.\\n✅ Remembers conversation history for seamless, context-aware follow-ups.\\n✅ Delivers answers back to Instagram, 24/7, hands-free.\\n\\nImagine engaging consistently with thousands of followers, building deeper relationships, all without typing a single reply yourself. No more late-night replies. No more inconsistent messaging.\\n\\nThis entire system runs on n8n, completely on autopilot. It's like having an AI personal assistant for your Instagram DMs – ensuring every follower feels seen and valued, around the clock.\\n\\nWant to stop drowning in DMs and start scaling your Instagram engagement?\\n\\nComment \\\"INSTABOT\\\" and I'll share the complete n8n system 🔥\",\n  \"image_prompt\": \"Futuristic, conceptual digital art for a LinkedIn post about AI and social media automation. A stylized glowing smartphone screen is central, displaying an Instagram direct message chat interface where the AI is typing a response. Surrounding the phone, subtle, interconnected data streams flow towards abstract representations of an AI brain and a network graph, symbolizing learning and connection. The overall aesthetic is clean, professional, and slightly ethereal, using a color palette of deep blues, purples, and vibrant digital greens/oranges, on a dark, sophisticated background. Integrate the bold white text 'AI INSTAGRAM INFLUENCER' prominently centered at the top of the image, using a modern, easily readable sans-serif font like 'Montserrat' or 'Lato'. High resolution, dramatic lighting.\",\n  \"style_used\": \"Strategist\",\n  \"image_filename\": \"ai-instagram-dm-automation.png\",\n  \"dm_message\": \"INSTABOT\"\n}\n```"
            }
          ]
        },
        "finishReason": "STOP"
      }
    ]
  },
  "connections": {
    "8c9aa345-6cde-4f50-b886-bb4e05df0d8f": {
      "main": [
        [
          {
            "node": "32db6359-fcf5-4b5c-aa53-abf8c6298efd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "51910b8c-f726-462d-8b33-9233a0196cad": {
      "main": [
        [
          {
            "node": "d6cfe1a0-d9e6-4aa9-8e03-e945782c3aea",
            "type": "main",
            "index": 0
          },
          {
            "node": "19a6fc45-55f1-4870-b6f7-220c7bcd77b9",
            "type": "main",
            "index": 0
          },
          {
            "node": "4a701ff4-6dec-4e90-b2d1-b228c701a97f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dda73ea8-6f9c-4a1a-8cbe-a5403986728e": {
      "main": [
        [
          {
            "node": "dd2d0e0b-fe4b-4b1a-b821-565cf6a42e50",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c82cb7dd-f097-4942-be23-3faf7dd19a2d": {
      "main": [
        [
          {
            "node": "223e88f1-85d3-4f33-b2cc-01f1a022a41f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "27cfe056-9e2a-410c-8cad-d12d47f088e0": {
      "main": [
        [
          {
            "node": "4a7204b9-4a8e-4fa4-97c1-a682e5c31a8b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "75c3d30b-3444-4cc2-82fa-29c4dc2607a0": {
      "main": [
        [
          {
            "node": "18081731-dc14-4c27-9cf0-a74aa3ad30cd",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "e8a67bda-7a40-402a-9b0f-8c8b69abb40c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6bcebec4-2f24-4d50-b6b1-f25db62cb765": {
      "main": [
        [
          {
            "node": "27cfe056-9e2a-410c-8cad-d12d47f088e0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e8a67bda-7a40-402a-9b0f-8c8b69abb40c": {
      "main": [
        [
          {
            "node": "6bcebec4-2f24-4d50-b6b1-f25db62cb765",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "32db6359-fcf5-4b5c-aa53-abf8c6298efd": {
      "main": [
        [
          {
            "node": "dda73ea8-6f9c-4a1a-8cbe-a5403986728e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "decd0dc3-5f3d-4c25-9df7-ece684c25d7e": {
      "main": [
        [
          {
            "node": "c82cb7dd-f097-4942-be23-3faf7dd19a2d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "19a6fc45-55f1-4870-b6f7-220c7bcd77b9": {
      "main": [
        [
          {
            "node": "75c3d30b-3444-4cc2-82fa-29c4dc2607a0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dd2d0e0b-fe4b-4b1a-b821-565cf6a42e50": {
      "main": [
        [
          {
            "node": "51910b8c-f726-462d-8b33-9233a0196cad",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

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

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

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

上級

有料ですか?

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

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

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

作成者
Anirudh Aeran

Anirudh Aeran

@anirudhaeran

I'm An Oracle Certified Developer specializing in intelligent and scalable business solutions. With expertise in n8n and a range of modern web technologies, I build dynamic systems that streamline operations, save time, and drive innovation.

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34