この記事はdotD公式noteの転載です。
執筆者は、CDO 菊野智矢さんです。
https://www.wantedly.com/companies/company_7005547/post_articles/371931
こんにちは、dotDで開発リードをしている菊野です。
今回弊社の新しい自社事業としてEdTech領域のサービスである「meepa」の立ち上げに伴い、リーンスタートアップの考え方に則ってMVPのチャットbotサービスの開発を行いました。
より早く、簡単に事業アイデアをサービスに落とすということを念頭にLINEベースでのチャットサービスを構築しましたので、構想から実証実験までを振り返りつつ、システム構成から実際の開発・運用上のメリット・デメリットについて考察できればと思います!
目次
- サービスについて
- サービス設計
- LINE Officail アカウント + Messaging API (LINE Bot)
- GAS + スプレッドシート
- まとめ
サービスについて
まず、弊社で今回立ち上げたサービス「meepa」についてですが、「「子どもの本当の好きに出会えるAIによる課外活動マッチング」をコンセプトとした、忙しい親御さん向けにチャットでお子さんが熱中できる習い事を提案してあげるサービスになります。詳しいサービスの内容は下記をご覧頂けたらと思います!
Meepa | 子どもの本当の好きに出会う 課外活動マッチング子どもの本当の好きに出会う 課外活動マッチング。meepaは親の思い込みや限られた情報にとらわれない、子どもの「本当の好きmeepa.io
サービス設計
システム観点で必要な要素としては大きく以下のような要件がありました。
その上でどのような構成のサービスにすれば良いか設計を行いました。
ユーザ側
・フォームでユーザ登録できること
・習い事の体験レッスン情報をユーザに対し提案できること
・体験レッスンの予約・変更・キャンセルができること
運営側
・教室情報を管理できること
・予約情報を管理できること
ユーザさんとのインタラクティブなやり取りをもとにしたレッスンのレコメンドや予約体験を提供するため、botによるチャットベースでのサービス設計することにしました。
また、チャットbotの実現方法としては手軽に利用可能かつユーザさんの利用チャットプラットフォームとして国内では定着しているLINEのbotモードを利用することとし、サーバサイドについても運営側でのマスタのメンテや予約管理の直接のメンテがやりやすく別途管理画面などの開発が不要となるようGAS(Google App Script)とGoogle スプレッドシート をベースに構成しました。
さらにサービスのランディングページについてもコーディングなしでWebサイトが作れるSTUDIOを採用したり、ユーザさんや体験レッスンを提供してくれる教室向けの登録フォームについてもGoogleフォームを利用することで、まずは素早く作成でき、公開後も容易に改善が行えるようにしました。
以上をまとめると、システム構成の概要は下記のようになります。
実際にこの構成でLINEチャットbotによる実証実験を開始し、運用を進めてみました。改めて振り返ってみると、初期開発のスピードや改善のしやすさなど当初想定していたメリットなどは十分にあったものの、色々と制約や課題も出てきましたのでその辺りをまとめていきたいと思います。
LINE Officail アカウント + Messaging API (LINE Bot)
LINEでBotサービスを作るにあたっては、下記のメリット・デメリットを感じたのですが、特にLINEのbotモードでユーザさんとのチャットの履歴がLINEアプリ上から確認できないという仕様に苦しみました。。(結果的にはスプレッドシート 上にユーザさんとのメッセージのやり取りのログを書き出すような対応で何とか対処しています。)
メリット
・LINE Messaging API経由でロジック部分のみ作り込めば良いので手軽にbotが作れる
・LINE Flex Messageでリッチなカード型のUIをカスタマイズできる
・LINE リッチメニューでキーボードエリアにメニュー画面を作れる
・LINE クイックリプライで簡単な選択式の返答ボタンを作れる
デメリット
・botモードにしていると個別にユーザさんとチャットができない
・UI上の制約によりUXを追求できない
GAS + スプレッドシート
GASに関してはJavaScriptベースでオンライン開発もできるので技術的なハードルが低い一方で、スプレッドシートをDBの代わりとして使うことには処理速度やオペミスリスク等の面で運用上の制約が多々あることがわかりました。
また、一般的なシステムの構成との違いとして、GASファイルやスプレッドシート等は作成者のGoogleアカウントに紐づくため、ユーザの削除等をしてしまうことで急にシステムが動かなくなるといった障害が発生するという事件もありましたので注意が必要です。
メリット
・GASの言語はJavaScriptベースなので、ハードルが低い
・Webブラウザ上でオンラインでも開発ができ、デプロイまで行える
・管理側のデータ操作のオペレーションをスプレッドシート上で行えるため、追加でのインタフェース開発が不要
・無料で使える
・PaaSのためインフラ構築、運用が不要
デメリット
・スプレッドシートのデータの読み書きの処理速度が圧倒的に遅い
・スプレッドシートでのデータの読み書きに関わる実装が煩雑になりがち(SQLっぽく記述できる個人公開のライブラリも存在するが、不便な点も多い)
・スプレッドシート をダイレクトに操作することでオペミスによるデータの変更リスクが高い
・ファイルや設定が作成時のGoogleアカウントに依存してしまうため、Googleアカウント変更の際にはシステムが停止しないよう注意が必要
まとめ
今回LINEやGoogleのサービスを使った簡易PoC構成についてご紹介しました。やってみてわかったシステムの弱点はここに書ききれなかったものも多々ありますが、下記のような方にはオススメかなと思います!
・とにかく早くチャットボットのサービスを立ち上げて検証したい
・バックエンド開発のスキルがない
・1人で開発する必要がある
・とにかく無料で動くものを作りたい
・想定ユーザ数の規模が2桁以内程度
最後に、弊社dotDでは、新しい事業を共に作っていくためのエンジニアのメンバーを募集しています。まずはカジュアルにお話を聞いてみるというスタンスでも構いませんので興味を持ってくださった方はお気軽にご連絡ください!
www.wantedly.com子どもの本当の好きと出会う!EdTech事業立ち上げエンジニア募集! by 株式会社dotD株式会社dotD募集要項をみる