ニュースとメールを同時に自動化した

ニュースとメールを同時に自動化した

毎朝5時にAIが記事を書いて、下書き保存してくれる。
自分は朝起きて確認して、公開ボタンを押すだけ。そんな理想の状態が、ようやく形になってきました。

次はAIエージェントナビで毎日更新している「ニュース記事」と、HubSpotで配信しているメールマガジン自動化できないか、Navに相談してみました。

ニュース記事の自動化を設計する

まず、ニュース記事のフローをNavと一緒に整理しました。

ニュース記事も自動化したいんだけど、コラムとは別の仕組みが必要だよね?
Nav はい。コラムはキーワードドリブンですが、ニュースはURLドリブンにするのが自然です。「このニュースを書いて」とURLを渡せば、①執筆→②ファクトチェック→③WordPress下書きまで動く仕組みにしましょう。
HubSpotのメール下書きもセットで作れる?
Nav できます。既存のメールテンプレートを取得して、記事の内容に差し替えて、新規下書きとして保存する流れです。送信は絶対にしません。あくまで下書き保存まで。

この設計で news_pipeline.py を作ることになりました。

コラム記事と大きく違うのは、記事の「素材」がURLだということ。記事本文を書くエージェントは、渡されたURLの内容を読み込んで、ニュースとして再構成します。

また、ニュース記事専用の投稿タイプ(newsカスタム投稿タイプ)に保存する設計にしました。コラム記事と一覧ページが混在しないようにするためです。

HubSpotとの連携でハマったこと

ニュース記事の執筆自体はスムーズに動いたのですが、HubSpot連携で少し苦労しました。

メール名の重複問題

HubSpotのメール下書きには「メール名」が必要で、うちは 最新ニュース_MMDD という形式で管理しています。

問題は、同じ日に複数件処理しようとしたとき。最新ニュース_0314 がすでに存在する状態でもう1件作ると、名前が重複してしまう。

同じ日に2本書いたら名前がかぶった
Nav HubSpotの既存メール一覧を取得して、まだ使われていない平日の日付を自動的に選ぶようにします。今日が3/14なら、3/17、3/18…と順番に確認して、空いてる日付を使う仕組みです。

これで解決しました。毎回日付を気にしなくていい。地味だけど、こういう細かい自動化の積み重ねが大事だと思っています。

HubSpot APIの注意点

HubSpotのメール操作で最初に試したのは「既存メールを複製する」方法でした。でも、HubSpotのAPIにはクローンエンドポイントがない。

正解は「テンプレートを取得→ウィジェットの中身を差し替え→新規POSTで作成」という流れ。このやり方にたどり着くまで、ちょっと時間がかかりました。

もう一つ重要な制約として、メールの更新(PATCH)は全ウィジェット置き換えになります。一部だけ書き換えようとすると、他のウィジェットが消える。なのでテンプレートから全ウィジェットを取得して、まとめて送り直す設計にしています。

ファクトチェックが「2026年は未来」と言い張った

もう一つ、予想外のバグがありました。

ファクトチェックエージェントが「2026年は未来の日付です」と指摘してくる。

ファクトチェックが「2026年3月のニュースは存在しない」って言ってくるんだけど
Nav AIの学習データが2025年8月で止まっているため、2026年を「未来」と判断してしまっています。プロンプトに現在の日付を動的に渡して「2026年は未来ではない」と明記すれば解決します。

原因はシンプルで、Geminiの学習データのカットオフが2025年8月だったから。2026年という日付を見て、勝手に「未来のことは確認できない」と判断していたんです。

修正方法も単純で、プロンプトの冒頭に datetime.date.today() で取得した今日の日付を入れるだけ。「今日は2026年3月14日です。2026年は未来ではありません」と明示する。それで誤判定がなくなりました。

AIって賢いけど、こういう「現在地」を教えてあげないといけないところが、まだまだ人間の仕事だなと思います。

/newsコマンド一つで完結する仕組みになった

最終的に出来上がった仕組みはこうです。

気になるニュースのURLをメモしておいて、Claude Codeで /news と打つ。テキストファイルにURLとメモを書いて保存すると、パイプラインが動き出します。

  1. 執筆エージェントがニュース記事を生成(アイキャッチ用の20文字テキストも自動生成)
  2. ファクトチェックエージェントが内容を確認
  3. WordPressのnews投稿タイプに下書き保存
  4. HubSpotにメール下書きを作成

終わったらNavが結果を報告してくれる。WordPressのプレビューURLと、HubSpotの下書きがどこにあるか。自分は確認して、問題なければ両方公開するだけ。

ニュースを書いてメールを準備する、という作業が10〜15分かかっていたのが、ほぼゼロになりました。

これ、思った以上に便利だ
Nav ニュース記事とメール下書きが同時に完成するのは、かなり効率的だと思います。次は、もっと並行して作業できる仕組みについて考えてみましょうか。

次回予告

ここまで来ると、チャットを1つで全部やろうとすることに限界を感じ始めました。

記事生成、SEO分析、ニュース対応……やることが増えると、一つのチャットでは文脈が混ざる。そこで試してみたのが、チャットを2つ同時に立ち上げる方法です。

次回は「チャットを2つ並行にしたら、思った以上に大変だった」というお話です。