Usar JinaAI y Gemini-GPT para convertir artículos en hilos de Bluesky
Este es unAI Summarization, Multimodal AIflujo de automatización del dominio deautomatización que contiene 21 nodos.Utiliza principalmente nodos como If, Set, Code, Wait, JinaAi. Convertir artículos en hilos de Bluesky usando JinaAI y Gemini/GPT
- •Bot Token de Telegram
- •Clave de API de OpenAI
- •Clave de API de Google Gemini
Nodos utilizados (21)
Categoría
{
"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": "Crear una publicación",
"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 Feed - Tendencias de IA",
"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 Feed - 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 Feed - 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": "Preparar URL de entrada",
"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": "Extraer contenido 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": "Transformar contenido a hilo",
"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": "Responder con siguiente publicación",
"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": "Esperar antes de la siguiente respuesta",
"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": "Esperar antes de la siguiente publicación (inicial)",
"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": "Almacenar URI y CID de la publicación",
"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": "Verificar condición de primera publicación",
"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": "Dividir hilo en publicaciones",
"type": "n8n-nodes-base.splitOut",
"position": [
1472,
288
],
"parameters": {
"options": {},
"fieldToSplitOut": "data"
},
"typeVersion": 1
},
{
"id": "a291587b-eb4d-43e6-b167-37249a0d9fc1",
"name": "Limpiar texto del hilo",
"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": "Preparar datos del hilo",
"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": "Iterar por las publicaciones del hilo",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1696,
288
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "e45bae01-92bb-492d-b57d-5cd946bb39b3",
"name": "Nota adhesiva",
"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": "Nota adhesiva1",
"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
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Avanzado - Resumen de IA, IA Multimodal
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
Khairul Muhtadin
@khmuhtadinCompartir este flujo de trabajo