RSSフィードからニュースを再利用し、PostPulseで発信
これはContent Creation, Multimodal AI分野の自動化ワークフローで、25個のノードを含みます。主にIf, Wait, Merge, Function, RssFeedReadなどのノードを使用。 PostPulseを使ってRSSニュースをマルチプラットフォームのSNSへ自動投稿
- •特別な前提条件なし、インポートしてすぐに使用可能
{
"id": "lTO5ex53oKKkeT0d",
"meta": {
"instanceId": "bf246f909c2b838648f333c22c98b9bde186937bc00a5918bd9a27f4ec3914d3"
},
"name": "Repurpose News from RSS Feed and Publish via PostPulse",
"tags": [],
"nodes": [
{
"id": "5225f3e9-d85f-4e3e-900a-e67fbc5ea7ac",
"name": "スケジュールトリガー",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-48,
-144
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 9
}
]
}
},
"typeVersion": 1.2
},
{
"id": "b72c3c2f-7b1d-4925-9dca-720f2353b793",
"name": "条件分岐",
"type": "n8n-nodes-base.if",
"position": [
720,
0
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "bff36021-96e1-421e-9218-81e2117786b1",
"operator": {
"type": "dateTime",
"operation": "afterOrEquals"
},
"leftValue": "={{ $json.pubDate }}",
"rightValue": "={{ $now.minus(1, 'days').startOf('day') }}"
},
{
"id": "8acc637f-1103-4c4f-a80e-428020b3cf41",
"operator": {
"type": "dateTime",
"operation": "beforeOrEquals"
},
"leftValue": "={{ $json.pubDate }}",
"rightValue": "={{ $now.minus(1, 'days').endOf('day') }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "3442e809-c9a9-45a0-9088-72a1810355b1",
"name": "接続済みアカウント取得",
"type": "@postpulse/n8n-nodes-postpulse.postPulse",
"position": [
784,
480
],
"parameters": {
"resource": "account"
},
"credentials": {
"postPulseOAuth2Api": {
"id": "nrEYznJjQaKGajyK",
"name": "PostPulse account"
}
},
"typeVersion": 1
},
{
"id": "2d2d2c5f-32b3-4b7a-8a49-a52e8ac9dea1",
"name": "メディアチェック条件分岐",
"type": "n8n-nodes-base.if",
"position": [
912,
0
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "media-check-condition",
"operator": {
"type": "string",
"operation": "notEmpty"
},
"leftValue": "={{ (\n $json.enclosure?.url ||\n $json['media:content']?.url || \n $json['media:thumbnail']?.url ||\n ($json.description && $json.description.match(/<img[^>]+src=[\"']([^\"']+)[\"']/i)?.[1]) ||\n ($json['content:encoded'] && $json['content:encoded'].match(/<img[^>]+src=[\"']([^\"']+)[\"']/i)?.[1])\n ) }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "13391fd1-8164-4bc2-b5cd-438c507dffa5",
"name": "RSSフィード読み取り",
"type": "n8n-nodes-base.rssFeedRead",
"position": [
336,
-64
],
"parameters": {
"url": "https://rss.unian.ua/site/gplay_56_ukr.rss",
"options": {}
},
"typeVersion": 1
},
{
"id": "eab7ec94-76a3-4840-a89e-f77f2e1991ef",
"name": "マージ(メディアなし+アカウント)",
"type": "n8n-nodes-base.merge",
"position": [
1152,
224
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineAll"
},
"typeVersion": 3.2
},
{
"id": "6edb85e6-e42f-486c-8a51-035ea59dbe96",
"name": "メディアアップロード",
"type": "@postpulse/n8n-nodes-postpulse.postPulse",
"position": [
1104,
-176
],
"parameters": {
"url": "={{ $json.enclosure.url }}",
"resource": "media",
"filenameHint": "={{ $json.enclosure.url.split(\"/\").pop() }}",
"uploadSource": "url"
},
"credentials": {
"postPulseOAuth2Api": {
"id": "nrEYznJjQaKGajyK",
"name": "PostPulse account"
}
},
"typeVersion": 1
},
{
"id": "13fd97d3-c730-4ad1-9311-58fe5f385c10",
"name": "アップロードステータス取得",
"type": "@postpulse/n8n-nodes-postpulse.postPulse",
"position": [
1312,
-208
],
"parameters": {
"importId": "={{ $json.id }}",
"resource": "media",
"operation": "getUploadStatus"
},
"credentials": {
"postPulseOAuth2Api": {
"id": "nrEYznJjQaKGajyK",
"name": "PostPulse account"
}
},
"typeVersion": 1
},
{
"id": "3b3c7fdb-a992-43ac-8478-e42a7e6ec7d9",
"name": "マージ1",
"type": "n8n-nodes-base.merge",
"position": [
2160,
-64
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineAll"
},
"typeVersion": 3.2
},
{
"id": "1d049387-8e7b-4cc7-b32d-704f0aba5945",
"name": "条件分岐1",
"type": "n8n-nodes-base.if",
"position": [
1504,
-304
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "44cab27e-ad6e-4320-aea2-ca7e5ebbbf2f",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "={{ $json.state }}",
"rightValue": "READY"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "804a3503-e23f-4a87-b811-bd552edf94ac",
"name": "待機",
"type": "n8n-nodes-base.wait",
"position": [
1744,
-304
],
"webhookId": "2a52ba6c-06e9-4cdc-94af-8e9206ad2f0f",
"parameters": {},
"typeVersion": 1.1
},
{
"id": "2c315149-3047-467e-bdb3-e62330aabe10",
"name": "投稿公開",
"type": "@postpulse/n8n-nodes-postpulse.postPulse",
"position": [
2400,
-32
],
"parameters": {
"isDraft": true,
"publications": {
"publication": [
{
"posts": {
"post": [
{
"content": "={{ (function(){\nconst t=$json['content:encodedSnippet'],p=$json.platform;\nlet m=500;if(p==='X_TWITTER')m=280;if(p==='BLUE_SKY')m=300;\nif(t.length<=m)return t;\nconst d=t.lastIndexOf('.',m),e=t.lastIndexOf('!',m),q=t.lastIndexOf('?',m),s=Math.max(d,e,q),l=m*0.6;\nif(s>0&&s>=l)return t.substring(0,s+1);\nconst w=t.lastIndexOf(' ',m);\nreturn t.substring(0,w>0?w:m)+'...';\n})() }}",
"attachmentPaths": {
"path": [
{
"value": "={{ $json.s3Key }}"
}
]
}
}
]
},
"platformSettings": "={{ (function() { const platformMapping = { 'X_TWITTER': 'TWITTER', 'YOUTUBE': 'YOUTUBE', 'THREADS': 'THREADS', 'TIKTOK': 'TIK_TOK', 'INSTAGRAM': 'INSTAGRAM', 'FACEBOOK': 'FACEBOOK', 'LINKEDIN': 'LINKEDIN', 'BLUE_SKY': 'BLUE_SKY', 'TELEGRAM': 'TELEGRAM' }; return JSON.stringify({ \"type\": platformMapping[$json.platform] }); })() }}",
"socialMediaAccountId": "={{ $json.id }}"
}
]
},
"scheduledTime": "={{$now.toUTC()}}"
},
"credentials": {
"postPulseOAuth2Api": {
"id": "nrEYznJjQaKGajyK",
"name": "PostPulse account"
}
},
"typeVersion": 1
},
{
"id": "abde1db6-6283-472b-8fc6-9d0bd9cfb6eb",
"name": "マージ",
"type": "n8n-nodes-base.merge",
"position": [
1952,
-160
],
"parameters": {
"mode": "combine",
"options": {},
"advanced": true,
"mergeByFields": {
"values": [
{
"field1": "sourceUrl",
"field2": "enclosure.url"
}
]
}
},
"typeVersion": 3.2
},
{
"id": "c05dd604-c4ee-485b-81f6-d38f67e515b0",
"name": "投稿公開(テキストのみ)",
"type": "@postpulse/n8n-nodes-postpulse.postPulse",
"position": [
1776,
336
],
"parameters": {
"isDraft": true,
"publications": {
"publication": [
{
"posts": {
"post": [
{
"content": "={{ (function(){\n const title = $json.title || '';\n const content = $json['content'] || $json['content:encodedSnippet'] || $json.description || '';\n const fullText = title + (content ? '\\n\\n' + content : '');\n const p = $json.platform;\n let m = 500;\n if(p==='X_TWITTER') m=280;\n if(p==='BLUE_SKY') m=300;\n if(fullText.length <= m) return fullText;\n const d = fullText.lastIndexOf('.', m), e = fullText.lastIndexOf('!', m), q = fullText.lastIndexOf('?', m);\n const s = Math.max(d, e, q), l = m*0.6;\n if(s > 0 && s >= l) return fullText.substring(0, s+1);\n const w = fullText.lastIndexOf(' ', m);\n return fullText.substring(0, w>0?w:m) + '...';\n})() }}\n",
"attachmentPaths": {
"path": [
{}
]
}
}
]
},
"platformSettings": "={{ (function() { const platformMapping = { 'X_TWITTER': 'TWITTER', 'YOUTUBE': 'YOUTUBE', 'THREADS': 'THREADS', 'TIKTOK': 'TIK_TOK', 'INSTAGRAM': 'INSTAGRAM', 'FACEBOOK': 'FACEBOOK', 'LINKEDIN': 'LINKEDIN', 'BLUE_SKY': 'BLUE_SKY', 'TELEGRAM': 'TELEGRAM' }; return JSON.stringify({ \"type\": platformMapping[$json.platform] }); })() }}",
"socialMediaAccountId": "={{ $json.id }}"
}
]
},
"scheduledTime": "={{$now.toUTC()}}"
},
"credentials": {
"postPulseOAuth2Api": {
"id": "nrEYznJjQaKGajyK",
"name": "PostPulse account"
}
},
"typeVersion": 1
},
{
"id": "d20115e7-11a2-4af9-ab4f-a9c33ea44b99",
"name": "N投稿に制限",
"type": "n8n-nodes-base.function",
"position": [
512,
-48
],
"parameters": {
"functionCode": "const limit = 1; // Specify the desired\nconst items = $input.all();\n\nreturn items.slice(0, limit);"
},
"typeVersion": 1
},
{
"id": "7cf7be4d-1553-4f52-ac23-007a46e73eb8",
"name": "付箋",
"type": "n8n-nodes-base.stickyNote",
"position": [
-128,
-544
],
"parameters": {
"width": 640,
"height": 144,
"content": "## Repurpose News from RSS Feed and Publish via PostPulse\nThis workflow automatically fetches news from an RSS feed, processes the content, and publishes or schedules posts across multiple social media platforms using PostPulse.\n\n"
},
"typeVersion": 1
},
{
"id": "8a2f34a4-7099-42c7-82cd-b8291f585e21",
"name": "付箋1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-112,
16
],
"parameters": {
"width": 272,
"height": 96,
"content": "## Schedule Trigger\nSets the workflow to run at a chosen time, e.g., daily at 9:00 AM.\n"
},
"typeVersion": 1
},
{
"id": "402d5b7c-a30d-4bef-af05-74d48ef703d7",
"name": "付箋2",
"type": "n8n-nodes-base.stickyNote",
"position": [
256,
-208
],
"parameters": {
"height": 96,
"content": "## RSS Feed Read\nFetches the latest news from a specified RSS feed URL.\n"
},
"typeVersion": 1
},
{
"id": "b02123b2-1751-4e7b-99c9-49dca6c2c653",
"name": "付箋3",
"type": "n8n-nodes-base.stickyNote",
"position": [
416,
80
],
"parameters": {
"width": 288,
"height": 112,
"content": "## Limit to N Post \nLimits the number of items passed through. Set the desired number directly in the node code. \n"
},
"typeVersion": 1
},
{
"id": "ef97a779-fb99-4d50-9e11-2968dad3e477",
"name": "付箋4",
"type": "n8n-nodes-base.stickyNote",
"position": [
656,
-208
],
"parameters": {
"width": 384,
"content": "## If & Media Check IF \nFilters posts based on publish date (e.g., only from yesterday) **AND** checks if they contain an image by looking at fields like `enclosure.url`, `media:content`, `media:thumbnail`, or `<img>` inside the HTML content. \n"
},
"typeVersion": 1
},
{
"id": "fefe03d9-f87b-43ca-8f17-c5c09fa347ad",
"name": "付箋5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1216,
-448
],
"parameters": {
"width": 544,
"height": 112,
"content": "## PostPulse Upload Media & Get Upload Status\nUploads images or videos from the feed to PostPulse, waits for the media to be ready, and checks the upload status every 5 seconds.\n"
},
"typeVersion": 1
},
{
"id": "1e1b08d4-96d7-4229-bdcf-0ac43f58f18c",
"name": "付箋6",
"type": "n8n-nodes-base.stickyNote",
"position": [
2064,
-288
],
"parameters": {
"width": 336,
"height": 128,
"content": "## Merge\nCombines information from the RSS feed with the uploaded media, creating a single record with a shared URL.\n"
},
"typeVersion": 1
},
{
"id": "00692b40-ef2b-4aa8-9f2b-e69a097071d9",
"name": "付箋7",
"type": "n8n-nodes-base.stickyNote",
"position": [
2144,
224
],
"parameters": {
"width": 320,
"height": 128,
"content": "## Publish Post\nSchedules the news post. If \"Is Draft\" is checked, the post is saved as a draft; if not, it is scheduled for immediate publishing.\n"
},
"typeVersion": 1
},
{
"id": "5ee6e715-62dc-4b82-993a-e35587d76d71",
"name": "付箋8",
"type": "n8n-nodes-base.stickyNote",
"position": [
592,
640
],
"parameters": {
"width": 352,
"content": "## PostPulse Get Connected Accounts\nRetrieves your linked social media accounts for publishing posts.\n"
},
"typeVersion": 1
},
{
"id": "10976fdd-1cc1-4739-bc62-2ab1cb1d71d0",
"name": "付箋9",
"type": "n8n-nodes-base.stickyNote",
"position": [
1216,
48
],
"parameters": {
"width": 256,
"content": "## Merge (no media + accounts) \nMerges posts without media with accounts data. \n"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "018ef9cd-662d-4a33-8efd-f090b888f812",
"connections": {
"b72c3c2f-7b1d-4925-9dca-720f2353b793": {
"main": [
[
{
"node": "2d2d2c5f-32b3-4b7a-8a49-a52e8ac9dea1",
"type": "main",
"index": 0
}
],
[
{
"node": "2d2d2c5f-32b3-4b7a-8a49-a52e8ac9dea1",
"type": "main",
"index": 0
}
]
]
},
"1d049387-8e7b-4cc7-b32d-704f0aba5945": {
"main": [
[
{
"node": "804a3503-e23f-4a87-b811-bd552edf94ac",
"type": "main",
"index": 0
}
],
[
{
"node": "abde1db6-6283-472b-8fc6-9d0bd9cfb6eb",
"type": "main",
"index": 0
}
]
]
},
"804a3503-e23f-4a87-b811-bd552edf94ac": {
"main": [
[
{
"node": "13fd97d3-c730-4ad1-9311-58fe5f385c10",
"type": "main",
"index": 0
}
]
]
},
"abde1db6-6283-472b-8fc6-9d0bd9cfb6eb": {
"main": [
[
{
"node": "3b3c7fdb-a992-43ac-8478-e42a7e6ec7d9",
"type": "main",
"index": 0
}
]
]
},
"3b3c7fdb-a992-43ac-8478-e42a7e6ec7d9": {
"main": [
[
{
"node": "2c315149-3047-467e-bdb3-e62330aabe10",
"type": "main",
"index": 0
}
]
]
},
"6edb85e6-e42f-486c-8a51-035ea59dbe96": {
"main": [
[
{
"node": "13fd97d3-c730-4ad1-9311-58fe5f385c10",
"type": "main",
"index": 0
}
]
]
},
"13391fd1-8164-4bc2-b5cd-438c507dffa5": {
"main": [
[
{
"node": "d20115e7-11a2-4af9-ab4f-a9c33ea44b99",
"type": "main",
"index": 0
}
]
]
},
"2d2d2c5f-32b3-4b7a-8a49-a52e8ac9dea1": {
"main": [
[
{
"node": "6edb85e6-e42f-486c-8a51-035ea59dbe96",
"type": "main",
"index": 0
},
{
"node": "abde1db6-6283-472b-8fc6-9d0bd9cfb6eb",
"type": "main",
"index": 1
}
],
[
{
"node": "eab7ec94-76a3-4840-a89e-f77f2e1991ef",
"type": "main",
"index": 0
}
]
]
},
"d20115e7-11a2-4af9-ab4f-a9c33ea44b99": {
"main": [
[
{
"node": "b72c3c2f-7b1d-4925-9dca-720f2353b793",
"type": "main",
"index": 0
}
]
]
},
"5225f3e9-d85f-4e3e-900a-e67fbc5ea7ac": {
"main": [
[
{
"node": "3442e809-c9a9-45a0-9088-72a1810355b1",
"type": "main",
"index": 0
},
{
"node": "13391fd1-8164-4bc2-b5cd-438c507dffa5",
"type": "main",
"index": 0
}
]
]
},
"13fd97d3-c730-4ad1-9311-58fe5f385c10": {
"main": [
[
{
"node": "1d049387-8e7b-4cc7-b32d-704f0aba5945",
"type": "main",
"index": 0
}
]
]
},
"3442e809-c9a9-45a0-9088-72a1810355b1": {
"main": [
[
{
"node": "eab7ec94-76a3-4840-a89e-f77f2e1991ef",
"type": "main",
"index": 1
},
{
"node": "3b3c7fdb-a992-43ac-8478-e42a7e6ec7d9",
"type": "main",
"index": 1
}
]
]
},
"eab7ec94-76a3-4840-a89e-f77f2e1991ef": {
"main": [
[
{
"node": "c05dd604-c4ee-485b-81f6-d38f67e515b0",
"type": "main",
"index": 0
}
]
]
}
}
}このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
上級 - コンテンツ作成, マルチモーダルAI
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
Dmytro
@dmytro-hnatiukHnatiuk Dmytro is a Content Manager at PostPulse, experienced in copywriting, localization, and social media marketing. Skilled in creating engaging content strategies, managing multi-platform campaigns, and optimizing posts for audience engagement. He also has technical skills in HTML, JavaScript, Node.js, and C#, with a background in cybersecurity. Outside of work, Dmytro is a musician, enjoys playing and listening to music, stays active through sports, and values connecting with people
このワークフローを共有