Serverlessエンジニアがcloudの最前線でLINEのチャットボットを会社で進めていった理由

はじめまして。cloudpack(iret株式会社)の比企宏之と申します。

正確にはこの記事を書いている日数(今日は2019年1月30日)を含めてあと2日間なのですが、ServerlessでLambdaがUSでリリースされた頃から、NDAで言えない案件や、事例公開した案件を(※1)させて頂いていたのですが、2017年5月頃からLINEのチャットボットを色々手がけさせていただきました。

現在も進行中の案件が複数あり、Serverlessのcloudpack大阪からLINEのcloudpack大阪って感じになってきており、新しい柱を残せたかなと思ったりしていますが、なぜLINEのチャットボットをこんなにやり続けたのかは、スマフォアプリに関する様々な問題(実装方法ではない)と、Serverlessでサーバーサイドがインフラからある程度開放されたのに、アプリ側はほとんど変わらなかった実装的な部分があります。

スマフォアプリに関する様々な問題

現在のスマフォアプリはたくさんリリースされすぎて、新規でリリースして使ってもらうには課題が多すぎます。端末の容量は飛躍的に大きくなっているしAndroidなどはSDカードで拡張もできるので、昔あった容量が足りない問題などはあんまりないですが、

①インストールするのに少し時間がかかるので心理的なハードルがあり、おっくうになってインストールされない

②ホーム画面に配置してもらえないから使ってもらえず忘れられる

③プッシュ通知がOFFにされる&他のアプリの通知により流れる

④操作を覚えるのが面倒・・・

などの大きな課題があり、ゲームなどのエンタメ系ならともかく、企業がユーザーと接点を持つためのアプリは、リリースしてもはインストール数や利用率が伸びずに、メンテナンスもされず気がついたら終了のお知らせって感じになっています。そのようなアプリの作り的な話以前の背景的な話もあり、この頃は企業様も無理に作ろうとしなくなり、WEBサイトを充実させてWEBのプッシュ通知やメルマガでの誘導なんて考えたりもしますが、WEBのプッシュ通知はだいたいOFFにされ、メルマガもたくさんありすぎて見もされないメルマガフォルダに直行や、見てもらうために少し過激な表現を入れてしまったりしたら、メールのフィルターにかかって迷惑メールあつかいされユーザーの目に到達しない切ない状況になります。

そんな切ない時代でお客様から相談を受けても、そこは改善や緩和は作りでは難しいなと思っているときにLINEのチャットボットの存在をとある人の転職を契機に知りました。比企も知る前はLINEにはあまりポジティブな反応ではなかったのですが、とある人がLINEに転職した理由を知りたく、LINEのチャットボットやLINE LOGINなどの機能を調べだしました。

そこで色々調べるとチャットボットは使えば課題の即解決とまではいかないまでも、PFを使うだけで、先程上記で上げた課題の緩和をすることができることに気が付き、お客様にどんどん提案していき、いいねと言われ、案件化させていただきました。

①に関しては、WEBのリンクや現実世界のポップやポスターなどのメディアにQRコードを印刷して、それをユーザーがスマフォのカメラで読み込むだけで、一瞬で端末にインストール(LINEの友達追加される)され心理的なハードルを緩和します。

②に関してはチャットボットを保持するLINEアプリ自体がほとんどのユーザーのスマフォのホーム画面に配置されており、LINE自体は日本国内だけでも月間アクティブユーザー数:7,600万人以上、日間アクティブ / 月間アクティブ 率:85%という存在感がものすごく大きいアプリで、生活にも密着しています。このアプリの立ち位置を活用しない理由はありませんw。

③に関してはLINE自体のチャットボットのアカウントに通知内容が残り流されることはありません。他のアカウントが通知をたくさん送って来たら、アプリのアカウントのリストの下の方に表示され、認知されなくなるのでは?って話がありますが、LINEで通知をたくさん送ってくるアカウントはブロックされます(3日に1回以上通知するアカウントはブロックされるとよく聞きました)。またLINEのアカウントが統合されて、新しい金額の形態が発表されましたが、導入は非常に安価になりましたが、メッセージの超過分に関しては一通3円以下(通知数によって変化)となり、その結果、前のようなとりあえず通知しておこうって流れは今後減少するはずなので、通知先のセグメントと内容の質が問われるようになると思います。ちなみにですが、通知は有料ですが、チャットボットがユーザーから入力された内容の返信(Reply Message)については無料です。これは一方的な通知はLINE全体としてのユーザービリティが損なわれるので、コストをかけてまで通知する内容ですか?ってとこと、チャットボットへの入力に対する返信はユーザーがチャットボットを必要としているから無料と、ユーザー観点にたった判断とお聞きしています。

④は画期的なUIを作れても、操作の学習コストが必要です。LINEのチャットボットならLINEの操作になれた方なら素直に入っていけますので、心理的なコスト含め入っていきやすかと思います。特に幅広い年齢層の方が使っているのは絶大的です。

このようにスマフォアプリの今の課題に対してPFとして提案しているのがLINEのチャットボットの仕組みだと比企は捉え、様々なお客様に提案し、案件化していきました。

チャットボットができること

ユーザーとのコミュニケーション時のUI出力と入力の話

