n8nで業務改善「タスク管理表から未対応を自動通知し、対応漏れを無くす」
今回はローコードツールのn8nを使って社内で共有できるタスク管理を作っていきます。
タスク管理は様々な業種や職種で活用できます。今までのタスク管理の方法を変えたくない!という方でも、スプレッドシートでタスク管理をしているのであれば、今までの管理方法は変えずに作れるので是非試してください。
こんな困りごとにおすすめ
- 顧客対応や社内業務の状況が把握できず、顧客からのクレームが発生している
- 従業員に外出先でも状況を入力させたい
- 定期的に状況を通知して対応漏れを見逃さないようにしたい
n8nでの解決方法
「毎朝9時に、対応表から対応期日が過ぎていて未対応のものをLINEで通知する」を自動で実行出来るようにします。
やりたいこと
下記赤枠の2件を通知されるようにします。
完成フロー
ワークフロー作成
それでは作っていきます。
※この記事では基本的な操作説明は行っていません。
基本的な操作説明がわからない方は、まだn8nを操作したことがない人向けに「初めてn8nに触れる人向け!簡単ワークフロー」の記事がいくつかあるのでそちらを見て下さい。
Step0. 事前準備
スプレッドシートの準備
今回取得を行うスプレッドシートをGoogleドライブに準備してください。
下記のような、列見出しの表形式で作成したスプレッドシートを用意してください。
※最初の行が見出し、次の行以降が内容の表にすること。
Step1. Google Sheetsノード作成
Google Sheetsノードとは |
---|
・Googleスプレッドシートの取得・作成・更新・削除など操作が行えます。 公式の説明はこちら(英語) |
スプレッドシートの読み込みを行うための設定をします。
ノードの追加
Google Sheetsノードを追加します。
ノードの役割をNotesに記入する
※何のためのノードなのかのメモ書きです。 必要無い方は飛ばして頂いてもかまいません。
「歯車マーク」で設定を開いて役割を書いておきます。
- Notes:「スプレッドシートの読み込みを行う、」
- Display note in flow?:true
Notesを書いておくと、ワークフローにも一部が表示され、設定画面を確認すれば何のためのノードなのか後からも確認できます。
※ノード数が増えると何の為のノードなのか分からなくなるのでメモ書きはおススメです。
Credentialの設定
「Authentication」を「OAuth2」に設定します。
認証を行う
Google Cloud Platformの値を「Client ID」と「Client Secret」に設定し「Sign in with Google」ボタンから認証を行います。
Parametersの設定
認証以外のParametersを設定します。
- Resource:Sheet
- Operation:Read
- Spreadsheet ID:スプレッドシートID(スプレッドシートのURLの値をセットする「~spreadsheets/d/ スプレッドシートID /edit~」)
- Range:A:F(自身のスプレッドシートに合わせて変更)
- RAW Data:false
- Data Start Row:1(自身のスプレッドシートに合わせて変更)
- Key Row:0(自身のスプレッドシートに合わせて変更)
- Value Render Mode:Formatted Value
※「Range」「Data Start Row」「Key Row」
※「Value Render Mode:Formatted Value」は日付形式の値を日付として受け取る為の設定です。
「Execute node」を実行する
スプレッドシートの内容が取得出来ました。
ここまでのフロー
Step2. Date & Timeノード作成
Date & Timeノードとは |
---|
・日付と時刻のデータを操作し、それをさまざまな形式に変換出来ます。 公式の説明はこちら(英語) |
現在日付を取得
現在の日付は毎朝の時点の状況で判定するために必要です。
ノードの追加
Date & Timeノードを追加します。
ノードの役割をNotesに記入する
- Notes:「現在日付を取得。日付をスプレッドシートの形式に合わせる。」
- Display note in flow?:true
Parametersの設定
- Action:Format a Date
- Value:{{new Date()}}(Expressionに設定)
- Property Name:date
- Custom Format:true
- To Format:M/D
※「{{new Date()}}」
「new Date()」はJavascriptというプログラミング言語で現在の日付と時刻を取得するコードです。
n8nでは「{{}}」の中にコードが書けるので組み合わせて「{{new Date()}}」と書いて取得します。
※「To Format」の選択肢に自身のスプレッドシートで使っている日付形式がない場合だけ「Custom Format」をtrueにして、「To Format」を自分で書きます。
例)
「2022年11月24日」の場合->「YYYY年MM月DD日」
「Execute node」を実行する
今回のスプレッドシートの日付形式と同じ形式で現在日付が取得できました。
ここまでのフロー
Step3. Mergeノード作成
Mergeノードとは |
---|
・条件を決めて統合することが出来ます。 公式の説明はこちら(英語) |
Google SheetsノードとDate & Timeノードの取得結果をマージ(統合)します。
ノードの追加
Mergeノードを追加します。
ノードの役割をNotesに記入する
- Notes:「Google SheetsノードとDate & Timeノードの取得結果をマージ(統合)する。」
- Display note in flow?:true
フローを繋げる
下記をそれぞれ繋げる。
Google SheetsノードをMergeノードの「Input1」
Date & TimeノードをMergeノードの「Input2」
Parametersの設定
- Mode:Multiplex
「Execute node」を実行する
スプレッドシートの取得結果の後ろにDate & Timeノードで取得した現在日付が追加されます。
ここまでのフロー
Step4. IFノード作成
IFノードとは |
---|
・条件判定を行い、条件が正しい場合と正しくない場合で実行するワークフローを変更できる。 公式の説明はこちら(英語) |
取得した値を条件で絞り込みます。
今回の条件は「対応期日が過ぎていて未対応のもの」です。
ノードの追加
IFノードを追加します。
ノードの役割をNotesに記入する
- Notes:「LINEに送信したいデータだけに絞り込む。抽出条件:対応期日が過ぎていて未対応。」
- Display note in flow?:true
Parametersの設定
- Add Condition:Date & Time
- Value 1:{{$json[“対応期日”]}}(Expressionに設定)
- Operation:Occurred before
- Value 2:{{$json[“data”]}}(Expressionに設定)
- Add Condition:String
- Value 1:{{$json[“対応完了日”]}}(Expressionに設定)
- Operation:Is Empty
「Value」に設定する値は「Expression」の「Current Node」->「Input Data」->「JSON」から選択できます。
※「Input Data」が表示されていない場合はMergeノードを1度実行してください。
前のノードが1度も実行されていないと渡ってくるデータが分からず選択できません。
「Execute node」を実行する
設定した条件で抽出できました。
条件に一致したデータをLINEで通知します。
条件に一致
(対応期日が過ぎていて未対応)のデータが取得されています。
条件不一致
一致しなかったデータも確認できます。
ここまでのフロー
Step5. Setノード作成
Setノードとは |
---|
・新しくデータを作ったり、受け取ったデータを書き換えたりでき、次のノードに渡すことが出来る。 公式の説明はこちら(英語) |
LINEに通知したい内容に値を編集します。
ノードの追加
Setノードを追加します。
ノードの役割をNotesに記入する
- Notes:「取得したデータをLINEに通知したい内容に編集する。」
- Display note in flow?:true
フローを繋げる
一致した結果はtrueに繋げることで取得できます。
Parametersの設定
- Add Value:String
- Name:LINE(好きな名前で構いません)
- Value:LINEに表示したい内容(Expressionに設定)
※今回はValueに下記のように書いています。
内容:{{$json[“内容”]}}
担当者:{{$json[“担当者”]}}
対応期日:{{$json[“対応期日”]}}
「Execute node」を実行する
Parametersに設定した内容でLINEという新しい項目が作られました。 この項目をLINEに送信します。
ここまでのフロー
Step6. Lineノード作成
Lineノードとは |
---|
・取得した内容をLINEへ通知することが出来ます。 公式の説明はこちら(英語) |
LINE通知の設定します。
ノードの追加
Lineノードを追加します。
ノードの役割をNotesに記入する
- Notes:「LINEに通知する。」
- Display note in flow?:true
Credentialの設定
LINE Notifyの情報を設定して「Connect my account」ボタンから設定を行います。
※LINE Notifyの設定方法が分からない方はLINE Notifyの設定方法の記事 があるのでご参考ください。
Parametersの設定
認証以外のParametersを設定します。
- Resource:Notification
- Operation:Send
- Message:{{$json[“LINE”]}}(Expressionに設定)
「Execute node」を実行する
2件送信されました。
LINEで通知内容を確認するとSetノードで作成した内容で2件通知されています。
ここまでのフロー
Step7. Cronノード作成
Cronノードとは |
---|
・ワークフローを一定の日付、時間、または間隔で定期的に実行するようにスケジュールできます。 ※タイムゾーン(標準時間帯)の設定に注意しましょう。日本時間の場合はTokyoを選択しておく必要があります。 公式の説明はこちら(英語) |
自動化する
今は手動で実行しないと動きません。
毎朝9時に自動でLINE通知できるように設定します。
※デスクトップアプリを立ち上げていないと自動実行も行われないので注意しましょう。
ノードの追加
Cronノードを追加します。
ノードの役割をNotesに記入する
- Notes:「毎朝9時に実行する。」
- Display note in flow?:true
フローを繋げる
開始ノードをStartノードからCronノードに変更します。
※Startノードは使用しないので分かり易くする為に、Activate/DeactivateNodeボタンでDisabledにしています。
Disabledにしなくても特に問題はありません。
Parametersの設定
- Mode:Every Day
- Hour:9
- Minute:0
※Cronノードを使用する時は、タイムゾーン(標準時間帯)の設定に注意しましょう。日本時間の場合はTokyoを選択しておく必要があります。
ワークフローごとにタイムゾーンの設定が可能です。
「Workflow」->「Settings」
「Execute node」を実行する
結果を返すノードではないのでこれで成功です。
ここまでのフロー
これで、「毎朝9時に、スプレッドシートの対応表から対応期日が過ぎていて未対応のものをLINEで通知する」ワークフローは完成です。
(通知を1回にしたい場合)Step8. Item Listsノード作成
Item Listsノードとは |
---|
・リスト(配列)で受け取ったデータを1件のデータにしたり、重複削除や並べ替えなど加工が出来ます。 公式の説明はこちら(英語) |
現状のフローだと、通知対象の件数分の通知が行われます。
1回の通知にまとめたい場合はこのStepでフローを変更してください。
通知対象(対応期日が過ぎていて未対応のもの)が複数件の場合でも1通にまとめて通知する場合の設定です。
ノードの追加
Item Listsノードを追加します。
ノードの役割をNotesに記入する
- Notes:「受け取ったデータが複数の場合、1件にまとめてLINEノードにデータを渡す。」
- Display note in flow?:true
フローを繋げる(必要な場合のみ)
SetノードとLineノードの間に繋げます。
Parametersの設定
- Operation:Aggregate Items
- Input Field Name:LINE(Setノードで設定した項目名)
- Rename Field:false
「Execute node」を実行する
LineノードのParametersの設定を修正する
Lineノードに渡すデータがItem Listsノードで設定したものに変わったのでLineノードの設定も修正します。
Parameters
- Message:{{$json[“LINE”].join(', ')}}(Expressionに設定)
※リスト(配列)で受け取っているのでLINE横のアイコンをクリックすると選択できるようになっています。
その中から「Values」を選びます。
「Execute node」を実行する
実行結果が1件になっています。
LINEで通知内容を確認すると通知も1件でされています。
通知を見やすく改行する
1件目と2件目が「,」で区切られていて少し見づらいので、改行するように修正します。
Parameters修正
- Message:{{$json[“LINE”].join(‘\n\n’)}}(Expressionに設定)
「\n」で改行を意味します。
※「\」と打つとn8nアプリでは「バックスラッシュ」で表示されますが問題ありません。
「Execute node」を実行する
繋がっている文章を2回改行したので1行空行を入れて見やすく出来ました。
完成したワークフロー
最後に
いかがだったでしょうか?
ノード数は少し多いですが、一つ一つのノードで何をしたいのかをハッキリさせておくことで理解もしやすくなると思います。
効率化だけではなく、漏れや見落としなどを減らし業務の質を上げることにも繋がると思いますので、ぜひ取り入れてみてください。
あなたのデジタル化も
掲載しませんか?