我が社の社内でのとある会話です。
●●店って担当者誰?
▲▲店の店舗コードってなんだっけ?
私は小売業界で勤務しているのですが、私の部署ではこのような会話をよく耳にします。
PC使って保存しているエクセルシートを見ればわかる内容なのですが、
みんな調べるのがめんどうなので、周りの人に聞きます。(即答はしてもらえません)
最近会社がフリーデスク化され、紙で出力して貼っておくようなアナログ的なやり方も無理。
さらには出張で店舗~店舗を移動していることもしばしばあります。
そんな微妙な立ち位置の店舗情報をシュッと取り出せたらいいなと思い
Make(旧Integromat)を使ってノーコードでLINEBotを作ってみました。
最終的にできた動作とシナリオはこちら
今回使用したもの
手順
STEP1 GooglesheetをSSSAPIを使ってAPIに変換する
Googlesheetには下記画像のようなデータを入力しておきます。
右側はAPPIに変換した後、プレビューで確認したものです。
完全一致しないと検索でヒットしないので、Googlesheetには検索されやすそうなワード(漢字、ひらがな、漢字+店舗)の3パターンを記入
SSSAPIを使ってAPIに変換する手順はこちら↓↓↓
STEP2 MakeでHTTPモジュールとLINEモジュールを繋げる
Makeを使ってHTTPモジュール(Make a request)とLINEモジュール(Send a Push Message)を
作成し繋げます。
最初、URL欄に取得したAPI+event+message.Textのまま実行したところ、●●店と検索してもエラーで返されました。
ひらがなや漢字はそのままだとエラーになるので、encodeurlを使って文字コードに変換させる必要があります。
STEP3 Routerモジュールの分岐設定
Routerモジュールを使って検索したデータがない時とデータがあるときに分岐させます。
ここでデータがない場合の条件をどうするか迷いました。
そこで一つ前JSONモジュールのStatus codeを確認すると、入力データがある場合(成功のとき)は200、
入力データがなかった場合(失敗のとき)は404となっていました。
ということでRouterモジュールの分岐条件は下記のように設定します。
これで分岐部分もうまく動くようになりました。
終わりに
【感想】
Makeを使い初めてBotを作りましたが、時間がかかった分、うまくいったときの感動しました。
ただお試しで作ったBotなのでかなり雑な部分はあります。ほかにも使えそうな内容を勉強して実用的な物に作り変えていけたらいいなと思います。
一応、会社の人にも使ってもらったところゆるいけど、使えるねと言ってもらえました。
【反省】
- 今回は想定されるワードをあらかじめ入力していますが、検索したワードが完全一致しないでも近いワードを推測して返すようなことができたらいいなと思っています。
- SSSAPIは50行までしかAPIに変換できないため、データ量が多い場合は別の方法を検討する必要があります。