Hacker News AIニュース日次サマリー:GPT-5要約とメール送信

上級

これは自動化ワークフローで、16個のノードを含みます。主にSet, Filter, Markdown, Aggregate, EmailSendなどのノードを使用。 毎日のAIニュースサマリー - Hacker Newsから取得し、GPT-5で要約してメールで送信

前提条件
  • ターゲットAPIの認証情報が必要な場合あり
  • OpenAI API Key

カテゴリー

-
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "meta": {
    "instanceId": "3d7eb9567ae690bf8c9bba1cb43396e6e40c18e15eb5889cf9673ed1713da6db",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "c352f6dc-9570-419d-9d48-3c94758a0104",
      "name": "HN AIストーリー取得",
      "type": "n8n-nodes-base.hackerNews",
      "position": [
        1024,
        3552
      ],
      "parameters": {
        "limit": 1000,
        "resource": "all",
        "additionalFields": {
          "keyword": "AI"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "2a57c491-15f9-4035-854f-9bc410e9fe5e",
      "name": "過去24時間でフィルタリング",
      "type": "n8n-nodes-base.filter",
      "position": [
        1232,
        3552
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "f59903f3-835c-407a-a930-060d20c8abdf",
              "operator": {
                "type": "dateTime",
                "operation": "afterOrEquals"
              },
              "leftValue": "={{ $json.created_at }}",
              "rightValue": "={{ $now.minus({ days: 1 }).toFormat('yyyy-MM-dd') }}"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "960d99c5-3bfa-4baa-b9eb-4cc41e6ad961",
      "name": "アイテムをループ処理",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1440,
        3552
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "9bf34ea7-64ad-4bc5-b4f7-af3a1d1fa0a0",
      "name": "記事URLをスクレイピング",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1648,
        3632
      ],
      "parameters": {
        "url": "={{ $json.url }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "714804a1-ebc4-474a-9de0-4e8785086129",
      "name": "Markdownに変換",
      "type": "n8n-nodes-base.markdown",
      "position": [
        1872,
        3632
      ],
      "parameters": {
        "html": "={{ $json.data }}",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "72b3a898-bfa8-4388-9a8c-a9c9c4895020",
      "name": "GPT 記事要約",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        2064,
        3632
      ],
      "parameters": {
        "text": "=Summarize the info below so that I can get a quick news snippet of what this is about in the area of AI. \n\nSimply output the main point as the heading and then 2 sentences of the summary (maybe with a link)\n\n---\n\nScraped info below: {{ $json.markdown }}",
        "batching": {},
        "promptType": "define"
      },
      "typeVersion": 1.7
    },
    {
      "id": "dd7d375a-26bd-469f-8cea-2d68511aa1bb",
      "name": "ニュースアイテムをフォーマット",
      "type": "n8n-nodes-base.set",
      "position": [
        2368,
        3728
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "ec79a00c-98ba-40fc-b606-b4e40eeed15c",
              "name": "news",
              "type": "string",
              "value": "={{ $('GPT Summarize Article').item.json.output }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "b612d024-cb1b-4f93-8761-3a4e805cb0a2",
      "name": "全要約を結合",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        1648,
        3456
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "news"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "db3ace26-4a67-4916-9f16-1719fdfbaed7",
      "name": "メールダイジェスト送信",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        1872,
        3456
      ],
      "webhookId": "ec7ef530-cebe-4a22-b9ad-428230ba4b71",
      "parameters": {
        "html": "=<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Daily News Digest</title>\n    <style>\n        body {\n            margin: 0;\n            padding: 0;\n            background-color: #f5f5f5;\n            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;\n            line-height: 1.5;\n            color: #333;\n        }\n        \n        .email-container {\n            max-width: 600px;\n            margin: 0 auto;\n            background-color: white;\n            padding: 0;\n        }\n        \n        .header {\n            background-color: #d97757;\n            color: white;\n            text-align: center;\n            padding: 20px;\n            border-radius: 8px 8px 0 0;\n        }\n        \n        .header h1 {\n            margin: 0;\n            font-size: 18px;\n            font-weight: 500;\n        }\n        \n        .content {\n            padding: 30px 40px;\n            background-color: white;\n        }\n        \n        .news-item {\n            margin-bottom: 30px;\n            padding-bottom: 25px;\n            border-bottom: 1px solid #e0e0e0;\n        }\n        \n        .news-item:last-child {\n            border-bottom: none;\n            margin-bottom: 0;\n            padding-bottom: 0;\n        }\n        \n        .news-title {\n            font-size: 16px;\n            font-weight: 600;\n            color: #333;\n            margin: 0 0 12px 0;\n            line-height: 1.4;\n        }\n        \n        .news-content {\n            font-size: 14px;\n            color: #666;\n            line-height: 1.6;\n            margin: 0;\n        }\n        \n        .news-content a {\n            color: #d97757;\n            text-decoration: none;\n        }\n        \n        .news-content a:hover {\n            text-decoration: underline;\n        }\n        \n        .footer {\n            text-align: center;\n            padding: 20px;\n            background-color: #f9f9f9;\n            color: #888;\n            font-size: 12px;\n            border-radius: 0 0 8px 8px;\n        }\n        \n        @media (max-width: 600px) {\n            .email-container {\n                margin: 0 10px;\n            }\n            \n            .content {\n                padding: 20px 25px;\n            }\n            \n            .header {\n                padding: 15px;\n            }\n        }\n    </style>\n</head>\n<body>\n    <div class=\"email-container\">\n        <div class=\"header\">\n            <h1>📰 Latest AI News — {{ $now.format('MMMM d, yyyy') }}</h1>\n        </div>\n        \n        <div class=\"content\">\n            {{ $json.news.join('') }}\n        </div>\n        \n        <div class=\"footer\">\n            You're receiving this digest because you subscribed to updates.<br>\n            © 2025 AI News Digest\n        </div>\n    </div>\n</body>\n</html>",
        "options": {},
        "subject": "Daily AI Digest - {{ $now.format('MMMM d, yyyy') }}",
        "toEmail": "recipient@example.com",
        "fromEmail": "AI News <noreply@example.com>"
      },
      "credentials": {
        "smtp": {
          "id": "M9BmJSJmYzVHw6xq",
          "name": "Zoho Mail 2"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "030bc0bb-c0ae-4234-9a9e-720c86ba3f0c",
      "name": "毎日スケジュールトリガー",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        800,
        3552
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "f59da8bf-9079-46e6-a97d-63ac00da0f09",
      "name": "概要とセットアップ",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        64,
        3168
      ],
      "parameters": {
        "color": 4,
        "width": 728,
        "height": 1072,
        "content": "# Daily AI News Digest from Hacker News\n\n## 📋 What This Template Does\nFetches recent AI stories from Hacker News, filters for today, scrapes each article, summarizes with GPT into snippets, aggregates into HTML, and emails a styled daily digest.\n\n## 🔧 Prerequisites\n- n8n instance\n- OpenAI API access\n- SMTP server (e.g., Zoho, Gmail)\n\n## 🔑 Required Credentials\n\n### OpenAI API\n1. Get key from platform.openai.com/api-keys\n2. Add to n8n as OpenAI credential\n3. Assign to \"GPT 5 pro\" node\n\n### SMTP Setup\n1. Configure in n8n credentials (host, port, user/pass)\n2. Assign to \"Send Email Digest\" node\n3. Update fromEmail/toEmail fields\n\n## ⚙️ Configuration Steps\n1. Import JSON into n8n\n2. Assign OpenAI and SMTP credentials\n3. Update fromEmail/toEmail in \"Send Email Digest\" node\n4. Set schedule in \"Daily Schedule Trigger\" (e.g., daily at 8 AM)\n5. Activate workflow\n\n## 🎯 Use Cases\n- Personal AI news briefing\n- Team knowledge sharing\n- Content curation for blogs\n\n## ⚠️ Troubleshooting\n- No stories: Check keyword filter; HN API limits\n- Scraping fails: Add proxy if blocked\n- Email not sending: Verify SMTP settings\n- Summaries poor: Tweak GPT prompt"
      },
      "typeVersion": 1
    },
    {
      "id": "088aeedc-3850-415e-a691-691fd3e02428",
      "name": "注: HN取得とフィルタリング",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        912,
        3728
      ],
      "parameters": {
        "color": 2,
        "width": 428,
        "height": 304,
        "content": "## 📥 Data Collection\n\n**Fetch HN AI Stories:**\n- Pulls 1000 stories with \"AI\" keyword\n- Uses public HN API (no auth needed)\n\n**Filter Last 24 Hours:**\n- Checks `created_at` field\n- Keeps only yesterday/today posts\n- Uses `$now().minus({ days: 1 })`\n\n**💡 Customization:**\nChange keyword filter or date range here"
      },
      "typeVersion": 1
    },
    {
      "id": "4c555f5e-4b5b-4176-bc8e-161dcb9a9b25",
      "name": "注: スクレイピングと処理",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1488,
        3888
      ],
      "parameters": {
        "color": 3,
        "width": 484,
        "height": 352,
        "content": "## 🌐 Content Processing\n\n**Loop Over Items:**\n- Processes each story sequentially\n- Prevents rate limiting\n\n**Scrape Article URL:**\n- Fetches content from source URL\n- May need proxy for blocked sites\n\n**Convert to Markdown:**\n- Cleans HTML to text\n- Formats for LLM input\n\n**💡 Troubleshooting:**\nIf scraping fails, check URL accessibility"
      },
      "typeVersion": 1
    },
    {
      "id": "3e0e97ce-561d-4c6b-a9b4-96b0eacf90d5",
      "name": "注: AI要約",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2176,
        3904
      ],
      "parameters": {
        "color": 5,
        "width": 460,
        "height": 336,
        "content": "## 🤖 AI Summarization\n\n**GPT Summarize Article:**\n- Generates heading + 2 sentences\n- Extracts key AI insights\n- Includes link when relevant\n\n**Format News Item:**\n- Wraps in HTML for email\n- Prepares for aggregation\n\n**Combine All Summaries:**\n- Merges into single array\n- Ready for email template\n\n**💡 Customization:**\nEdit prompt for different summary styles"
      },
      "typeVersion": 1
    },
    {
      "id": "2dbe3adc-d430-4eff-9306-c2f45cd632f3",
      "name": "注: メール配信",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2112,
        3200
      ],
      "parameters": {
        "color": 6,
        "width": 436,
        "height": 320,
        "content": "## 📧 Email Delivery\n\n**Send Email Digest:**\n- Styled HTML template\n- Mobile-responsive design\n- Inline CSS for compatibility\n\n**Template Features:**\n- Clean news item layout\n- Branded header/footer\n- Clickable links\n\n**⚙️ Required:**\nUpdate fromEmail/toEmail before activating"
      },
      "typeVersion": 1
    },
    {
      "id": "eaa3c5c3-bf65-4efc-8f23-208ed7751ed4",
      "name": "GPT 5 pro",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2064,
        3808
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-5-pro",
          "cachedResultName": "gpt-5-pro"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "ymMvgDroJHalwvRf",
          "name": "OpenAI"
        }
      },
      "typeVersion": 1.2
    }
  ],
  "pinData": {},
  "connections": {
    "eaa3c5c3-bf65-4efc-8f23-208ed7751ed4": {
      "ai_languageModel": [
        [
          {
            "node": "72b3a898-bfa8-4388-9a8c-a9c9c4895020",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "960d99c5-3bfa-4baa-b9eb-4cc41e6ad961": {
      "main": [
        [
          {
            "node": "b612d024-cb1b-4f93-8761-3a4e805cb0a2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "9bf34ea7-64ad-4bc5-b4f7-af3a1d1fa0a0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dd7d375a-26bd-469f-8cea-2d68511aa1bb": {
      "main": [
        [
          {
            "node": "960d99c5-3bfa-4baa-b9eb-4cc41e6ad961",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9bf34ea7-64ad-4bc5-b4f7-af3a1d1fa0a0": {
      "main": [
        [
          {
            "node": "714804a1-ebc4-474a-9de0-4e8785086129",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "714804a1-ebc4-474a-9de0-4e8785086129": {
      "main": [
        [
          {
            "node": "72b3a898-bfa8-4388-9a8c-a9c9c4895020",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c352f6dc-9570-419d-9d48-3c94758a0104": {
      "main": [
        [
          {
            "node": "2a57c491-15f9-4035-854f-9bc410e9fe5e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2a57c491-15f9-4035-854f-9bc410e9fe5e": {
      "main": [
        [
          {
            "node": "960d99c5-3bfa-4baa-b9eb-4cc41e6ad961",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b612d024-cb1b-4f93-8761-3a4e805cb0a2": {
      "main": [
        [
          {
            "node": "db3ace26-4a67-4916-9f16-1719fdfbaed7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "72b3a898-bfa8-4388-9a8c-a9c9c4895020": {
      "main": [
        [
          {
            "node": "dd7d375a-26bd-469f-8cea-2d68511aa1bb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "030bc0bb-c0ae-4234-9a9e-720c86ba3f0c": {
      "main": [
        [
          {
            "node": "c352f6dc-9570-419d-9d48-3c94758a0104",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

上級

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

ワークフロー情報
難易度
上級
ノード数16
カテゴリー-
ノードタイプ12
難易度説明

上級者向け、16ノード以上の複雑なワークフロー

作成者
Daniel Nkencho

Daniel Nkencho

@daniel-automates

AI Automation Consultant | Helping Business Owners Implement AI Systems for growth and lead gen

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34