0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Chatworkシリーズ #22】Chatworkの会話を毎日AIが要約してくれる仕組みをn8nで作った話

0
Last updated at Posted at 2026-03-31

チームの会話、追えてますか?

正直に言う。追えていなかった。

1つのルームで1日100件を超えるメッセージが飛び交うようになると、「今日なにが決まったっけ?」と夕方に振り返るのがしんどくなる。スクロールして読み返すのは5分では済まないし、途中で別の会話が割り込んでくる。

結局、「まあ大事なことは誰かが教えてくれるだろう」と思って流してしまう。でもそれは裏を返せば、自分が流した会話の中に埋もれた決定事項を、誰かが拾ってくれることに依存している状態だ。

そこでn8nとClaude APIを組み合わせて、毎日20時にその日の会話を自動要約してChatworkに投稿する仕組みを作った。1週間動かしてみた感想も含めて書く。

完成形のイメージ

毎日20時になると、Chatworkのルームにこんな投稿が自動で流れてくる。

本日の会話サマリー(3/31)

■ 決定事項
- ○○の仕様はBパターンで進める
- リリース日を4/5に確定

■ アクションアイテム
- 田中: ○○の修正対応(4/2まで)
- 鈴木: テスト環境の準備

■ 気づき・学び
- APIのレート制限に引っかかる事象あり、バッチ処理に変更

■ 未解決
- ○○の権限設定について要確認

■ 重要発言
> 「ここはユーザー体験を最優先にしたい」(田中)

n8nを知らない人へ

n8nはオープンソースのワークフロー自動化ツール。ZapierやMakeのセルフホスト版だと思ってもらえればいい。

VPS上にDockerで立てて使っている。月額のAPI課金だけで済むのが大きい。クラウド版もあるが、APIキーをたくさん扱うならセルフホストのほうが気が楽だ。

公式サイト: https://n8n.io/

ワークフローの構成(4ノード)

[Schedule Trigger] → [メッセージ取得] → [Claude API分析] → [Chatwork投稿]
    毎日20:00         Chatwork API        Anthropic API       結果を投稿

ノード1: Schedule Trigger

毎日20:00 JSTに発火。タイムゾーンを Asia/Tokyo に設定するだけ。

20時にしたのは、業務時間中の会話がほぼ出揃った頃合いだから。

ノード2: メッセージ取得(Code node)

GET /rooms/{room_id}/messages?force=1

force=1 がポイント。これを付けないと未読メッセージしか返ってこない。

取得したメッセージから、Bot自身の投稿は除外する。前日の要約投稿が翌日の要約に含まれるのは間抜けなので。

注意: レート制限 — Chatwork APIは 5リクエスト/300秒。複数ルーム対応するなら、ルーム間に60秒のウェイトを入れる。

ノード3: Claude API分析(Code node)

モデルは claude-haiku-4-5-20251001

Haikuを選んだ理由は2つ。速い(数秒で返る)。安い(入力$0.80/100万トークン。1回1円もかからない。月30回で数十円)。

プロンプトで以下の5項目を抽出させる。

  • 今日の決定事項
  • アクションアイテム(誰が・何を・いつまでに)
  • 気づき・学び
  • 未解決の課題
  • 重要な発言(原文引用)

「雑談は無視して、業務に関わる内容だけ抽出してください」と明示するのが地味に重要。これがないと、お昼のメニュー相談まで律儀に要約してくる。

ノード4: Chatwork投稿(Code node)

Claude APIの応答をそのままChatworkに投稿。Chatworkにmarkdown記法は使えないので、 を見出し代わりに使っている。

1週間動かしてみて

良かったこと

「今日なにが決まったっけ問題」が消えた。 20時に要約が流れてくるので、退勤前にざっと目を通すだけで1日の全体像が掴める。

アクションアイテムの見落としが減った。 会話の流れで「じゃあそれお願い」と軽く振られたタスクは、スクロールで読み返しても見逃しやすい。AIが「誰が・何を」の形式で拾ってくれる。

翌日の朝会が短くなった。 「昨日の振り返り」に時間を使わなくなった。要約を読んでいる前提で、「で、今日はどうする?」からスタートできる。

想定外だったこと

雑談と業務の境界がむずかしい。 プロンプトのチューニングで8割方は解決したが、完璧ではない。

メッセージが少ない日は寂しい。 「本日の決定事項: 特になし」と投稿されると虚しい。メッセージ数10件未満はスキップする条件分岐を後から追加した。

コスト実績

1日あたりClaude Haiku: 約0.5〜2円。月60円前後。

ハマりポイント

force パラメータ。 最初 force=0 で動かしていたら、2回目以降の取得件数がゼロに。API経由の取得で既読がつく仕様のため。force=1 に変更して解決。

時間フィルタリング。 GET /messages には日付フィルタがない。force=1 で返るのは最新100件。send_time で当日分だけにフィルタリングする処理を入れた。

Claude APIのレスポンス形式。 system プロンプトで「指定フォーマット以外の出力は禁止」と強めに書くと安定。

まとめ

4ノード、月60円、構築時間は半日。それでチームの情報把握が格段に楽になった。

「チームの会話、追えてないな」と思ったら、まずは1ルームだけ試してみるのがおすすめ。

Chatworkシリーズ


Chatworkシリーズ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?