はじめに:n8nとLLMで自動化を次のレベルへ
日々の業務には、単純な繰り返し作業だけでなく、少し頭を使う必要のあるタスクも多く存在します。もし、これらの「判断」や「生成」を含む作業を自動化できたら、業務効率は飛躍的に向上するでしょう。それを可能にするのが、ワークフロー自動化ツール「n8n」と大規模言語モデル(LLM)の組み合わせです。
n8nは、様々なWebサービスやアプリケーションを連携させ、ノーコード/ローコードでワークフローを構築できる強力なツールです。一方、ChatGPTに代表されるLLMは、人間のように自然な文章を生成したり、テキストを要約・分類したりする能力を持っています。
この記事では、n8nとLLMを連携させ、これまで自動化が難しかった知的作業を含む業務ワークフローを構築する実践的な方法を、具体的な例を交えて初中級者向けに解説します。
n8nとLLMを連携させるための基本設定
ワークフロー構築を始める前に、n8nとLLM(ここではOpenAIを例にします)を連携させるための準備が必要です。まず、n8nのアカウントとOpenAIのAPIキーを用意してください。n8nはクラウド版でもセルフホスト版でも構いません。
次に、n8nのダッシュボードから「Credentials」に移動し、新しいクレデンシャルを追加します。「OpenAI API」を検索し、取得したAPIキーを入力して保存します。これで、n8nのワークフローからOpenAIのAPIを安全に呼び出す準備が整いました。
試しに簡単なワークフローを作ってみましょう。「Manual」ノードで手動実行トリガーを設定し、次に「OpenAI Chat Model」ノードを追加します。Authenticationで先ほど設定したクレデンシャルを選択し、Promptに「n8nとは何ですか?」と入力して実行してみてください。LLMからの回答がノードの出力として得られるはずです。これがn8nとLLM連携の第一歩です。
実践例1:顧客からの問い合わせメールを自動で分類・要約
最初の実践例として、顧客から受信したメールの内容をLLMが分析し、内容を分類・要約してSlackに通知するワークフローを作成します。これにより、担当者はメールを開く前に概要を把握でき、迅速な対応が可能になります。
このワークフローは主に「Email Read IMAP」「OpenAI Chat Model」「IF」「Slack」の4つのノードで構成されます。
1. メールの取得: <code>Email Read IMAP</code> ノードを設置し、監視したいメールサーバーの情報を設定します。これで新しいメールを受信した際にワークフローがトリガーされます。
2. LLMによる分析: <code>OpenAI Chat Model</code> ノードで、メール本文をLLMに渡し、分類と要約を依頼します。成功の鍵はプロンプトの設計です。以下のようなプロンプトで、出力をJSON形式に指定すると後続の処理が容易になります。
以下のメール内容を分析し、指定されたJSON形式で出力してください。
- category: "製品に関する質問", "料金に関する問い合わせ", "不具合報告", "その他" のいずれか
- summary: 3文程度の簡潔な要約
- sentiment: "positive", "neutral", "negative" のいずれか
---
メール本文:
{{ $('Email Read IMAP').item.text }}3. 結果に応じた通知: <code>IF</code> ノードを使い、LLMの出力したカテゴリ(例: `{{ $('OpenAI Chat Model').item.json.choices[0].message.content.category }}` が "不具合報告" と等しいか)によって処理を分岐します。最後に <code>Slack</code> ノードで、カテゴリに応じたチャンネル(例: 不具合報告は開発チームのチャンネル)に要約と感情分析の結果を通知して完了です。
実践例2:Web記事を元にSNS投稿文を自動生成
次に、自社ブログなどの新しい記事が公開された際に、その内容を元にSNS(X/Twitterなど)への投稿文を自動で生成するワークフローを作成します。これにより、コンテンツマーケティングの運用負荷を軽減できます。
このワークフローは「RSS Feed Read」「HTTP Request」「OpenAI Chat Model」などのノードを使用します。
1. 記事情報の取得: まず <code>RSS Feed Read</code> ノードで、ブログのRSSフィードを定期的にチェックし、新しい記事のURLを取得します。次に <code>HTTP Request</code> ノードを使い、取得したURLにアクセスして記事の本文を抽出します。ページのHTML構造に合わせて、Extractor機能で本文が含まれる要素のCSSセレクタ(例: <code>article .content</code>)を指定するのがコツです。
2. LLMによる投稿文の生成: 記事本文を <code>OpenAI Chat Model</code> ノードに渡して、SNS投稿文を生成させます。ここでもプロンプトが重要です。
以下の記事内容を元に、X (旧Twitter) 向けの魅力的な投稿文を3パターン作成してください。
# 制約条件:
- 140文字以内
- 記事の要点が伝わるように書く
- 読者の興味を引くようなキャッチーな表現を心がける
- 関連するハッシュタグを3つ付ける
- 最後に記事のURLを必ず含める
# 記事本文:
{{ $('HTTP Request').item.text }}
# 記事URL:
{{ $('RSS Feed Read').item.url }}3. 手動確認と投稿: 生成された投稿文をそのまま自動投稿するのはリスクが伴います。n8nの承認機能を使ったり、生成されたテキストをスプレッドシートやSlackに送信したりして、人間が一度内容を確認するステップを挟むのが安全です。確認後、手動で投稿するか、承認をトリガーにしてSNS投稿ノードを実行するようにしましょう。
まとめ:n8nとLLMで創造的な自動化を実現しよう
この記事では、n8nとLLMを連携させることで、単なる定型作業の自動化を超えた「インテリジェントな自動化」を実現する方法を解説しました。メールの自動分類・要約やSNS投稿文の生成といった例を通じて、その強力な可能性を感じていただけたのではないでしょうか。
n8nとLLMの組み合わせは、ここで紹介した以外にも無限の応用が考えられます。例えば、オンライン会議の文字起こしテキストから議事録の要約を生成したり、顧客レビューの感情を分析して製品改善に繋げたり、特定の要件に基づいた簡単なコードスニペットを生成させたりすることも可能です。
重要なのは、自分の業務の中で「判断」「要約」「生成」といった知的作業がどこに潜んでいるかを見つけ出し、それをLLMに任せられないかと考えてみることです。ぜひ、n8nとLLM APIを手に取り、あなた自身の業務を効率化する創造的なワークフロー構築に挑戦してみてください。