ZEALS TECH BLOG

チャットボットでネットにおもてなし革命を起こす、チャットコマース『Zeals』を開発する株式会社ZEALSのテックブログです。技術やエンジニア文化について情報を発信します。

【エンジニア対談】元トレタCTOの増井さんと語る、ZEALSのチャットボットプロダクト『fanp』のすべて(前編)

f:id:zeals-engineer:20190130160336j:plain

みなさんこんにちは、ZEALSエンジニアの福本です!

ZEALSでは、チャットボットによる全く新しい広告体験を提供するプロダクト『fanp』を日々開発しています。

fanp.me

これまでfanpは、マーケティングや広告といったビジネスの視点から語られることが多く、エンジニアリングの視点からはあまり詳細が語られることはありませんでした。

このままでは、fanp開発の面白さをエンジニアの方にお伝えできません...

そこで今回は、テクノロジーお師匠さんとしてZEALSにジョインして頂いている元トレタCTOの増井さんをお招きし、エンジニア目線から見たfanpを対談形式で語らせて頂きました!

一般的なチャットボットプロダクトとの違いや、どんな思いで開発しているか、これから先どういうプロダクトにしていきたいか...

こういった内容について赤裸々にお話させていただきましたので、対談の様子を皆さまにお伝えしていきます!

関係者

元トレタ CTO 増井雄一郎

1976年、北海道生まれ。札幌大学経営学部卒業。大学時代に起業。2003年にフリーランスとなり、Ajax、Ruby on Railsなどを使ったWebアプリ開発や執筆を行う。08年に渡米し、中島聡氏とともにアプリ開発会社を立ち上げる。10年に帰国し、Appceleratorの「Titanium Mobile」のテクニカルエバンジェリストとして活躍。2013年に株式会社トレタを創業しCTOを努め、2018年10月に退社し独立。


 株式会社ZEALS CTO 島田想

1994年東京都出身。株式会社ZEALS CTO。同社創業時よりプロダクト開発に携わり、世界初の会話広告サービスfanpを開発。LINEやFacebook社の提供するMessaging API Platformを公開当初より叩き続けており、Facebook MessengerについてはMessaging APIを国内で最も多く叩いているであろう人間の一人。チャットボット以外にも、会話インターフェースであるVUIのアプリ開発にも知見がある。


株式会社ZEALS Product Manager 福本晃之

1992年兵庫県出身。富士通グループでITシステム導入の法人セールスに従事。テクノロジーへの思いを捨てられず、2018年4月に株式会社ZEALSへエンジニアとしてジョイン。PythonとRubyのエンジニアとしてチャットボット開発に携わる。2018年8月より、同社のチャットボットサービス「会話広告 fanp」のプロダクトマネージャーに就任。現在は技術広報やエンジニアの採用にも携わる。

ZEALSやfanpとの関わり

どんなことをやっているのか?

 

福本:fanpの話に入る前に、3人が最近何をやっているのか軽く触れていきます。島田さんは創業時からのZEALSのCTOですが、業務的には何をしていますか?

島田インフラやDBの手直しみたいなことをやっています。これまで速度を重視してクイック&ダーティーに実装してきたので、テーブルのスキーマを修正などをやっています。

増井さん:テーブルやDBの設計周りのイメージ?

島田:はい。ZEALSはモノリシックにRailsをやってきたので、マイクロサービス化できないかを模索していています。
インフラに関しては、トラフィックが今年あたりから急激に増加しました。今後に備えトラフィックが多い部分のサーバレスへの切り出し、マネージドの部分をKubernetes化し等を行い、スケーラビリティを担保していくイメージです。

福本:これまではどんな開発を?

島田これまでは、Facebook MessengerのAPIやLINE のMessaging API が公開された早期のタイミングでプロダクトとして使えるように実装しました。

f:id:zeals-engineer:20190130190359j:plain

福本:ありがとうございます。続いて僕ですが、4月からPythonとRubyのエンジニアをやっています。9月からプロダクトマネージャーも兼務です。
業務としては中長期のプロダクトの計画を作って、その計画を粛々と実行に移す、という役割を担っています。役割の遂行にあたって増井さんに色々と助けて頂いていると。

