JinaAI および Gemini-GPT を使用して記事を Bluesky スレッド投稿に変換
上級
これはAI Summarization, Multimodal AI分野の自動化ワークフローで、21個のノードを含みます。主にIf, Set, Code, Wait, JinaAiなどのノードを使用。 Articel を JinaAI および Gemini/GPT で Bluesky スレッド投稿へ変換
前提条件
- •Telegram Bot Token
- •OpenAI API Key
- •Google Gemini API Key
使用ノード (21)
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"meta": {
"instanceId": "a5fd400c6ce3e6fce31bb31916a9cfa04e30e08115d80423a7e69507457fa5bb",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "3209ae09-810e-4b97-84fa-7a6a55c2bc51",
"name": "Gemini",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
672,
448
],
"parameters": {
"options": {}
},
"credentials": {
"googlePalmApi": {
"id": "1j4LpZni96FuQhiY",
"name": "DevUratelier"
}
},
"typeVersion": 1
},
{
"id": "9ab04e86-e205-4771-ade5-854fa6f1aa07",
"name": "投稿を作成",
"type": "n8n-nodes-bluesky-enhanced.bluesky",
"position": [
2144,
128
],
"parameters": {
"postText": "={{ $json.data }}"
},
"credentials": {
"blueskyApi": {
"id": "wMptX8gmJ4XyHZcj",
"name": "khaisastudio"
}
},
"typeVersion": 2
},
{
"id": "388e2b67-29a7-449d-9adf-3efb4040d4f3",
"name": "Telegram Input Trigger",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
0,
0
],
"webhookId": "0356d21b-18e9-4b55-88b5-e417446d7a7d",
"parameters": {
"updates": [
"message"
],
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "9Dco5JlAC7OO3zas",
"name": "Khaisa Develompen Bot"
}
},
"typeVersion": 1.2
},
{
"id": "ffd5f23b-9692-46f8-bbbf-3d636541a3c6",
"name": "RSSフィード - AI Trends",
"type": "n8n-nodes-base.rssFeedReadTrigger",
"position": [
0,
576
],
"parameters": {
"feedUrl": "https://www.aitrends.com/feed/",
"pollTimes": {
"item": [
{
"hour": 0
}
]
}
},
"typeVersion": 1
},
{
"id": "c83fb2d3-d1e9-4adf-b194-0c0fcb33c698",
"name": "RSSフィード - Machine Learning Mastery",
"type": "n8n-nodes-base.rssFeedReadTrigger",
"position": [
0,
384
],
"parameters": {
"feedUrl": "https://machinelearningmastery.com/blog/feed/",
"pollTimes": {
"item": [
{
"hour": 18
}
]
}
},
"typeVersion": 1
},
{
"id": "2ca69e66-0349-48c5-a631-148a1852c831",
"name": "RSSフィード - Technology Review",
"type": "n8n-nodes-base.rssFeedReadTrigger",
"position": [
0,
192
],
"parameters": {
"feedUrl": "https://www.technologyreview.com/feed/",
"pollTimes": {
"item": [
{
"hour": 22
}
]
}
},
"typeVersion": 1
},
{
"id": "64fe0144-f553-442a-9c74-e61fcb0e2a0c",
"name": "入力URLを準備",
"type": "n8n-nodes-base.set",
"position": [
224,
288
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "5f28758b-5440-44da-af94-0a3c7f53db32",
"name": "inputUrl",
"type": "string",
"value": "={{ $json.link || $json.message.text }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "b168e57e-5af2-48dd-8442-8bf09b46a2fa",
"name": "Webコンテンツを抽出 (JinaAI)",
"type": "n8n-nodes-base.jinaAi",
"position": [
448,
288
],
"parameters": {
"url": "={{ $json.inputUrl }}",
"options": {},
"requestOptions": {}
},
"credentials": {
"jinaAiApi": {
"id": "2WpVyhvkXlQ9CB1x",
"name": "AI for Motu"
}
},
"typeVersion": 1
},
{
"id": "d3a5a132-8ae6-4c8c-bb6c-f010b7ed2b7e",
"name": "コンテンツをスレッドに変換",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
672,
288
],
"parameters": {
"text": "=Title: {{ $json.title }}\nDescription: {{ $json.description }}\n\nContent: {{ $json.content }}",
"batching": {},
"messages": {
"messageValues": [
{
"message": "=You are a social media strategist crafting high-performing Threads posts.\nYour mission: take the input content and turn it into a captivating, scroll-stopping Threads thread. Follow these principles:\n\n1. Hook Like a Pro\nOpen with a post that makes people stop scrolling—create intrigue without lying.\n\nUse curiosity-driven hooks such as:\n\n\"This changes everything about…\"\n\n\"Most people don’t realize that…\"\n\nA bold but truthful statement.\n\nPose questions or statements that leave a knowledge gap people want to fill.\n\nKeep it authentic—never trick your audience.\n\n2. Make It Flow\nBreak the content into short, clear, and connected posts.\n\nEvery post should push the reader to the next one.\n\nKeep language simple and conversational (unless technical accuracy is critical).\n\n3. Engage Without Overdoing It\nUse humor lightly—only if it fits naturally.\n\nAvoid emojis unless they genuinely enhance the point.\n\nKeep the core message intact while optimizing for retention and shareability.\n\n4. Exact Output Rules\nFormat:\nNever use a dash or em dash, consider substituting it with other punctuation like commas or rephrase the sentence to eliminate the interruption entirely\n\nWrap the entire thread in [THREADSTART] and [THREADEND].\n\nSeparate each post with -cutthread-.\nA post is maximum of 300 character\n\n\nExample:\n\n[THREADSTART]\nFirst post content here\n-cutthread-\nSecond post content here\n-cutthread-\nThird post content here\n-cutthread-\nlastpost must be:\n\"Read more on: {{ $('Prepare Input URL').item.json.inputUrl }}\n\nGet AI automation to make life easier on https://khaisa.studio\"\n[THREADEND]\n\n\n\nOutput only the transformed thread. No greetings, explanations, or meta-notes.\n"
}
]
},
"promptType": "define"
},
"typeVersion": 1.7
},
{
"id": "a7846af1-bfd9-480d-bfcf-822b1b0c3954",
"name": "次の投稿で返信",
"type": "n8n-nodes-bluesky-enhanced.bluesky",
"position": [
2144,
320
],
"parameters": {
"cid": "={{ $('Store Post URI and CID').first(0, $runIndex).json.cid }}",
"uri": "={{ $('Store Post URI and CID').first(0, $runIndex).json.uri }}",
"operation": "reply",
"replyText": "={{ $json.data }}"
},
"credentials": {
"blueskyApi": {
"id": "wMptX8gmJ4XyHZcj",
"name": "khaisastudio"
}
},
"typeVersion": 2
},
{
"id": "d19235e2-1afb-432d-a67c-54e2be4b4196",
"name": "次の返信前に待機",
"type": "n8n-nodes-base.wait",
"position": [
2368,
320
],
"webhookId": "7eedbf8e-f9d5-4e57-9460-731adb238217",
"parameters": {
"amount": 10
},
"typeVersion": 1.1
},
{
"id": "f25c81e6-e51d-49c0-88b5-8a6b5c05c549",
"name": "次の投稿前に待機 (初回)",
"type": "n8n-nodes-base.wait",
"position": [
2368,
128
],
"webhookId": "7eedbf8e-f9d5-4e57-9460-731adb238217",
"parameters": {
"amount": 10
},
"typeVersion": 1.1
},
{
"id": "42f0a200-6ab7-4b14-a106-96d3cd5c53d6",
"name": "投稿URIとCIDを保存",
"type": "n8n-nodes-base.set",
"position": [
2592,
320
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "917b7937-db3d-4cc8-974d-d294e99f6b2f",
"name": "uri",
"type": "string",
"value": "={{ $json.uri }}"
},
{
"id": "94914b8d-8def-4bcf-8882-6423c878b347",
"name": "cid",
"type": "string",
"value": "={{ $json.cid }}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "daa3032f-45c7-425f-87b8-5e9f813152c2",
"name": "初回投稿条件のチェック",
"type": "n8n-nodes-base.if",
"position": [
1920,
224
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "233a4b45-8983-42a1-9c18-5922cebc69ee",
"operator": {
"type": "number",
"operation": "lt"
},
"leftValue": "={{ $runIndex }}",
"rightValue": 1
}
]
}
},
"executeOnce": false,
"typeVersion": 2.2,
"alwaysOutputData": false
},
{
"id": "696904d2-25f1-4ae2-9a30-c97ee39109dd",
"name": "スレッドを投稿に分割",
"type": "n8n-nodes-base.splitOut",
"position": [
1472,
288
],
"parameters": {
"options": {},
"fieldToSplitOut": "data"
},
"typeVersion": 1
},
{
"id": "a291587b-eb4d-43e6-b167-37249a0d9fc1",
"name": "スレッドテキストをクリーンアップ",
"type": "n8n-nodes-base.code",
"position": [
1248,
288
],
"parameters": {
"jsCode": "// Mengambil teks dari input menggunakan sintaks yang Anda tentukan.\nconst fullText = $input.first().json.data\n\n// Regex untuk mengekstrak blok thread.\nconst regex = /\\[THREADSTART\\]([\\s\\S]*?)\\[THREADEND\\]/;\nconst match = fullText.match(regex);\n\n// Variabel untuk menampung hasil akhir.\nlet finalArray = [];\n\n// Jika blok thread ditemukan, proses isinya.\nif (match && match[1]) {\n const contentBlock = match[1];\n\n // Pisahkan string menjadi array, lalu bersihkan setiap elemen.\n finalArray = contentBlock\n .split('-cutthread-')\n .map(thread => thread.trim())\n .filter(thread => thread.length > 0);\n}\n\n// Kembalikan satu item baru dengan format yang Anda inginkan.\n// Stuktur { json: { ... } } adalah format standar n8n untuk item.\nreturn [{\n json: {\n data: finalArray\n }\n}];"
},
"typeVersion": 2
},
{
"id": "7bb36ded-ac68-4b04-803d-de3606a01bd1",
"name": "スレッドデータを準備",
"type": "n8n-nodes-base.set",
"position": [
1024,
288
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "4b70d452-77d7-4880-86a1-efa589defdec",
"name": "data",
"type": "string",
"value": "={{ $json.text }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "ccfde7ea-492e-4e60-8512-99a9975d08a2",
"name": "投稿をループ処理",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1696,
288
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "e45bae01-92bb-492d-b57d-5cd946bb39b3",
"name": "付箋",
"type": "n8n-nodes-base.stickyNote",
"position": [
192,
608
],
"parameters": {
"width": 528,
"height": 208,
"content": "## 📌 How to Get Credentials\n\n- **Telegram Bot** → Create a bot via [@BotFather](https://t.me/botfather), copy the *API Token*. \n- **JinaAI** → Sign up at [jina.ai](https://jina.ai), get your *API Key* from the dashboard. \n- **Google Gemini** → Enable the API at [Google AI Studio](https://makersuite.google.com/), generate an *API Key*. \n- **Bluesky** → Log in at [Bluesky](https://bsky.app), create an *App Password* in settings. \n"
},
"typeVersion": 1
},
{
"id": "ce910a82-f680-4712-be9b-430dfffafb7b",
"name": "付箋1",
"type": "n8n-nodes-base.stickyNote",
"position": [
768,
608
],
"parameters": {
"width": 528,
"height": 208,
"content": "## Error Handling\n\n- If JinaAI fails → check URL is valid & accessible. \n- If Gemini times out → reduce prompt size or simplify input. \n- If Bluesky rejects post → check App Password validity or rate limits. \n- Always test with a small sample before running full automation. \n"
},
"typeVersion": 1
},
{
"id": "d7bb0bac-1edc-4e23-aa24-0bd58624aa43",
"name": "Alt",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
816,
448
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "4CbQgQZVTRffRYMp",
"name": "Khaisa: aiformotu"
}
},
"typeVersion": 1.2
}
],
"pinData": {},
"connections": {
"3209ae09-810e-4b97-84fa-7a6a55c2bc51": {
"ai_languageModel": [
[
{
"node": "d3a5a132-8ae6-4c8c-bb6c-f010b7ed2b7e",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"9ab04e86-e205-4771-ade5-854fa6f1aa07": {
"main": [
[
{
"node": "f25c81e6-e51d-49c0-88b5-8a6b5c05c549",
"type": "main",
"index": 0
}
]
]
},
"a291587b-eb4d-43e6-b167-37249a0d9fc1": {
"main": [
[
{
"node": "696904d2-25f1-4ae2-9a30-c97ee39109dd",
"type": "main",
"index": 0
}
]
]
},
"64fe0144-f553-442a-9c74-e61fcb0e2a0c": {
"main": [
[
{
"node": "b168e57e-5af2-48dd-8442-8bf09b46a2fa",
"type": "main",
"index": 0
}
]
]
},
"7bb36ded-ac68-4b04-803d-de3606a01bd1": {
"main": [
[
{
"node": "a291587b-eb4d-43e6-b167-37249a0d9fc1",
"type": "main",
"index": 0
}
]
]
},
"ffd5f23b-9692-46f8-bbbf-3d636541a3c6": {
"main": [
[
{
"node": "64fe0144-f553-442a-9c74-e61fcb0e2a0c",
"type": "main",
"index": 0
}
]
]
},
"a7846af1-bfd9-480d-bfcf-822b1b0c3954": {
"main": [
[
{
"node": "d19235e2-1afb-432d-a67c-54e2be4b4196",
"type": "main",
"index": 0
}
]
]
},
"42f0a200-6ab7-4b14-a106-96d3cd5c53d6": {
"main": [
[
{
"node": "ccfde7ea-492e-4e60-8512-99a9975d08a2",
"type": "main",
"index": 0
}
]
]
},
"388e2b67-29a7-449d-9adf-3efb4040d4f3": {
"main": [
[
{
"node": "64fe0144-f553-442a-9c74-e61fcb0e2a0c",
"type": "main",
"index": 0
}
]
]
},
"d19235e2-1afb-432d-a67c-54e2be4b4196": {
"main": [
[
{
"node": "42f0a200-6ab7-4b14-a106-96d3cd5c53d6",
"type": "main",
"index": 0
}
]
]
},
"696904d2-25f1-4ae2-9a30-c97ee39109dd": {
"main": [
[
{
"node": "ccfde7ea-492e-4e60-8512-99a9975d08a2",
"type": "main",
"index": 0
}
]
]
},
"ccfde7ea-492e-4e60-8512-99a9975d08a2": {
"main": [
[],
[
{
"node": "daa3032f-45c7-425f-87b8-5e9f813152c2",
"type": "main",
"index": 0
}
]
]
},
"daa3032f-45c7-425f-87b8-5e9f813152c2": {
"main": [
[
{
"node": "9ab04e86-e205-4771-ade5-854fa6f1aa07",
"type": "main",
"index": 0
}
],
[
{
"node": "a7846af1-bfd9-480d-bfcf-822b1b0c3954",
"type": "main",
"index": 0
}
]
]
},
"d3a5a132-8ae6-4c8c-bb6c-f010b7ed2b7e": {
"main": [
[
{
"node": "7bb36ded-ac68-4b04-803d-de3606a01bd1",
"type": "main",
"index": 0
}
]
]
},
"b168e57e-5af2-48dd-8442-8bf09b46a2fa": {
"main": [
[
{
"node": "d3a5a132-8ae6-4c8c-bb6c-f010b7ed2b7e",
"type": "main",
"index": 0
}
]
]
},
"2ca69e66-0349-48c5-a631-148a1852c831": {
"main": [
[
{
"node": "64fe0144-f553-442a-9c74-e61fcb0e2a0c",
"type": "main",
"index": 0
}
]
]
},
"f25c81e6-e51d-49c0-88b5-8a6b5c05c549": {
"main": [
[
{
"node": "42f0a200-6ab7-4b14-a106-96d3cd5c53d6",
"type": "main",
"index": 0
}
]
]
},
"c83fb2d3-d1e9-4adf-b194-0c0fcb33c698": {
"main": [
[
{
"node": "64fe0144-f553-442a-9c74-e61fcb0e2a0c",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
上級 - AI要約, マルチモーダルAI
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
WordPress+ソーシャルメディア
GPT/GeminiとWordPressに基づく自動ブログ作成とマルチプラットフォーム公開
If
Set
Switch
+
If
Set
Switch
44 ノードKhairul Muhtadin
コンテンツ作成
Rag を使って自動で再掲載する
RAG、Jina AI、OpenAI を使用したWordPressへの自動職缺抽出と掲載
If
Set
Code
+
If
Set
Code
56 ノードKhairul Muhtadin
人事
GPT-4 と Airtable を使用してワークフローを自動のに記録・バックアップ
GPT-4 と Airtable を使用してワーキ弗洛ーを自動のに記録しバックアップする
If
N8n
Set
+
If
N8n
Set
38 ノードGuillaume Duvernay
AI要約
Google Maps、GPT-4、WhatsApp を使用したビジネスパートナー獲得の自動化
Google Maps、GPT-4、WhatsAppを使用したビジネスパートナーの開拓の自動化
If
Set
Code
+
If
Set
Code
64 ノードKhairul Muhtadin
AIチャットボット
自動職位リスト抽出&公開テンプレート
求人募集情報の自動リスト抽出と公開テンプレート
If
Set
Code
+
If
Set
Code
53 ノードKhairul Muhtadin
人事
毎日の WhatsApp グループ スマート分析:GPT-4.1 による分析と音声メッセージの transcrição
毎日の WhatsApp グループ インタラクティブ分析:GPT-4.1 分析と音声メッセージ文字起こし
If
Set
Code
+
If
Set
Code
52 ノードDaniel Lianes
その他