チャットボットというと、ユーザーの文字入力ありきでよく語られ、それに対して日本語の解析がうまく行かなくて、ちぐはぐな回答を行いユーザーに使ってもらえなくなるというお話をされる方はいますが、ユーザーはそんなに長い文章をチャットボットに入力しないし(文章は諦めて単語で入力してくる)、文章で対話するのではなく、チャットボットがUIを表示し、ユーザーに選択してもらって、コミュニケーションを取る方法が適切だと思います。LINEのチャットボットは詳しくはline developerMessaging APIを見ていただけるとわかりますが、テキストメッセージ、スタンプメッセージ、画像メッセージ、動画メッセージ、音声メッセージ、位置情報メッセージ、イメージマップメッセージ、テンプレートメッセージ、およびFlex Messageが使えます。下記動画を見ていただくと雰囲気がすごくわかります!

ちなみにチャットボットは何で動いているの?って話がありますが、チャットボットだけだと、後ろはWEBサーバーやAWS(他のクラウドのFaaSでも可能です)のServerlessならAPI GatewayとLambdaで、受け付けた入力内容をLINEのWEB APIをコールするだけで、良い感じのUIを表現できます。特にFlex Messageは https://developers.line.biz/ja/docs/messaging-api/message-types/#flex-messages に記載されているようなメッセージを作る事が可能で、表現が広がります。ちなみにメッセージを返すだけなら数行で実現できます。実装する言語もWEB APIを叩ける言語なら何でも可能なので好きな言語で実装してください。なおメッセージはJSONで実装なのでなれてないと面倒に感じるかもしれませんが、実はチャットボットのUIをデザインできてしかもJSONを出力する、 LINE Bot Designer という便利なアプリがあり、エンジニア以外でもデザインのプロトタイピングをしたい方含め、ぜひ一度試してみたらいかがでしょうか?

より表現力の高いUXの実現に「LINE Front-end Framework(LIFF)」

厳密にはチャットボットがなくても動くのですが、チャットボットと連携することによりよりユーザービリティの高いUIの実現が可能です。LIFFのリンクをクリックすると、チャットボットの画面にかぶさるようにJavascriptを実行可能なUIを表示させる事ができます。チャットボットではやりとりするとメッセージが流れていきますが、このLIFFを使うと固定された画面でユーザー操作が可能になります。LIFFの説明は https://developers.line.biz/ja/docs/liff/overview/ に記載されいますが、

を見ていただいたら、実装のイメージ含めわかるかと思います。これもS3などにHTMLファイルを配置するとサーバーなしで実現できます(git hubのWEBサイト機能でも実現可能)。

リアルとの連携、LINE Beacon

GUなどの店舗で実現されていますが、友達になったアカウントに紐づくBeaconを店頭に配置しているとBeaconのエリアに出入りすると、友達になっているアカウントにBeaconからの電波を受付てチャットボットのバックエンドに配置しているサーバーにユーザーからのメッセージではなく、Beaconからの通知を受付ます。その通知の内容に上記のメッセージを返信することが可能です。また友達になってなくてもBeaconの範囲に入ったら、友達になりませんか通知を送る事が可能で(審査あり)、その通知をLINEアプリでクリックすると友達になります。詳しい実装方法は https://developers.line.biz/ja/docs/messaging-api/using-beacons/ に記載していますが、実装自体はものすごく簡単で、フロントの実装なしに、サーバーサイドだけで実装が完了します。なおBeaconで使われている技術でBluetooth Low Energy(BLE)を使った、

という、LINEアプリ上のLIFFから、BLE経由でデバイスをコントロールするサービスもリリースされています。デバイスメーカーの方がデバイス作ってもアプリインストールしてもらえない問題をこれで解決できるかもしれませんね。比企もM5Stackなどで一度試して見ましたが、Arudino言語が使える方は結構簡単に繋げれると思います。

ざっくりとチャットボットでできる内容を記載してみました。これ以外にもLINEのチャットボットの中でURLを表示してユーザーがクリックしたらLINE内部のローカルブラウザに遷移してWEBの機能を呼び出しアプリとして具現化する事が可能ですし、LINE LOGIN(OAuth2.0の機能。チャットボットから使うとpasswordレスでできて、WEBのシステムで認証に使うとチャットボットと友達になりませんか?って機能も実現)やこの頃よく見るLINE PAYとの連携で決済したら友達追加機能など、WEBとチャットボット・決済とチャットボットを連携させる事が可能で使いこなすと非常に強力な機能をPFをとして実現しています。

ServerlessでPOCなどの予算が少ない場合にサクサクっと作り、結果的にインフラコストもほぼかからないケースが多く、Serverlessでお客様のニーズに答える最適解かなと思いやってきて、お客様にも高い満足感をもっていただきました。

LINEのチャットボットですべてを解決できるとは言い切れませんが、まずServerless(普通のWEBもですがw)でアプリを実現する場合、チャットボットファーストで考えてみるのはいかがでしょうか?GPSをバックグラウンドで実行とかしない限り、大体は実現可能ではないかなと思います。

自分が手がけた案件ではないのですが、ヤマト運輸の荷物の到着のやり取りができるアカウントや LINEで順番待ち とかは、非常にLINEのチャットボットとして素晴らしいユースケースかなと思います。比企も自分で素晴らしいアイデアが出るかはわかりませんが、個人的?にOMOMaaS に非常に興味があり、次の転職先でも関わっていければなと思います。


※1 事例公開した上記以外のServerlessな案件



この記事が気に入ったらサポートをしてみませんか?