前回までで、n8nで作成したチャットボットを関西弁で喋るようにしてきました。
今回は、さらに簡単なプログラムを施すことで、n8nの挙動を細かく制御できる事を紹介します。
『アクセスした時間帯によって、チャットボットの挨拶を変化させる』
初期メッセージを「プログラム」する
初期メッセージをカスタマイズするには、「チャットトリガー」ノードを選択して設定画面を開き、Initial Message(s)を設定していきます。
デフォルトでは「Fixed」になっているところを「Expression」を選択し、コードを仕込んでいきます。
n8n ではInitial Message(s)だけでなく、プロンプトなどの各所で、固定テキストのかわりに、{{ }}で囲われた内部にJavaScriptコードを書いて、プログラム的に挙動を制御することが可能です。
Initial Message(s)に下記のようなコードを記述してみましょう。
{{ (() => {
const tz = 'Asia/Tokyo'; // タイムゾーンを指定
const hour = parseInt(
new Intl.DateTimeFormat('ja-JP', { hour: '2-digit', hour12: false, timeZone: tz }).format(new Date()),
10
);
let greetmsg = 'まいどですー';
if (hour < 5) greetmsg = '遅うにすんまへん';
else if (hour < 12) greetmsg = 'おはようさんですー';
else if (hour < 18) greetmsg = 'まいどですー';
else if (hour < 22) greetmsg = 'おばんですー';
else greetmsg = 'おばんですー';
let rtnmsg = `${greetmsg} ただいま ${hour}時台やで。`
+ `n8nチャットへようお越し!\n\r`;
rtnmsg += 'なんぞお手伝いしましょか?';
return rtnmsg;
})() }}
※本ブログの運営ツールの特殊文字列の扱いの都合上、{{ や }}の}と}の間に「ゼロ幅スペースが入っています。コピペして利用される際にはご注意下さい。(ゼロ幅スペースを取り除いて下さい。)
例示している内容は非常に簡単なものですので、JavaScriptコード自体の解説は割愛します。
単にアクセス時のカレント時間を取得して、時間帯により挨拶メッセージを変えているだけです。
コードを仕込んで、Saveしたうえで公開ページにアクセスしてみましょう。
↓17時台にアクセス
↓18時台にアクセス
このように、プログラム的にn8nの挙動を制御することができます。
今回は非常にシンプルなコードですが、n8nで「プログラム」を仕込む基礎となります。
n8nはノーコードでも強力に利用することが可能ですが、少しプログラム的な制御を加えることで、より高度な処理を実行できます。n8nが「プログラマブル」であり、エンジニア向けのAIワークフローツールと言われる所以です。