8
n8n 한국어amn8n.com

Twitter 제목 생성기

중급

이것은Content Creation, Multimodal AI분야의자동화 워크플로우로, 13개의 노드를 포함합니다.주로 EmailSend, GoogleDrive, HttpRequest, ChainLlm, GoogleDriveTrigger 등의 노드를 사용하며. Cloudinary와 GPT-4o-mini를 사용하여 Google Drive 이미지에서 Twitter/X 타이틀 생성

사전 요구사항
  • Google Drive API 인증 정보
  • 대상 API의 인증 정보가 필요할 수 있음
  • OpenAI API Key
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "id": "AaKfljggy90pXuZs",
  "meta": {
    "instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177"
  },
  "name": "Twitter caption generator",
  "tags": [],
  "nodes": [
    {
      "id": "406e4913-92c2-4619-9c96-64a9d1ddb556",
      "name": "Basic LLM Chain",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        672,
        0
      ],
      "parameters": {
        "text": "={{ $json.secure_url }} || Analyze this automation image and generate a classy and attractive caption for Twitter (X) based on the instructions in the system prompt.",
        "batching": {},
        "messages": {
          "messageValues": [
            {
              "message": "=You are a professional Twitter (X) content strategist and email designer.\n\nWhen given an image url , dashboard, or visual automation, analyze it deeply and return the following two outputs:\n\nA short, professional subject line (max 60 characters).\n\nA complete HTML email body with inline CSS that includes:\n\nThe image (use {{ $json.secure_url }} in the src attribute).\n\nA Twitter (X)-style post block (formatted like a professional social copy within the email) that contains:\n• Headline (bold, 1 line)\n• Primary tweet — one tweet, punchy, <= 280 characters, optimized for engagement (clear hook + value + CTA).\n• Tweet thread — 3 short tweets (each <= 280 characters) that expand the idea: Hook → Insight → Action. Number the tweets (1/3, 2/3, 3/3).\n• Alt text for the image (1–2 lines, descriptive, <120 characters).\n• Suggested first-reply (one short reply to pin under the tweet/thread, e.g., resources or link).\n• 10–12 relevant Twitter/X hashtags (high-signal, platform-appropriate — avoid over-stuffing; pick the most relevant).\n• Suggested @mentions (1–3 accounts types to mention, e.g., partner, tool, or community handles; leave as placeholders if unknown).\n• Recommended posting windows (IST) — 3 time slots ideal for engagement.\n\nA compact, professional summary section inside the email with:\n• 2–3 sentence overview of the visual\n• Bullet list of Key features (3–6 bullets)\n• Bullet list of Ideal users (2–5 bullets)\n• “Built with” list (tools/tech stack; 3–6 items)\n• Single-line CTA (e.g., “Try it”, “Request demo”, “Reply to learn more”)\n\nDesign & accessibility:\n• Use {{ $json.secure_url }} for the image src.\n• Include the alt text near the image tag (use the same alt text as in the Twitter block).\n• Max width 600px, centered content.\n• White content card on a light gray background, soft box shadow, clean spacing, readable bullets.\n• Inline CSS only (no external styles).\n• Fonts: Arial or Helvetica.\n• Email must render well in Gmail & Outlook.\n• Keep markup simple and robust: tables are allowed if needed for Outlook compatibility, but keep it clean.\n\nStyle & length rules:\n\nSubject line ≤ 60 characters.\n\nPrimary tweet and each thread tweet ≤ 280 characters (include a character count comment next to each tweet inside the email as a small, parenthetical note).\n\nHeadline: single bold line inside the email.\n\nHashtags: 10–12 total.\n\nKeep the whole email concise — one glance should tell the reader what the visual does and how to share it on X.\n\n🎯 Your response must follow this exact format — do not include code blocks or markdown:\n\nSubject: [your subject line here]\nBody: [your full HTML content here — one line or multiline]\n\nDo not return JSON. Do not use ``` or Markdown formatting."
            }
          ]
        },
        "promptType": "define"
      },
      "typeVersion": 1.7
    },
    {
      "id": "891fb13d-10e5-4f9e-aaca-d1f8529b299f",
      "name": "Azure OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
      "position": [
        768,
        224
      ],
      "parameters": {
        "model": "gpt-4o-mini",
        "options": {}
      },
      "credentials": {
        "azureOpenAiApi": {
          "id": "C3WzT18XqF8OdVM6",
          "name": "Azure Open AI account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1d3b6dc1-e7f2-4577-b17f-c2872831d5ad",
      "name": "이메일 전송",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        1072,
        0
      ],
      "webhookId": "20066331-0f47-48ec-8ad5-77cb26504344",
      "parameters": {
        "html": "={{ $json.text }}",
        "options": {},
        "subject": "Twitter Post",
        "toEmail": "<RECIEVER_EMAIL",
        "fromEmail": "<YOUR_EMAIL>"
      },
      "credentials": {
        "smtp": {
          "id": "gJdU446NGTfpXScn",
          "name": "SMTP account 2"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "4d7f5f02-0d0d-44e6-90b9-738b5779596e",
      "name": "프레임을 Cloudinary에 업로드",
      "type": "n8n-nodes-base.httpRequest",
      "maxTries": 5,
      "position": [
        448,
        0
      ],
      "parameters": {
        "url": "https://api.cloudinary.com/v1_1/dpuvigpmt/image/upload",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "file",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "data"
            },
            {
              "name": "upload_preset",
              "value": "upload"
            }
          ]
        },
        "genericAuthType": "httpBasicAuth"
      },
      "credentials": {
        "httpBasicAuth": {
          "id": "JU8RVqLrd8GnIY3j",
          "name": "Unnamed credential"
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.2
    },
    {
      "id": "cda8a3ff-4b61-4d68-8fca-580b10750baf",
      "name": "스티커 노트1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1072,
        -320
      ],
      "parameters": {
        "color": 3,
        "height": 304,
        "content": "Type: n8n-nodes-base.emailSend\n\nPurpose: Delivers generated captions via email\n\nWhat it does:\n\nSends email with generated captions\nIncludes file links and AI suggestions\nOutput: Email notification with results"
      },
      "typeVersion": 1
    },
    {
      "id": "8ef3c770-d420-49a2-a6d1-ffa0592e5abb",
      "name": "스티커 노트2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        736,
        -352
      ],
      "parameters": {
        "color": 4,
        "height": 336,
        "content": "Type: n8n-nodes-base.langchain\n\nPurpose: Generates Twitter captions using AI\n\nWhat it does:\n\nAnalyzes uploaded content\nCreates engaging Twitter captions\n\nAdds hashtags and optimizes for social media\n\nOutput: Generated caption text"
      },
      "typeVersion": 1
    },
    {
      "id": "809d5a50-725c-46ce-a28a-ad4ade39cf50",
      "name": "스티커 노트3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        368,
        -336
      ],
      "parameters": {
        "color": 5,
        "height": 320,
        "content": "Type: n8n-nodes-base.httpRequest \n\nPurpose: Uploads files to Cloudinary storage\nWhat it does:\n\nTakes file from Google Drive\n\nUploads to Cloudinary cloud storage \n\nCreates public URLs for AI processing\nOutput: Cloudinary URLs and file links"
      },
      "typeVersion": 1
    },
    {
      "id": "d55c6928-f5ab-487c-a560-6df24b23c1f4",
      "name": "스티커 노트4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        96,
        176
      ],
      "parameters": {
        "color": 6,
        "height": 240,
        "content": "Type: n8n-nodes-base.googleDrive\n\nPurpose: Downloads file content from Google Drive \n\nWhat it does: Gets the actual file data for processing \n\nOutput: File content ready for upload"
      },
      "typeVersion": 1
    },
    {
      "id": "37e94fb7-07c1-4268-bd70-90aa250f9e63",
      "name": "스티커 노트5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -192,
        -272
      ],
      "parameters": {
        "color": 7,
        "height": 256,
        "content": "Type: n8n-nodes-base.googleDriveTrigger\n\nPurpose: Monitors Google Drive for new files \n\nWhat it does: Automatically starts workflow when new file is uploaded\n\nOutput: File information (name, URL, metadata)"
      },
      "typeVersion": 1
    },
    {
      "id": "0fc331db-8dae-4974-a19a-bbfea8d3107b",
      "name": "스티커 노트",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        528,
        352
      ],
      "parameters": {
        "color": 4,
        "height": 224,
        "content": "Type: n8n-nodes-base.azureOpenAi\n\nPurpose: Alternative AI for caption generation\nWhat it does: Backup AI service for creating captions\n\nOutput: Additional caption suggestions\n"
      },
      "typeVersion": 1
    },
    {
      "id": "eb3add42-5770-45c0-a2e7-2958def4a8eb",
      "name": "Drive에서 파일 가져오기",
      "type": "n8n-nodes-base.googleDriveTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {
        "event": "fileUpdated",
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "triggerOn": "specificFolder",
        "folderToWatch": {
          "__rl": true,
          "mode": "list",
          "value": "1GDkSI9txB88oOcu_jr1tXEzkT0_FoGmC",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1GDkSI9txB88oOcu_jr1tXEzkT0_FoGmC",
          "cachedResultName": "Instagram "
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "gQtjXVGUgZru29qC",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "535f3639-dcc5-4fd3-9c14-ca740ed3b138",
      "name": "Drive 파일 다운로드",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        224,
        0
      ],
      "parameters": {
        "fileId": "={{ $json[\"id\"] }}",
        "options": {},
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "gQtjXVGUgZru29qC",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "47369773-409f-4a02-8b4b-22e5c19c0d2a",
      "name": "스티커 노트6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -608,
        -80
      ],
      "parameters": {
        "color": 4,
        "width": 336,
        "height": 592,
        "content": "Pre-conditions & API Requirements\n\nGoogle Drive\n\nNeeds OAuth2 credentials (googleDriveOAuth2Api)\n\nAccess must be granted to the folder being monitored.\n\nCloudinary\n\nRequires Cloudinary API key & secret (used in HTTP Request node for uploads).\n\nEnsure an upload_preset is configured in your Cloudinary account.\n\nAzure OpenAI\n\nRequires an Azure OpenAI endpoint and API key.\n\nModel: gpt-4o-mini (already configured in the JSON).\n\nSMTP Email\n\nYou’ll need an SMTP credential to send the generated captions to your email."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "383087ac-19f2-452d-a452-0d553ac7c581",
  "connections": {
    "406e4913-92c2-4619-9c96-64a9d1ddb556": {
      "main": [
        [
          {
            "node": "1d3b6dc1-e7f2-4577-b17f-c2872831d5ad",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "eb3add42-5770-45c0-a2e7-2958def4a8eb": {
      "main": [
        [
          {
            "node": "535f3639-dcc5-4fd3-9c14-ca740ed3b138",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "891fb13d-10e5-4f9e-aaca-d1f8529b299f": {
      "ai_languageModel": [
        [
          {
            "node": "406e4913-92c2-4619-9c96-64a9d1ddb556",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "535f3639-dcc5-4fd3-9c14-ca740ed3b138": {
      "main": [
        [
          {
            "node": "4d7f5f02-0d0d-44e6-90b9-738b5779596e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4d7f5f02-0d0d-44e6-90b9-738b5779596e": {
      "main": [
        [
          {
            "node": "406e4913-92c2-4619-9c96-64a9d1ddb556",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

이 워크플로우를 어떻게 사용하나요?

위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.

이 워크플로우는 어떤 시나리오에 적합한가요?

중급 - 콘텐츠 제작, 멀티모달 AI

유료인가요?

이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
중급
노드 수13
카테고리2
노드 유형7
난이도 설명

일정 경험을 가진 사용자를 위한 6-15개 노드의 중간 복잡도 워크플로우

저자
Rahul Joshi

Rahul Joshi

@rahul08

Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34