n8nを使ってWebメール(GmailやOutlook、YahooMailなど)で受信したメールを要約してLINEに送れるようなワークフローを作ってみました。
今回作った内容はセミナーやイベントの告知メールを判断し、LINEに送ってくれるようなものです。
n8nすら最近知ったレベルなので、超初歩的な内容ですが、めちゃくちゃ簡単で便利(半日でできた)な物でした。
はじめに
n8n(エヌ エイト エヌ)とは
ノーコード/ローコードで業務プロセスを自動化できるオープンソースのワークフロー自動化ツールです。
- 主な特徴は以下
| 特徴 | 内容 |
|---|---|
| ノーコード対応 | ドラッグ&ドロップでワークフローを構築可能 |
| オープンソース | 自由にカスタマイズ・セルフホストが可能 |
| 700以上のサービスと連携 | Slack、Gmail、Google Sheets、OpenAIなど |
| 条件分岐・ループ処理 | if文やループもGUIで実装できる柔軟性 |
| AIとの連携 | ChatGPTなどの生成AIとも統合可能 |
-
利用方法
n8n Cloud:クラウド上で利用(14日無料)
セルフホスト:Dockerなどでローカル環境に構築可能(無料)
※クラウド版からローカルへの移行も可能 -
ユースケース
・メール受信 → 自動でSlack通知
・フォーム送信 → Google Sheetsに記録
・Webhook受信 → OpenAIで要約 → LINE通知
・定期実行でレポート生成 → 自動送信
当方のスペック
・n8n利用経験:皆無(最近知ったレベル)
・業務ワークフローの構築経験:皆無
・OpenAI利用:その辺を歩いている人レベル
・困ったら:Copilot先生にお伺い
最初に
何が出来るのか、何をしないといけないのかわからないので、とりあえずCopilot先生と相談しながら以下のステップで進めることにしました。
| STEP | 概要 |
|---|---|
| 1 | 環境用意 |
| 2 | n8nでworkflow作成 |
| 3 | Webメールと連携 |
| 4 | OpenAIと連携 |
| 5 | LINEと連携 |
ちなみに、作成したworkflowは以下のようになっています。

アイコンの一つ一つを「ノード」と呼び、外部サービスと連携するノードと、連携して受け取った情報を処理(フィールドの変換や処理分岐等)するものがあります。
STEP1.環境用意
環境として以下を用意します。
・n8n登録(クラウド版にしました。)以下から登録可能です。
クラウド版はインストール不要で14日ほど無料で使えるようです。
・Webメール(これは持ってるもので。今回はとりあえずOutlookにしました。)
・OpenAIアカウント(今回は無料で使ったのでアカウントはなくてもいけました)
※本体はAPIキーが必要ですが、「openAI Chat Model」を選択すると「Get 100 free OpenAI API credits」とメッセージが出て、少しだけ無料で使えます。しかも、APIに連携しなくても勝手にCredential情報も連携してくれました。(「n8n free openAI API credits」となり連携しれくれました)
・LINEアカウントとLINE Developers アカウント
STEP2.n8nでworkflow作成
n8n Cloudに登録するとブラウザから以下の画面にアクセスできるようになるので真ん中の「 + 」を押してノードを追加していきます。

STEP3.Webメールと連携
Webメールと連携です。
今回はHotmailにしてます。(MSからのセミナーやイベント情報がいっぱい来るので)
将来的には複数のメールアカウントで受信しているものをまとめたいと思っています。
Nodes検索で「Microsoft Outlook」 > 「Triggers」 > 「On message receieved」で画面が遷移したら一番上の「Credential to connect with」でメール接続します。(n8nと連携します)
その後、「Tetch Test Event」を実行するとメールの中身を引っ張ってきます。
STEP4.OpenAIと連携
Nodesでopenaiを検索します。色々出ますが、今回はとにかくお金かけたくなかったので「OpenAI Chat Model」を選択(ご自身のOpenAIのアカウントがあり、APIキーが発行できる方であれば他のものを選択してもよいかもです)
ただ、これの注意は「When chat message received」というノードがセットでついてきて、これをInputにBasic LLM Chain経由でOpen AI Chat Modelが動くようで、直接接続はできません。
というのも、もともとWebメールから抽出したフィールドが「subject」とか「bodyPreview」とかに対し、認識できるフィールドが「chatInput」というものなので、直接つなげるとパラメータが空っぽ(empty)扱いされてしまうからです。
そこで間に「set」ノードを追加し、フィールドを変換してあげることで読み込めるようになります。

こんな感じで変換です。(subject & bodyPreview → chatinput)

これで無事に読み込めるようになるので、
Basic LLM Chainでやりたいことを(要約とか)を指示出せるようになります。
ちなみに今回AI処理を2か所に入れてます。

①は内容を読みこんで、セミナー、イベント情報なのかを判断する。(はい、いいえを返す)
②は内容を要約する。
という動きになります。
間に入っている緑のノードが「If」ノードで「はい」なら後続処理を行う。という動きになります。
以下のメール本文を読んで、セミナーまたはイベントに関する案内であれば、次の項目を簡潔に要約してください
タイトルはメールのsubjectをそのままつけて下さい。
また、登録・申し込みリンクはそのままつけてください。
- タイトル
- 日時(例:「7月12日 15:00〜」)
- 会場または開催形式(例:オンライン or 会場名)
- 主催・登壇者(わかる範囲で)
5.登録・申し込みリンク
※②でエラー出ていますが、ちょっと無理くり作っているので、構文正しくなくエラーになってます。でも動く部分は問題ないのでエラーのまま進めてます。
STEP5.LINEと連携
LINEとの連携はHTTP Requestノードで行います。
ただ、その前にlineに送れるようにまたメッセージを変換します。

LINE連携は事前にMessage APIの有効化とbotの作成が必要になります。
それが出来たら以下のように中身を作成します。
Send HederのJSONは以下
{
"Authorization": "Bearer LINEボットのチャネルアクセストークン",
"Content-Type": "application/json"
}
※LINEボットのチャネルアクセストークンは以下から確認可能

Send bobyのJSONは以下
{
"to": "LINEボットの「あなたのユーザーID」",
"messages": [
{"type": "text",
"text": "送りたいメッセージ"
}
]
}
※ユーザーIDはUから始まるもので、以下から確認可能
これでworkflowを実行すると、LINEで無事に受信しました。

まぁ元メールはもう少し複雑なんですが、最初のWebメールからの連携のところでちゃんと情報を抽出しきれていないようなので、まだまだ改善していかないと実用には耐えられないかな。という状況です。
30点くらいですね。
最後に
業務ワークフローの自動化ですが、こんなに簡単に作れるなら日常に取り入れるのもアリかなと思いました。
というかめっちゃ便利すぎてこれはガチ利用するかもです。
あと、エラーが出るとAI Assistantがいるので「Ask Assistant」を押すとかなり丁寧に教えてくれます。コードが間違ってると正しいコードも教えてくれます。
最初は英語で返しますが「日本語で教えてくれ」と言ったり、その後の質問を日本語で行うと日本語で返してくれます。助かる。
今後アップデートすることがあればまた投稿したいと思います!