増井さん:僕は最近、プロダクトの方にすごく興味がある。プロダクトを作る時に、意思決定すべきことがたくさんあって、広い視野でものごとを見て判断するアドバイスをしている。
僕は自分で、「目玉」を提供していると考えている。起業する段階で「それは起業してやるべきなのか?」といった、低レイヤーの話も含めてプロダクトをどうしたいかという話に集中することが多い。

福本:ありがとうございます。

 チャットボットと『fanp』の違い

チャットボットとWeb開発の違いは?

福本:一般的なチャットボットとZEALSのプロダクト『fanp』の違いについて触れていきます。fanpについておさらいすると、世間一般のイメージである「自動お問い合わせ」と少し違っていて、チャット上でユーザーにヒアリングをして会員登録や資料請求などのコンバージョン(以下CV)を生むサービスです。
増井さんは、fanp以外のさまざまなチャットボットにもよく触れているイメージがありますが...

増井さん:僕自身『宮本さん』という勤怠管理のチャットボットを作っていて、 チャットボット自体とても好きでよく作っている。

github.com

僕は昔も今も一日中チャットをやっているので、チャットボットにはずっと興味がある。LINEのAPIが公開されて一番最初にQiitaを書いたのは僕です。

福本:そうなんですか、知りませんでした。

増井さん:他にチャットボットが好きな理由に、 WEB アプリはUI が複雑すぎる。サーバーの知識もWebのHTMLやCSSの知識もJavaScriptやサーバーサイドも必要、さらにDBやサーバー管理といった話も入ってくる。
それに対して、チャットボットは要件が合えばすごくシンプルに物ができる。ユーザーにとってもシンプルだし、作る方にとってもシンプルに作れるイメージ。

福本:チャットのデザインは既にデファクトが決まっています。

増井さん:ただし、自由度はない。僕は自由度がないところが好きで、そういう意味でもチャットボットが好き。

ユーザーを乗せる「ストーリー」とは?

福本島田さんはチャットボットとfanpの違いをどう考えてますか?

島田僕は「fanpにはCVというゴールがある」と考えています。CVとはあくまで僕達の呼び方で、ユーザーからすれば意思決定。例えば、何かを購入するという意思決定のサポートをするという点が、チャットボットとfanpとの大きな違いだと思っています。

福本:確かに、モノを買うとか契約するというのは意思決定です。

増井さん:fanpはストーリー性が強いのではと感じる。シナリオがある中で、ユーザーに”ストーリー”をどう体験してもらうか。ストーリーを作れるか作れないかは、チャットボットのUIUX が上手くいくかの大きな境目だと考えている。
少し説明すると、『宮本さん』を人の名前にしたのはストーリーを考えたから。
勤怠管理で重要なのは「チェックイン」。会社に行くというストーリーをどう考えたときに、「挨拶」をチェックインにした。会社で「おはようございます」と言うのは「出社」のサインで、それを勤怠管理にすればいい。
さらに考えると、チャットボットに対してではなく、人に「おはようございます」と話しかける。そういうストーリーとして使えば違和感がなく勤怠管理ができる。日常生活のストーリーの中に素直に入れられるかに気を遣っていて、「宮本さん」というキャラクターにした。

福本・島田:(うなずきながら同意)

f:id:zeals-engineer:20190130190519j:plain

”プッシュ”が嫌われないためには?

福本「ストーリー」という考え方は面白いですね。僕は配信をどれだけ良いものにするかがfanpにとって大切だと考えています。僕たちは配信を”プッシュ”と呼んでいて、これがあることで、継続的にユーザーと繋がりボットからアクションを起こすことができます。それはLPではできないことで、それをどれだけ突き詰められるかが重要かと。

増井さん:広告が嫌われやすいというのもある。

島田プッシュに関しては、ユーザーにどこまで好まれるかだと思ってます。
モノを買うとき、基本的にはGoogleで検索した方が速いです。ただ、「自分からは検索しないが興味はある」という潜在層の人達に対し、「こういうの見たかった!」という情報をどれだけパーソナライズして届けることができるか。ここが嫌われるかどうかの境目だと思っています。

増井欲しい情報が来る分には別に嫌われない。

島田:シンプルに便利ですからね。

増井さん:そういう意味でプッシュはチューニングしがいがある。

福本優位性ですよね。プログラムを作ってすぐに追いつくものではないので。

チャットボット『fanp』を作る難しさ

