はじめに
どうも八巻軍の大河原です。(書かせられました)
みなさんn8n触ったことあるでしょうか?
n8nとはノーコード、ローコードで業務の自動化を簡単に実現するためのツールです。
お恥ずかしながら私はn8nについてまったく知らず、「なんか便利そう」、「Difyっぽいやつ」といったイメージしか持っておりませんでした。ですがあまりにも日々のXの投稿でおすすめされるので、ものは試しということでn8nをしようして日常の問題を解決してみようと思います。
解決する課題
「うわースーパーに行ったのにあれ買い忘れたー」を解決します。
課題の解決
なんかしらのメモツールを使用するのでもいいのですが、普段家族では必要なものをlineでメモする習慣があったのでこれをうまく汲み取りつつ任意の時間に通知する仕組みをn8nをしようして作ってみます。
実際に作ってみる
ワークフローを作ってみる
登録するとダッシュボードがでるのでcreate workflowからワークフローの作成を行います。
今回下記の3つのワークフローを作成しました。
- データ登録
- 定期送信
- 送信処理切り出し(サブワークフロー)
データ登録
ここでの登場人物は
- Webhookノード
- 特定のwebhookを起点にしてワークフローを発火させます。今回はlineのMessaging APIを起点としてメッセージをうけたらワークフローを発火させます。使用にはn8n内で別途Credentialの登録が必要です。
- Ifノード
- 特定の条件を指定してフローを分岐させることができます。ここではlineから受け取ったメッセージが「買い物リストをみせて」だった場合は送信処理のサブワークフローを発火させます。
- Execute Workflowノード
- 別のワークフローを指定して動かすことができます。上述の通り送信処理をよびだしています。
- Edit Fieldsノード
- 前のフローの結果データに処理を加えます。
- Basic LLM Chainノード
- LLMにプロンプトをなげることができます。ここではlineのメッセージから購入品目名と購入日と緊急度をメッセージから抽出するようなプロンプトを投げています。使用にはn8n内で別途Credentialの登録が必要です。
- Split Outノード
- リストデータを分割することができます。
- Google Sheetsノード
- スプレッドシートのデータに書き込み、読み取り、シートを作成など様々なことができます。ここでは買い物リストのデータ格納場所として使用しています。使用にはn8n内で別途Credentialの登録が必要です。
定期送信
-
Schedule Triggerノード
- 定期実行を行うためのノードです。毎日深夜に明日の買い物リストが送られてきます。
-
Execute Workflowノード
- 別のワークフローを指定して動かすことができます。先ほどと同様送信処理をよびだしています。
送信処理切り出し(サブワークフロー)
- When Executed by Another Workflowノード
- このノードから始めることでn8nにこれはサブワークフローであることを宣言します。
- Codeノード
- JavaScriptで記述した処理を実行させることができます。ここでは送信すべき項目かやどのような文言にして送信するかの処理を行っています。
- HTTP Requestノード
使ってみる
登録
line上から「明日入浴剤を買って明後日髭剃りをかいます。そういえば洗剤もないのであしたかわないと」
と入力した場合の登録が以下
買い物リストの要求
line上から「買い物リストをみせて」と送った場合のメッセージが以下
使ってみて
- このような単純な動作であれば問題なく実装できるなあという所感でした!簡単に実装が可能だしノードを繋げるだけで動くので他のことにリソースを使うことなくすぐに実現できるところが素敵です!クラウド上のものであればサーバーの管理も必要ないですしね!
- 今回はメインはlineとスプレッドシートとgeminiとの連携でしたがnotionやgithubやgoogle analyticsなどなどかなりのサービスとの連携が取れるので業務上で自動化できそうなものがかなり浮かびました!
- difyとの棲み分けについてはAI系の処理に特化したものはDify、各サービスとの連携はn8nといった感じでしょうか?n8nからdifyを呼び出すこともできるので使ってみたいです!