基于URL使用AI、Telegram和多平台发布自动生成社交媒体帖子
高级
这是一个Content Creation, Multimodal AI领域的自动化工作流,包含 42 个节点。主要使用 If, Set, Code, Merge, Function 等节点。 基于URL使用AI、Telegram和多平台发布自动生成社交媒体帖子
前置要求
- •LinkedIn API 凭证
- •Telegram Bot Token
- •可能需要目标 API 的认证凭证
- •Google Sheets API 凭证
- •OpenAI API Key
- •Google Gemini API Key
使用的节点 (42)
工作流预览
可视化展示节点连接关系,支持缩放和平移
无法加载工作流预览
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"nodes": [
{
"name": "Telegram 机器人触发器",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
0,
544
],
"webhookId": "9ea69b50-b6ca-4968-918a-8ca35b8ad7d7",
"parameters": {
"updates": [
"message"
],
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "",
"name": "YOUR_TELEGRAM_API_CREDENTIAL"
}
},
"typeVersion": 1
},
{
"name": "工作流概览",
"type": "n8n-nodes-base.stickyNote",
"position": [
-576,
336
],
"parameters": {
"width": 389,
"height": 384,
"content": "# 📱 Telegram URL 处理器"
},
"typeVersion": 1
},
{
"name": "提取 URL",
"type": "n8n-nodes-base.function",
"position": [
448,
448
],
"parameters": {
"functionCode": "// Extract URL from Telegram message\nconst message = $json.message.text;\nconst urlRegex = /(https?:\\/\\/[^\\s]+)/g;\nconst urls = message.match(urlRegex);\n\nif (!urls || urls.length === 0) {\n throw new Error('No URL found in the message');\n}\n\nconst extractedUrl = urls[0];\nconst chatId = $json.message.chat.id;\nconst messageId = $json.message.message_id;\nconst timestamp = new Date().toISOString();\n\nreturn {\n json: {\n url: extractedUrl,\n chatId: chatId,\n messageId: messageId,\n timestamp: timestamp,\n originalMessage: message\n }\n};"
},
"typeVersion": 1
},
{
"name": "获取 URL 内容",
"type": "n8n-nodes-base.httpRequest",
"position": [
896,
448
],
"parameters": {
"url": "={{ $node['Extract URL'].json.url }}",
"options": {
"redirect": {
"redirect": {}
},
"response": {
"response": {
"fullResponse": true
}
}
}
},
"typeVersion": 4.2
},
{
"name": "提取文本内容",
"type": "n8n-nodes-base.function",
"position": [
1120,
448
],
"parameters": {
"functionCode": "// Extract text content from HTML\nconst html = $json.data;\nconst url = $node['Extract URL'].json.url;\n\n// Simple HTML to text conversion\nlet textContent = html\n .replace(/<script[^>]*>.*?<\\/script>/gi, '')\n .replace(/<style[^>]*>.*?<\\/style>/gi, '')\n .replace(/<[^>]*>/g, ' ')\n .replace(/\\s+/g, ' ')\n .trim();\n\n// Extract title (simple approach)\nconst titleMatch = html.match(/<title[^>]*>([^<]+)<\\/title>/i);\nconst title = titleMatch ? titleMatch[1].trim() : 'Article';\n\n// Limit content length for AI processing\nif (textContent.length > 8000) {\n textContent = textContent.substring(0, 8000) + '...';\n}\n\nif (textContent.length < 100) {\n throw new Error('Could not extract meaningful content from the URL');\n}\n\nreturn {\n json: {\n url: url,\n title: title,\n content: textContent,\n wordCount: textContent.split(' ').length\n }\n};"
},
"typeVersion": 1
},
{
"name": "AI 处理",
"type": "n8n-nodes-base.stickyNote",
"position": [
1328,
64
],
"parameters": {
"width": 280,
"height": 864,
"content": "# 🤖 AI 内容生成"
},
"typeVersion": 1
},
{
"name": "发布到 Facebook",
"type": "n8n-nodes-base.httpRequest",
"position": [
3520,
276
],
"parameters": {
"url": "=https://graph.facebook.com/v19.0/[INSERT_YOUR_SITE_ID]/photos",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "form-urlencoded",
"sendHeaders": true,
"authentication": "predefinedCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "caption",
"value": "={{ $input.first().json.message.content }}"
},
{
"name": "=url",
"value": "={{ $item(0).$node[\"Supabase Public URL\"].json[\"public_url\"] }}"
},
{
"value": "="
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/x-www-form-urlencoded"
}
]
},
"nodeCredentialType": "facebookGraphApi"
},
"credentials": {
"facebookGraphApi": {
"id": "",
"name": "YOUR_FACEBOOK_GRAPH_API_CREDENTIAL"
}
},
"typeVersion": 4.2
},
{
"name": "发布到 Instagram",
"type": "n8n-nodes-base.httpRequest",
"position": [
3520,
468
],
"parameters": {
"url": "=https://graph.facebook.com/v23.0/[INSERT_YOUR_SITE_ID]/media",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "form-urlencoded",
"sendHeaders": true,
"authentication": "predefinedCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "image_url",
"value": "={{ $item(0).$node[\"Supabase Public URL\"].json[\"public_url\"] }}"
},
{
"name": "caption",
"value": "={{ $input.first().json.message.content }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/x-www-form-urlencoded"
}
]
},
"nodeCredentialType": "facebookGraphApi"
},
"credentials": {
"facebookGraphApi": {
"id": "",
"name": "YOUR_FACEBOOK_GRAPH_API_CREDENTIAL"
}
},
"typeVersion": 4.2
},
{
"name": "最终状态更新",
"type": "n8n-nodes-base.googleSheets",
"position": [
4864,
448
],
"parameters": {
"columns": {
"value": {
"Image URL": "={{ $item(0).$node[\"Supabase Public URL\"].json[\"public_url\"] }}",
"Source URL": "={{ $node[\"Telegram Bot Trigger\"].json.message.text }}",
"Facebook URL": "={{ $json.facebook_post_url }}",
"LinkedIn URL": "={{ $json.linkedin_post_url }}",
"Instagram URL": "={{ $json.instagram_post_url }}",
"Facebook Content": "={{ $node[\"Facebook Post\"].json.message.content }}",
"Instagram Content": "={{ $node[\"Instagram Post\"].json.message.content }}",
"LinkedIn Content ": "={{ $node[\"LinkedIn Post\"].json.message.content }}"
},
"schema": [
{
"id": "Source URL",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Source URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Facebook Content",
"type": "string",
"display": true,
"required": false,
"displayName": "Facebook Content",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Facebook URL",
"type": "string",
"display": true,
"required": false,
"displayName": "Facebook URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Instagram Content",
"type": "string",
"display": true,
"required": false,
"displayName": "Instagram Content",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Instagram URL",
"type": "string",
"display": true,
"required": false,
"displayName": "Instagram URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "LinkedIn Content ",
"type": "string",
"display": true,
"required": false,
"displayName": "LinkedIn Content ",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "LinkedIn URL",
"type": "string",
"display": true,
"required": false,
"displayName": "LinkedIn URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Image URL",
"type": "string",
"display": true,
"required": false,
"displayName": "Image URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Source URL"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1b7k0A06DY_oI3Ex6fR48FN0PXK6g59U4714wBYUCezw/edit#gid=0",
"cachedResultName": "Arkusz1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1b7k0A06DY_oI3Ex6fR48FN0PXK6g59U4714wBYUCezw",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1b7k0A06DY_oI3Ex6fR48FN0PXK6g59U4714wBYUCezw/edit?usp=drivesdk",
"cachedResultName": "n8n - Telegram Social Media Content Automation"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "",
"name": "YOUR_GOOGLE_SHEETS_OAUTH2_API_CREDENTIAL"
}
},
"typeVersion": 4,
"alwaysOutputData": true
},
{
"name": "发布阶段",
"type": "n8n-nodes-base.stickyNote",
"position": [
4568,
-44
],
"parameters": {
"height": 652,
"content": "# 📱 社交媒体发布"
},
"typeVersion": 1
},
{
"name": "发布到 Instagram1",
"type": "n8n-nodes-base.httpRequest",
"position": [
3744,
468
],
"parameters": {
"url": "=https://graph.facebook.com/v23.0/[INSERT_YOUR_SITE_ID]/media_publish",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "form-urlencoded",
"sendHeaders": true,
"authentication": "predefinedCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "creation_id",
"value": "={{ $json.id }}"
},
{
"name": "access_token",
"value": "={{ $credentials.facebookGraph.accessToken }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/x-www-form-urlencoded"
}
]
},
"nodeCredentialType": "facebookGraphApi"
},
"credentials": {
"facebookGraphApi": {
"id": "",
"name": "YOUR_FACEBOOK_GRAPH_API_CREDENTIAL"
}
},
"typeVersion": 4.2
},
{
"name": "Facebook 帖子",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1344,
368
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-nano",
"cachedResultName": "GPT-4.1-NANO"
},
"options": {},
"messages": {
"values": [
{
"content": "=Based on the provided article content, create a Facebook post that is professional yet approachable, ranging from 100-200 words. The tone should be informative and engaging, with occasional light humor when appropriate to the topic. Focus on the key takeaway or most interesting insight from the article. Include a clear call-to-action that encourages meaningful discussion in the comments. The post should feel conversational and relatable while maintaining credibility. If the topic allows, incorporate a subtle touch of humor or a relatable analogy that your professional network would appreciate. Keep the language of the original text. End with a thoughtful question to spark engagement.: {{ $('Extract Text Content').item.json.content }}"
}
]
}
},
"credentials": {
"openAiApi": {
"id": "",
"name": "YOUR_OPEN_AI_API_CREDENTIAL"
}
},
"typeVersion": 1.8
},
{
"name": "Instagram 帖子",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1344,
560
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-nano",
"cachedResultName": "GPT-4.1-NANO"
},
"options": {},
"messages": {
"values": [
{
"content": "=Transform the article content into a punchy Instagram post of 50-80 words maximum. Use a casual, energetic tone with 2-3 relevant emojis strategically placed. Include wordplay, puns, or clever turns of phrase when they fit naturally. Focus on one compelling hook or surprising fact from the article. Write in short, impactful sentences that work well with Instagram's visual-first format. Include 3-5 relevant hashtags at the end. The post should feel fresh, scrollable, and shareable while still delivering value from the original content. Keep the languafe of the original: {{ $('Extract Text Content').item.json.content }}"
}
]
}
},
"credentials": {
"openAiApi": {
"id": "",
"name": "YOUR_OPEN_AI_API_CREDENTIAL"
}
},
"typeVersion": 1.8
},
{
"name": "LinkedIn 帖子",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1344,
744
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-nano",
"cachedResultName": "GPT-4.1-NANO"
},
"options": {},
"messages": {
"values": [
{
"content": "=Create an engaging, professional LinkedIn post (max 400 characters) based on this article: {{ $('Extract Text Content').item.json.content }}"
}
]
}
},
"credentials": {
"openAiApi": {
"id": "",
"name": "YOUR_OPEN_AI_API_CREDENTIAL"
}
},
"typeVersion": 1.8
},
{
"name": "合并",
"type": "n8n-nodes-base.merge",
"position": [
3296,
276
],
"parameters": {},
"typeVersion": 3.2
},
{
"name": "合并1",
"type": "n8n-nodes-base.merge",
"position": [
3296,
468
],
"parameters": {},
"typeVersion": 3.2
},
{
"name": "合并2",
"type": "n8n-nodes-base.merge",
"position": [
3296,
888
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.2
},
{
"name": "如果消息包含 URL",
"type": "n8n-nodes-base.if",
"position": [
224,
544
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "dc0117b8-213b-4c6f-934e-583fe2ec7d45",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "=={{ ($json.message.text || '').match(/https?:\\/\\/\\S+/) !== null }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"name": "Telegram",
"type": "n8n-nodes-base.telegram",
"position": [
448,
640
],
"webhookId": "7e3d2ccb-9161-43d5-99c6-a2286541886a",
"parameters": {
"text": "You can't do this here. You need to upload a URL with an article.",
"chatId": "={{ $json.message.chat.id }}",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "",
"name": "YOUR_TELEGRAM_API_CREDENTIAL"
}
},
"typeVersion": 1.2
},
{
"name": "代码",
"type": "n8n-nodes-base.code",
"position": [
3968,
272
],
"parameters": {
"jsCode": "const id = $json.post_id || $json.id || '';\nconst parts = id.split('_');\nconst postId = parts.length > 1 ? parts[1] : '';\nconst facebookUsername = '<YOUR_FACEBOOK_PAGE_USERNAME>';\nconst facebookPostUrl = postId\n ? `https://facebook.com/${facebookUsername}/posts/${postId}`\n : '';\n\nreturn {\n json: {\n facebook_post_id: postId,\n facebook_post_url: facebookPostUrl,\n facebook_published: !!postId\n }\n};\n"
},
"typeVersion": 2
},
{
"name": "代码1",
"type": "n8n-nodes-base.code",
"position": [
4192,
468
],
"parameters": {
"jsCode": "const mediaId = $json.id || '';\nreturn {\n json: {\n instagram_post_id: mediaId,\n instagram_post_url: $input.first().json.permalink, // nie mamy shortcode :(\n instagram_published: !!mediaId\n }\n};\n"
},
"typeVersion": 2
},
{
"name": "LinkedIn",
"type": "n8n-nodes-base.linkedIn",
"position": [
3744,
888
],
"parameters": {
"text": "={{ $('LinkedIn Post').item.json.message.content }}",
"person": "wZFKPz_aPr",
"additionalFields": {},
"shareMediaCategory": "IMAGE"
},
"credentials": {
"linkedInOAuth2Api": {
"id": "",
"name": "YOUR_LINKED_IN_OAUTH2_API_CREDENTIAL"
}
},
"typeVersion": 1
},
{
"name": "二进制文件",
"type": "n8n-nodes-base.httpRequest",
"position": [
3520,
888
],
"parameters": {
"url": "={{ $json.public_url }}",
"options": {
"response": {
"response": {
"responseFormat": "file"
}
}
}
},
"typeVersion": 4.2
},
{
"name": "合并3",
"type": "n8n-nodes-base.merge",
"position": [
4416,
432
],
"parameters": {
"numberInputs": 3
},
"typeVersion": 3.2
},
{
"name": "获取帖子 URL",
"type": "n8n-nodes-base.httpRequest",
"position": [
3968,
468
],
"parameters": {
"url": "={{ `https://graph.facebook.com/${$json.fbApiVersion || 'v19.0'}/${$json.id}?fields=permalink` }}",
"options": {},
"sendHeaders": true,
"authentication": "predefinedCredentialType",
"headerParameters": {
"parameters": [
{}
]
},
"nodeCredentialType": "facebookGraphApi"
},
"credentials": {
"facebookGraphApi": {
"id": "",
"name": "YOUR_FACEBOOK_GRAPH_API_CREDENTIAL"
}
},
"typeVersion": 4.2
},
{
"name": "代码2",
"type": "n8n-nodes-base.code",
"position": [
3968,
888
],
"parameters": {
"jsCode": "const urn = $json.urn || ''; // example: urn:li:share:7342310895114420224\nconst postId = urn.split(':').pop(); // get the numeric ID\n\nconst linkedinPostUrl = postId \n ? `https://www.linkedin.com/feed/update/${urn.replace('urn:li:', '').replace(/:/g, '%3A')}/`\n : '';\n\nreturn {\n json: {\n linkedin_post_id: postId,\n linkedin_post_url: linkedinPostUrl,\n linkedin_published: !!postId\n }\n};\n"
},
"typeVersion": 2
},
{
"name": "代码3",
"type": "n8n-nodes-base.code",
"position": [
4640,
448
],
"parameters": {
"jsCode": "return [\n {\n json: Object.assign({}, ...items.map(item => item.json))\n }\n];\n"
},
"typeVersion": 2
},
{
"name": "编辑字段",
"type": "n8n-nodes-base.set",
"position": [
2272,
716
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "bb4004a1-9c8b-4603-b8ed-227e50940f87",
"name": "filename",
"type": "string",
"value": "={{$now.toMillis()}}.png"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"name": "生成图片1",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
2048,
716
],
"parameters": {
"model": "gpt-image-1",
"prompt": "={{ $json.text }}",
"options": {
"size": "1024x1024",
"quality": "high"
},
"resource": "image"
},
"credentials": {
"openAiApi": {
"id": "",
"name": "YOUR_OPEN_AI_API_CREDENTIAL"
}
},
"typeVersion": 1.8
},
{
"name": "基础 LLM 链2",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
1696,
716
],
"parameters": {
"text": "=Wygeneruj prompt dla Recraft, tak, aby wygenerował profesjonalny obraz na social media (Facebook, Instagram) do tego TEMATU: {{ $json.text }} Pamiętaj, że obraz ma być interesujący, pasujący do bloga technologicznego, na przykład fotorealistyczne fotki ekspertów w biurze, w terenie, zdjęcia konkretnych sprzetow, technologii czy koncepcji opisanych w artykule. Obrazki mają być esetyczne, wywołujące pozytywne uczucia. Tematyka i wygląd obrazka ma ściśle wiązać się z treścią zadanego TEMATU. W Prawym dolnym rogu ma być mały napis SmartCamp.AI. Pamiętaj, że to jest prompt, który później będzie wklejany do body w api, wiec unikaj elementów, które moga popsuć json (Nie możesz używać cudzysłowów). Wygeneruj sam prompt, bez wstępu, bez cudzysłowów. Cała wiadomość musi mieć mniej niż 1000 znaków.",
"batching": {},
"promptType": "define"
},
"typeVersion": 1.7
},
{
"name": "发送照片消息",
"type": "n8n-nodes-base.telegram",
"position": [
5088,
448
],
"webhookId": "90e30a0b-989d-4a48-9779-d83dda1ca336",
"parameters": {
"file": "={{ $item(0).$node[\"Supabase Public URL\"].json[\"public_url\"] }}",
"chatId": "={{ $node[\"Telegram Bot Trigger\"].json.message.chat.id }}",
"operation": "sendPhoto",
"additionalFields": {
"caption": "=Content published!\n\nFacebook Post: {{ $node[\"Code3\"].json.facebook_post_url }}\n\nInstagram Post: {{ $node[\"Code3\"].json.instagram_post_url }}\n\nLinkedIn Post: {{ $node[\"Code3\"].json.linkedin_post_url }}\n"
}
},
"credentials": {
"telegramApi": {
"id": "",
"name": "YOUR_TELEGRAM_API_CREDENTIAL"
}
},
"typeVersion": 1.2
},
{
"name": "在表格中追加或更新行",
"type": "n8n-nodes-base.googleSheets",
"position": [
672,
448
],
"parameters": {
"columns": {
"value": {
"Source URL": "={{ $json.url }}"
},
"schema": [
{
"id": "Source URL",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Source URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Facebook Content",
"type": "string",
"display": true,
"required": false,
"displayName": "Facebook Content",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Facebook URL",
"type": "string",
"display": true,
"required": false,
"displayName": "Facebook URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Instagram Content",
"type": "string",
"display": true,
"required": false,
"displayName": "Instagram Content",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Instagram URL",
"type": "string",
"display": true,
"required": false,
"displayName": "Instagram URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "LinkedIn Content ",
"type": "string",
"display": true,
"required": false,
"displayName": "LinkedIn Content ",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "LinkedIn URL",
"type": "string",
"display": true,
"required": false,
"displayName": "LinkedIn URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Image URL",
"type": "string",
"display": true,
"required": false,
"displayName": "Image URL",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Source URL"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1b7k0A06DY_oI3Ex6fR48FN0PXK6g59U4714wBYUCezw/edit#gid=0",
"cachedResultName": "Arkusz1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1b7k0A06DY_oI3Ex6fR48FN0PXK6g59U4714wBYUCezw",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1b7k0A06DY_oI3Ex6fR48FN0PXK6g59U4714wBYUCezw/edit?usp=drivesdk",
"cachedResultName": "n8n - Telegram Social Media Content Automation"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "",
"name": "YOUR_GOOGLE_SHEETS_OAUTH2_API_CREDENTIAL"
}
},
"typeVersion": 4.6
},
{
"name": "凭据",
"type": "n8n-nodes-base.stickyNote",
"position": [
-560,
768
],
"parameters": {
"width": 360,
"height": 172,
"content": "🔐 凭据"
},
"typeVersion": 1
},
{
"name": "输入",
"type": "n8n-nodes-base.stickyNote",
"position": [
-132,
316
],
"parameters": {
"width": 360,
"height": 388,
"content": "🧪 输入假设"
},
"typeVersion": 1
},
{
"name": "图像流水线",
"type": "n8n-nodes-base.stickyNote",
"position": [
2240,
592
],
"parameters": {
"width": 920,
"height": 284,
"content": "🖼️ 图像处理"
},
"typeVersion": 1
},
{
"name": "表格映射",
"type": "n8n-nodes-base.stickyNote",
"position": [
604,
268
],
"parameters": {
"width": 232,
"height": 340,
"content": "📊 表格映射"
},
"typeVersion": 1
},
{
"name": "Google Gemini",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
1768,
940
],
"parameters": {
"options": {}
},
"credentials": {
"googlePalmApi": {
"id": "",
"name": "YOUR_GOOGLE_PALM_API_CREDENTIAL"
}
},
"typeVersion": 1
},
{
"name": "发布阶段1",
"type": "n8n-nodes-base.stickyNote",
"position": [
4832,
-48
],
"parameters": {
"width": 400,
"height": 652,
"content": "# 最终步骤"
},
"typeVersion": 1
},
{
"name": "上传到 Supabase(使用凭据)",
"type": "n8n-nodes-base.httpRequest",
"position": [
2720,
716
],
"parameters": {
"url": "={{ ($json.supabase_base_url || '').trim().replace(/\\/+$/,'') + '/storage/v1/object/' + ($json.bucket || 'social-media-ai-generated') + '/' + $json.filename }}",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "binaryData",
"sendHeaders": true,
"authentication": "predefinedCredentialType",
"headerParameters": {
"parameters": [
{
"name": "content-type",
"value": "=={{ $binary.data?.mimeType || 'application/octet-stream' }}"
},
{
"name": "x-upsert",
"value": "true"
}
]
},
"inputDataFieldName": "data",
"nodeCredentialType": "supabaseApi"
},
"credentials": {
"supabaseApi": {
"id": "",
"name": "YOUR_SUPABASE_API_CREDENTIAL"
}
},
"typeVersion": 4.2
},
{
"name": "Supabase 配置",
"type": "n8n-nodes-base.set",
"position": [
2496,
716
],
"parameters": {
"options": {
"stripBinary": false
},
"assignments": {
"assignments": [
{
"id": "1dbcf7c4-2e01-4df2-874e-93868b74a519",
"name": "bucket",
"type": "string",
"value": "social-media-ai-generated"
},
{
"id": "4e88d63f-01de-4265-8271-fd0ed637b5fd",
"name": "filename",
"type": "string",
"value": "={{ $json.filename }}"
},
{
"id": "b5579b42-bc9e-44d9-b997-2f1e505c0692",
"name": "link_ttl_seconds",
"type": "string",
"value": "3600"
},
{
"id": "ab260017-3161-4cbf-ad86-84d23a94e780",
"name": "supabase_base_url",
"type": "string",
"value": "https://api.supabase.smartcamp.ai"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"name": "Supabase 公共 URL",
"type": "n8n-nodes-base.set",
"position": [
2960,
720
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "cdc9fb52-3d91-4af4-9ff4-8fb15e6543c4",
"name": "public_url",
"type": "string",
"value": "={{ $node[\"Supabase Config\"].json.supabase_base_url.toString().trim().replace(/\\/+$/,'') + \"/storage/v1/object/public/\" + encodeURIComponent($node[\"Supabase Config\"].json.bucket) + \"/\" + encodeURIComponent($node[\"Supabase Config\"].json.filename) }}"
}
]
}
},
"typeVersion": 3.4
},
{
"name": "发布阶段2",
"type": "n8n-nodes-base.stickyNote",
"position": [
3456,
-16
],
"parameters": {
"width": 432,
"height": 652,
"content": "# Instagram 和 Facebook 站点 ID"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"timezone": "Europe/Warsaw",
"callerPolicy": "workflowsFromSameOwner",
"errorWorkflow": "yGK0VwXqcskQjGJG",
"executionOrder": "v1",
"timeSavedPerExecution": 20
},
"connections": {
"Code": {
"main": [
[
{
"node": "Merge3",
"type": "main",
"index": 0
}
]
]
},
"Code1": {
"main": [
[
{
"node": "Merge3",
"type": "main",
"index": 1
}
]
]
},
"Code2": {
"main": [
[
{
"node": "Merge3",
"type": "main",
"index": 2
}
]
]
},
"Code3": {
"main": [
[
{
"node": "Final Status Update",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "Post to Facebook",
"type": "main",
"index": 0
}
]
]
},
"Merge1": {
"main": [
[
{
"node": "Post to Instagram",
"type": "main",
"index": 0
}
]
]
},
"Merge2": {
"main": [
[
{
"node": "Binary File",
"type": "main",
"index": 0
}
]
]
},
"Merge3": {
"main": [
[
{
"node": "Code3",
"type": "main",
"index": 0
}
]
]
},
"LinkedIn": {
"main": [
[
{
"node": "Code2",
"type": "main",
"index": 0
}
]
]
},
"Binary File": {
"main": [
[
{
"node": "LinkedIn",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields": {
"main": [
[
{
"node": "Supabase Config",
"type": "main",
"index": 0
}
]
]
},
"Extract URL": {
"main": [
[
{
"node": "Append or update row in sheet",
"type": "main",
"index": 0
}
]
]
},
"Get Post URL": {
"main": [
[
{
"node": "Code1",
"type": "main",
"index": 0
}
]
]
},
"Facebook Post": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Google Gemini": {
"ai_languageModel": [
[
{
"node": "Basic LLM Chain2",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"LinkedIn Post": {
"main": [
[
{
"node": "Basic LLM Chain2",
"type": "main",
"index": 0
},
{
"node": "Merge2",
"type": "main",
"index": 0
}
]
]
},
"Instagram Post": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 0
}
]
]
},
"Supabase Config": {
"main": [
[
{
"node": "Upload to Supabase (uses credentials)",
"type": "main",
"index": 0
}
]
]
},
"Basic LLM Chain2": {
"main": [
[
{
"node": "Generate an image1",
"type": "main",
"index": 0
}
]
]
},
"Post to Facebook": {
"main": [
[
{
"node": "Code",
"type": "main",
"index": 0
}
]
]
},
"Fetch URL Content": {
"main": [
[
{
"node": "Extract Text Content",
"type": "main",
"index": 0
}
]
]
},
"Post to Instagram": {
"main": [
[
{
"node": "Post to Instagram1",
"type": "main",
"index": 0
}
]
]
},
"Generate an image1": {
"main": [
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
]
]
},
"Post to Instagram1": {
"main": [
[
{
"node": "Get Post URL",
"type": "main",
"index": 0
}
]
]
},
"Final Status Update": {
"main": [
[
{
"node": "Send a photo message",
"type": "main",
"index": 0
}
]
]
},
"Supabase Public URL": {
"main": [
[
{
"node": "Merge2",
"type": "main",
"index": 1
},
{
"node": "Merge1",
"type": "main",
"index": 1
},
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Extract Text Content": {
"main": [
[
{
"node": "Facebook Post",
"type": "main",
"index": 0
},
{
"node": "Instagram Post",
"type": "main",
"index": 0
},
{
"node": "LinkedIn Post",
"type": "main",
"index": 0
}
]
]
},
"Telegram Bot Trigger": {
"main": [
[
{
"node": "If message contains URL",
"type": "main",
"index": 0
}
]
]
},
"If message contains URL": {
"main": [
[
{
"node": "Extract URL",
"type": "main",
"index": 0
}
],
[
{
"node": "Telegram",
"type": "main",
"index": 0
}
]
]
},
"Append or update row in sheet": {
"main": [
[
{
"node": "Fetch URL Content",
"type": "main",
"index": 0
}
]
]
},
"Upload to Supabase (uses credentials)": {
"main": [
[
{
"node": "Supabase Public URL",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 内容创作, 多模态 AI
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
RSS发布到Facebook和Instagram
通过AI摘要和图像生成自动化RSS到社交媒体发布
If
Set
Code
+11
34 节点Karol
内容创作
LinkedIn 自动化
使用Gemini AI和审批流程将Telegram消息转换为专业LinkedIn帖子
If
Set
Code
+13
54 节点Sateesh
内容创作
LinkedIn和X病毒内容自动引擎
使用AI生成和发布自动创建LinkedIn和X的病毒内容
If
Set
Wait
+26
156 节点Diptamoy Barman
内容创作
通过 Telegram 使用 Pollinations 生成图像和 Gemini 2.5 生成博客文章
通过 Telegram 使用 Pollinations 生成图像和 Gemini 2.5 生成博客文章
If
Set
Code
+9
34 节点Fahmi Oktafian
内容创作
使用 Gemini、Tavily 和人工审核生成 SEO 优化 WordPress 博客
使用 Gemini、Tavily 和人工审核生成 SEO 优化 WordPress 博客
If
Set
Code
+12
38 节点Aryan Shinde
内容创作
AI驱动视频创作与上传至Instagram、TikTok和YouTube
从云端硬盘进行AI驱动视频创作并上传至Instagram、TikTok和YouTube
If
Set
Code
+14
53 节点DevCode Journey
内容创作