f:id:zeals-engineer:20190130190743j:plain

fanpを作る技術的な難しさとは?

福本:島田さんに聞きたいのですが、fanpを作る感じる難しさはどういった部分で感じますか?

島田:これは細かい技術的な話なんですが、APIのデータ形式は基本JSONなので、RDB で持つのが難しい。正規化するのが大変なので。

増井さん:それぞれのJSONに微妙な違いがある。同じようなJSONなのにカラム名が違う、あるいは両面や対面の違いがあるとか。

島田:fanpは管理画面でシナリオを作るので、MessengerとLINEの両方に対応しないといけない。

増井さん:メディアごとに対応が必要なのは難しい。この機能はLINEにはあって、Messengerにはないことが起こり得る。

島田:それ、実際によくあります

増井さん:例えばブラウザ。昔はブラウザ間の差異が大きかったんですが、現状ほとんどない。一方チャットボットは、プラットフォームの表現力の違いがある。ただ、全部使える最低限の機能だけ実装すると表現力が足りなくなってしまう。共通化は本当に難しい。

島田本当に大変で、僕たちも試行錯誤しながら進めています。

増井さん:プラットフォームに依存しますからね。最終決定権がないものを作るのは難しいですよね。

コミュニケーションを要件化するとは?

福本:僕は「 要望がコミュニケーションに紐づいている」という難しさがあると思います。例えば、チャットアプリにはカルーセルという機能があって、情報を並列化して表現するもので、箇条書きに近い役割を持つ機能です。文字って並列の情報を扱うのはすごく難しいので、そういう機能が求められる。

f:id:zeals-engineer:20190201115729p:plain

LINEカルーセル機能のイメージ(https://developers.line.biz/ja/docs/messaging-api/message-types/#carousel-template

増井さん:特にスマホの画面は縦に長いから。

福本:そうです。そういったことを考えながら、使う機能や実装を判断することが難しい。「そもそもコミュニケーションとは」という領域に踏み込まないといけないので。

増井さん:これまでのシステムの難しさは一方向だった。「こういうものを届けたい」という双方向ではなく、プロバイダーからユーザーへの一方通行。
例えば、今までホームページはHTMLで書けばよかった。そこに「コミュニケーションの中でどう気づいてもらうのか」という考えが必要になって、それがこれまでと圧倒的に違う部分。

福本・島田:(同意)

福本デザインと実装が変に切り離されないかというのは大事だと思っていて、両方ともエンジニアで持てるのが理想ですけど、それもなかなか難しい。

”アテンション”を奪い合う?

増井さん:デザインがリッチになればいいかと言うとそうではなくて、今度は人間のアテンション(注目)に限界が出てくる。
コミュニケーションが双方向になるということは、集中して見ないといけないので、ユーザーにアテンションが必要になる。
これはすごく難しくて、双方向のコミュニケーションが増えるとアテンションの奪い合いの話になる。人間は多くのものに集中できないので。
 Netflixについて面白い記事があって、NetFlixの一番の競合は『Fortnite』というアメリカですごく流行っているゲームだそう。
Netflixに使う時間がアメリカで減ってきていて、その代わりにゲームをしている。つまり、Netflixの敵はAmazon Primeではないと。「何を奪い合っているのか」を正確に理解することがすごく大事。

www.polygon.com

福本なるほど。まずは時間の奪い合いがあって、その中でさらにアテンションを奪い合ってるイメージですね。そう考えた場合、今後チャットボットが何と競合するのかを考えることが重要ですね。ひょっとすると、僕たちは全く違う競合を見ているかもしれない。

増井さん:その通り。fanpで会話を面白くすることがアテンションを得ることに繋がるのであれば、ミニドラマとかアニメのようなものがあり得るかもしれない。

福本Netflixがすごいのはゲームが競合だということを理解しているところですね。そういう見極めは難しいはず。

増井さん:そう、それは本当にちゃんと考えないと分からないことなので。

前編はここまでです

話が盛り上がってきましたが、後編に続きます。

後編では、「どういう思いでfanpを作っているか」「これからfanpをどうしていきたいか」といったことについて、考えや展望についてのお話などをお届けしていきます!

 後編は以下のリンクからご覧いただけますので、引き続きお読み頂けると嬉しいです!

tech.zeals.co.jp