マーケティングオートメーション入門 — 業界ニュース自動監視9選
n8n は、画面上の箱(ノード)をつなぐだけでアプリを自動連携できる、コード不要のツールです。マーケティングオートメーションを調べている広報・マーケ担当の方が、毎日いくつものニュースサイトを巡回するのに疲れているなら、この9つで業界ニュースを自動で見逃さない仕組みが作れます。
自動再生 · タイルを押すとその項目へ · すべて1つのzip
- 01 RSS の基本読み込み
- 02 2つの RSS を合体して新着順に
- 03 複数フィードの件数を要約
- 04 キーワードで絞って上位N件だけ
- 05 直近N日以内の記事だけ残す
- 06 実行ごとに新着だけ残す
- 07 表で作るニュースダイジェスト
- 08 キーワードで振り分ける
- 09 毎日決まった時刻にダイジェスト配信
この9つは、ニュース監視を手作業から自動化へ広げていく順番に並べています。まず1つのソースを受け取るところ(01)から始まり、複数ソースをまとめる2通り(02 そのままつなげる・03 ソースごとに数える)に進み、必要なものだけ絞り込む2通り(04 キーワード・05 日付)を経て、結果を整える2通り(06 重複除去・07 表にする)を通り、条件で枝分かれさせる1つ(08)を経て、最後にこの全部を毎日動く形にまとめる1つ(09)で締めくくります。実際の業務でも、たいていこの順番で1つずつ足していくことになります。
01RSS の基本読み込み
サイトを毎回開いて新着を確認する代わりに、RSS Read ノードが最新記事の一覧をそのまま取得し、Set ノードがタイトル・リンク・日付の3項目だけ残します。気になるブログの監視や自動化の第一歩なら、まずこの形からです。
{
"name": "Keep Fields",
"type": "n8n-nodes-base.set",
"typeVersion": 3.5,
"parameters": {
"mode": "manual",
"assignments": {
"assignments": [
{ "name": "title", "value": "={{ $json.title }}", "type": "string" },
{ "name": "link", "value": "={{ $json.link }}", "type": "string" },
{ "name": "pubDate", "value": "={{ $json.pubDate }}", "type": "string" }
]
}
}
}
022つの RSS を合体して新着順に
2つの RSS Read が別々のサイトを読み込み、Merge ノードが append モードでそのままつなげ、Sort が新しい記事から並べ替えます。複数メディアを1か所でチェックしたい、競合ブログの監視も一緒に見たいという場面では、1つのソースだけでは足りなくなります。
{
"name": "Merge Append",
"type": "n8n-nodes-base.merge",
"typeVersion": 3.2,
"parameters": {
"mode": "append",
"numberInputs": 2
}
}
03複数フィードの件数を要約
02番が2つのソースを1本の流れに混ぜるのに対し、こちらは Aggregate ノード2つがソース別にタイトルを配列にまとめ、Code ノードがソースごとの件数と代表タイトル3件を持つ要約オブジェクトを作ります。ソースごとの発行量比較や週次レポートの材料が目的なら、混ぜるより分けて数えるこの形が向いています。
{
"name": "Build Summary",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"parameters": {
"jsCode": "const bbc = $json.bbcTitles || [];\nconst ars = $json.arsTitles || [];\nconst summary = {\n bbc: { count: bbc.length, titles: bbc.slice(0, 3) },\n ars: { count: ars.length, titles: ars.slice(0, 3) }\n};\nreturn [{ json: { summary } }];"
}
}
04キーワードで絞って上位N件だけ
Filter ノードがタイトルに特定のキーワード(大文字小文字を区別しない)を含む記事だけ残し、Limit がそのうち上位3件に絞ります。関心トピックだけ通知を受け取る、ノイズ削減が目的なら、全部を送ってから選ぶより先に絞る方が早いです。
{
"conditions": {
"options": { "caseSensitive": false, "version": 2 },
"conditions": [
{
"leftValue": "={{ $json.title }}",
"rightValue": "ai",
"operator": { "type": "string", "operation": "contains" }
}
],
"combinator": "and"
}
}
05直近N日以内の記事だけ残す
Filter が dateTime 条件の after 演算子で pubDate を「現在時刻マイナス3日」と比較し、最近の記事だけ残します。週次まとめで古い記事を除外し鮮度を確保したいだけなら、キーワードなしで日付だけで絞るこの形で十分です。
{
"conditions": [
{
"leftValue": "={{ $json.pubDate }}",
"rightValue": "={{ $now.minus({ days: 3 }) }}",
"operator": { "type": "dateTime", "operation": "after" }
}
],
"combinator": "and"
}
06実行ごとに新着だけ残す
Remove Duplicates の Remove Items Processed in Previous Executions 操作が、リンクを基準に前回までの実行で見たことがある記事を除外し、Set が新着に isNew を付けます。毎日同じ時刻に実行しても重複通知なしで新着だけ届けたいなら、1回の実行内だけの重複削除では足りず、実行をまたいだ記憶が必要です。
{
"name": "Remove Seen Links",
"type": "n8n-nodes-base.removeDuplicates",
"typeVersion": 2,
"parameters": {
"operation": "removeItemsSeenInPreviousExecutions",
"logic": "removeItemsWithAlreadySeenKeyValues",
"dedupeValue": "={{ $json.link }}",
"options": { "scope": "workflow" }
}
}
07表で作るニュースダイジェスト
Limit が先頭8件だけ残し、HTML ノードの Convert to HTML Table 操作がそのまま表に変換します。メール本文にニュース表を入れたい、ダッシュボードのウィジェットにしたいなら、リストより表の方が一目で読めます。
{
"name": "Build Table",
"type": "n8n-nodes-base.html",
"typeVersion": 1.2,
"parameters": {
"operation": "convertToHtmlTable",
"options": {
"capitalize": true,
"caption": "Fox News latest headlines"
}
}
}
08キーワードで振り分ける
Switch がタイトルの語で ai・security(または breach)・それ以外の3方向に振り分け、各枝の Set が route ラベルを付け、Merge が再び集約します。テーマ別チャンネルへの自動振り分けや通知ルーティングが3方向以上になると、IF 1つでは手に負えません。
{
"mode": "rules",
"rules": {
"values": [
{
"conditions": {
"conditions": [
{ "leftValue": "={{ $json.title }}", "rightValue": "ai",
"operator": { "type": "string", "operation": "contains" } }
]
},
"outputKey": "ai"
}
]
},
"options": { "fallbackOutput": "extra", "renameFallbackOutput": "other" }
}
09毎日決まった時刻にダイジェスト配信
Schedule が毎日8:00に起動し(Manual Trigger でもすぐテストできます)、RSS Read が最新記事を取得、Aggregate がタイトルとリンクを配列にまとめ、Markdown がその2つを組み合わせて digest フィールドに入れます。毎朝チームチャンネルへのニュースダイジェストや個人通知ボットとして実際に使うには、予約実行と手動テストが同じ流れの中にある必要があります。
{
"name": "Build Digest",
"type": "n8n-nodes-base.markdown",
"typeVersion": 1,
"parameters": {
"mode": "markdownToHtml",
"markdown": "={{ '# Daily Digest\\n\\n' + $json.title.map((t, i) => '- [' + t + '](' + $json.link[i] + ')').join('\\n') }}",
"destinationKey": "digest"
}
}
準備するもの
9つとも準備物の欄は「なし」ですが、それでも表が必要なのは n8n のバージョンが古いと typeVersion エラーになりうるからです。等級は V0(構造)・V1(インポート確認)・V2(実行まで確認)の3段階で、この編は9つ全部が V2 です。
| 項目 | 等級 | 準備物 | n8n バージョン |
|---|---|---|---|
| 01 RSS の基本読み込み | V2 | なし | 2.38.5 |
| 02 2つの RSS を合体して新着順に | V2 | なし | 2.38.5 |
| 03 複数フィードの件数を要約 | V2 | なし | 2.38.5 |
| 04 キーワードで絞って上位N件だけ | V2 | なし | 2.38.5 |
| 05 直近N日以内の記事だけ残す | V2 | なし | 2.38.5 |
| 06 実行ごとに新着だけ残す | V2 | なし | 2.38.5 |
| 07 表で作るニュースダイジェスト | V2 | なし | 2.38.5 |
| 08 キーワードで振り分ける | V2 | なし | 2.38.5 |
| 09 毎日決まった時刻にダイジェスト配信 | V2 | なし | 2.38.5 |
取り込み方は3通りです。n8n キャンバスで Ctrl/Cmd+V を押して JSON テキストをそのまま貼り付けるか、キャンバスメニューの Import from File で zip 内のファイルを選ぶか、CLI なら n8n import:workflow --input=ファイル.json の一行で済みます。取り込んだ後は左上の Test workflow ボタンを押せばその場で実行できます。
どこで壊れるか
一番静かに人を騙す落とし穴には、06番で遭遇しました — Set ノードの「他の入力フィールドも残す」(Include Other Input Fields)オプションを Options ブロックの中に入れて設定したところ、実行は成功(exit 0)したのに title フィールドだけ静かに消え、isNew だけが残りました。実際にはこのオプションは Options ブロックの中ではなく、mode・assignments と同じ階層にあるノード最上位のパラメータで、間違った場所に入れると n8n は黙ってデフォルト値(false)のまま無視します。この zip を開くパスワードは xu26t3qn で、解凍すると workflows/ の中に9つの JSON がそのまま入っています。06番の Remove Duplicates にはもう一つ似た落とし穴があります。実行をまたいだ記憶(cross-execution scope)を使うため、同じワークフローをテストで何度も回すほど「新着」と判定される件数が減っていき、最終的に0件になると後続の Set ノード自体が実行されず、isNew フィールドがそっくり消える現象も経験しました。
FAQ
n8n cloud でも使えますか?
使えます。これらのワークフローはコミュニティノードやアカウント連携の認証情報を一切使わないので、インポートメニューでそのまま取り込めます。09番の Schedule Trigger だけは、実際に毎日動かすにはワークフローを Active にする必要があります。
自分の n8n のバージョンが違う場合は?
typeVersion エラーが出たら、そのノードをキャンバスで新しく作って export し、実際の値を確認してから下げて使えば大丈夫です。この zip は n8n 2.38.5(Node 24)でインポート・実行の両方を確認済みです。
コードが分からなくても06番の重複除去は理解できますか?
はい。03番の Code ノードを除く残り8つは、すべて n8n の内蔵ノードの組み合わせだけで作られているので、JavaScript を知らなくてもクリックだけで再現できます。06番も Remove Duplicates ノードのオプションを画面で選ぶだけです。詳しいオプションの説明はn8n公式ドキュメントにあります。
n8n を初めて触るなら自動化カテゴリーで続きの例が見られますし、このサイトがどんな基準で検証しているかは紹介ページにまとめています。