LINEチャットボットで業務改善

# はじめに
今回はLINEチャットボットについて投稿したいと思います。
業務改善という視点から書いていこうと思います:writing_hand:
最近チャットボットを目にする機会が多くなりましたよね！

以下が思い当たる職場は思っている以上にチャットボットが活用できるかもしれないのでぜひ読んでみてください:relaxed:
* 新しいメンバーが多い
* メンバーの入れ替わりが激しい
* 専門用語（社内用語）が多い
* 先輩や上司が忙しそうで、いつ質問したらいいかタイミングをいつも伺っている

なかなか仕事で時間をうまく使うって難しいですよね:sweat_drops:
質問する側もされる側も時間を気にせず質問できたら少しは楽になりそうな気がしますね:v:
そんなお悩みを改善する助けになる！…かも？？な記事になれば幸いです::yum:

# 概要
* チャットボットとは
* Dialogflowについて
* LINEを使ったチャットボットを作る


# チャットボットとは
『チャット』と『ボット』を組み合わせた言葉で、自動会話プログラムのことを指しています。
ボットは『ロボット』の略ですね:robot:



チャットボットは大きく分けて『シナリオ型』と『AI型』があります。

***シナリオ型は事前に設定されたシナリオに沿って会話を進めていくタイプ***
***AI型は機械学習で複雑な会話にも対応できるようなタイプ***

今回はシナリオ型で記事を書いていきますのでご了承ください:bow:

# Dialogflowについて
Googleが無料で提供している簡単にチャットボットを作成することができるサービスです:clap:
公式によると『最先端の仮想エージェントを備えた、自然な会話を実現する AI。』と記載されています。

* Googleアカウントがあれば簡単に開発できる
* ノーコードで開発できる
* 無料で開発できる
* 多言語にも対応できる
* LINEやSlack、Facebookと連携できる
* 文字にも音声にも対応できる

ノーコードでも開発できるところはプログラミング初心者の私も安心して活用できるので最高ですね:relaxed:

# Dialogflow公式をチェック
Dialogflow公式はこちらになります↓↓
* [Dialogflow公式](https://cloud.google.com/dialogflow?hl=ja)

DialogflowではエージェントタイプがCXエージェントとEXエージェントの2つがあります。

![スクリーンショット (11).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779539/715651c2-d0c3-abe6-8b77-33227f8f2094.png)

今回はDialogflow Trial Editionという標準 ES エージェント タイプのほとんどの機能を利用できる無料版を利用していきます:v:
![スクリーンショット (12).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779539/b2cad0d5-2cf6-24d9-d42f-e4f1e51461a0.png)

上記のエージェントのタイプ、料金、その他詳細に関しては公式から確認して活用していきましょう:thumbsup:

# Dialogflow活用手順

***1,Dialogflowの利用規約に同意し利用できるよう準備する***
まずはGoogleアカウントにログインした状態で[こちら（Dialogflow公式）](https://dialogflow.cloud.google.com/)にアクセスします。
はじめてアクセスする場合には利用規約に同意(ACCEPT)し、進めていきましょう。

***2,CREATE AGENT***
CREATE AGENTボタンをクリックしAgent nameをオリジナルなもの（自分の好きな名前）に変更します。
そして、Default Languageを日本語（japanese-ja)を選択し、Default Time ZoneをAsia/Tokyoであることを確認しましょう。
![スクリーンショット (13).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779539/66d8ee70-4dc5-6c79-fbee-174a35e6e17b.png)

上記が完了したら右上のCREATEをクリックしましょう:mouse_three_button:

***3,CREATE INTENT***
Intensのプラスマークのアイコンをクリックするか、もしくは右上の青色のCREATE INTENTボタンをクリックすることで新しいインテントを作成することができます。
![スクリーンショット (14).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779539/fdc003be-4721-84b9-ef9b-f3beed414c7e.png)



そもそも…インテントってなに？？？:scream_cat:
[インテント](https://cloud.google.com/dialogflow/es/docs/intents-overview?hl=ja)とはDialogflow公式では『1 回の会話ターンでのエンドユーザーの意向を分類します』と記載されています。

会話を構成する要素というイメージでしょうか。

人間は会話をするにあたり、様々な要素を組み合わせて会話を展開していきます。チャットボットの会話を成立させるために会話の構成要素となりうる一つひとつのパーツとなるインテントを作っておき、そのインテントを組み合わせることで質問者（ユーザー）との会話を成立させていくイメージになります。

***4,インテント作成***
左上の『Intent name』となっているところに好きなインテント名を入力しましょう！
![スクリーンショット (17).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779539/d37b7844-83d6-0509-afef-73523e673867.png)
私は消費財メーカーの営業なので、今回は業界用語に関するインテントを作成していこうと思うので、ここを『業界用語』としますね:thumbsup:

そしてインテントを作成するにあたって必須の入力項目は以下の2つです。
***①Training phrases***
***②Responses***

①は質問者が入力するであろう質問をTraining phrasesとして登録しておきます。
ここをしっかりと登録しておくことで、登録したフレーズを学習してくれて多少の表現の違いがあっても臨機応変に対応してくれるようになります:kissing_heart:

私はTraning phrasesをこんな:arrow_down:感じで登録してみました。
![スクリーンショット (19).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779539/3926b507-ccef-a575-5d77-30ff3f9768a5.png)

そして、Responsesはこんな:arrow_down:感じで登録しました。
![スクリーンショット (20).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779539/7b25926f-c26a-2f54-8f61-4f46b2f6ca86.png)

入力が完了したら必ず右上のSAVEボタンをクリックしましょう:mouse_three_button:

***5,レスポンスの確認***
次に質問をした際にちゃんとレスポンスが返ってくるかを確認します。
『Try it now』のところに『ゴールデンゾーンって何か教えて』と質問を入力してみます。
![スクリーンショット (21).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779539/9523514e-9d43-9836-8240-e5edbc98f6a5.png)

それに対するレスポンスとして先程Responsesで登録した文言が返ってきていることが確認できます。
![スクリーンショット (23).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779539/39dbd169-e433-dcbc-beb8-f6392173ab15.png)

今回『ゴールデンゾーンって何か教えて』という質問に対して、期待した回答が返ってきていますね。
ここで注目していただきたいのが、***『ゴールデンゾーンって何か教えて』という文言と完全一致しているTraning pharasesは登録していないという点***です:open_mouth:
ある程度Traning pharasesを登録していればそこから学習し同じ質問の意味であると判断し回答を返すようになっています。
Traning pharasesをしっかり登録しておくことで質問者の多少の文言の違いにも対応できるようになります！すごいですよね:heart_eyes::heart:

***6,LINE Developersの登録と設定***
[LINE Developers](https://developers.line.biz/ja/)を開きます。
①右上のログインをクリックします。
![スクリーンショット (24).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779539/103c3bc1-b56b-7a4f-04ab-6b774e87c4ae.png)

②LINEアカウントでログインをクリック
![スクリーンショット (25).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779539/1a0f57d0-afd5-594f-bdb9-5ac66d768332.png)

③メールアドレスとパスワードを入力
入力すると4桁の認証番号が表示されるので、ご自身が普段使っているLINEアプリを起動し4桁の数字を入力し認証確認作業を行ってください。
認証が完了するとログインできるようになります。

④新規プロバイダーの作成をクリック
プロバイダーとは[LINE Developers公式](https://developers.line.biz/ja/docs/liff/getting-started/#creating-provider-and-channel)によると『プロバイダーは、LINEプラットフォームを通じてサービスを提供する個人、企業、またはそのほかの組織を意味する情報です。』とあります。

新規プロバイダー作成に際し、プロバイダー名を入力する画面が表示されるのでご自身で設定し、『作成』ボタンをクリックしましょう。
今回私は『chatbot-for work-』というプロバイダー名にしました。

⑤Messaging APIを選択
![スクリーンショット (26).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779539/335662d7-ed75-8728-ae89-d46d9a726d70.png)

⑥必須項目の入力
***・会社・事業者の所在国・地域***
***・チャネル名***
***・チャネル説明***
***・大業種***
***・小業種***
記入例を載せておきますね:hugging:
![スクリーンショット (27).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779539/4dbd7128-9e6f-0137-78b3-22b8746e1823.png)
チャネルアイコンはお好きな画像を設定してみてください:raised_hands:

⑦規約への同意2か所をチェックし作成ボタンをクリック
![スクリーンショット (28).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779539/0f851f15-16a2-2964-81af-41cb0942ff35.png)
『チャネルを作成しますか？』と確認画面が表示されるので入力に間違いがなければ『OK』をクリックします。
続いて情報利用に関する同意についての画面が表示されるので一読して『同意する』をクリックしましょう。

***7,LINEとDialogflowを連携させる***
①Dialogflowの画面での作業
まずDialogflow画面の左側のintegrationsを選択し、その中のtext basedのLINEを選択します。
![スクリーンショット (29).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779539/9f44a276-e078-8423-f577-1f9b75cd7e72.png)

②Webhook URLをコピー

③LINE Developers画面での作業
Messaging API設定画面を開き、少し下にスクロールするとWebhook URLのところに『編集』というボタンがあるのでクリックし、先程コピーしたURLを貼り付けます。
検証ボタンが出てくるので、クリックして成功と出ればOKです:v:

そしてDialogflowの利用をONにしてください。これでLINEからDialogflowが使えるようになりました:hugging:

④DialogflowとLINE Developers画面両方での作業
まずはDialogflowのintegrationsのLINEをクリックして開きましょう。
ここで入力していくものは以下の3つになります。
***1,Channel ID***
***2,Channel Secret***
***3,Channel Access Token***
![スクリーンショット (30).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779539/2f4df910-9d72-c06a-a3fd-37055e883539.png)

LINE Developersのチャネル基本設定の画面で上記1と2をコピーしましょう。
残りの3(Channel Access Token)に関してはMessaging API設定の画面をスクロールすると項目が出てくるので『発行』ボタンをクリックしてコピーしましょう。

⑤LINEでお友達検索
Dialogflowで作ったチャットボットをお友達追加しましょう:two_women_holding_hands:
LINE Developers画面のMessaging API設定画面から『ボットのベーシックID』を確認しましょう。
確認したら、ご自身のLINEアプリのお友達検索の画面からボットのベーシックIDを入力して検索しましょう:thumbsup:

***8,LINE Developersで追加設定***
チャネル基本設定画面の『LINE Official Account Manager』をクリックします。
![スクリーンショット (31).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779539/6e24a663-9b93-eb4d-456e-656193cb5620.png)

LINE Developersの応答設定画面を開きます。
![スクリーンショット (32).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779539/38f8215a-6a5a-7517-ceec-6ba0c9bfb2da.png)
『応答メッセージ設定画面を開く』を開きましょう。
開いたらステータスを『オフ』にしましょう:open_hands:
![スクリーンショット (33).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779539/4d0dcc8f-fffd-5dea-7153-16ce7132eee8.png)

補足ですが、この設定をせずにご自身のLINEからメッセージを入力してみると『メッセージありがとうございます！申し訳ありませんが、このアカウントでは個別のお問い合わせを受け付けておりません。次の配信までお待ちください』というメッセージが返ってきて、想定するレスポンスが返ってきません:tired_face:

この設定をしたうえで、LINEのトーク画面からご自身で設定したTraining phareseを入力してみてください。
想定したResponseが返ってきて正常に機能していることが確認できますね:blush:

# 最後に
今回は大まかな流れを説明してきました。
他の機能や絵文字を入れる機能などもあります:smiley:
LINE Developersからはお友達追加数やメッセージ通数などの分析項目もあります。
ここをうまく活用することでどの程度利用されているのかなどの情報を確認し随時内容を見直すことで更なる業務改善にもつながるかもしれませんね:muscle:

誰もが情報を簡単に引き出すことができ、質問される側の時間的負担も軽減することができる！そんな日が来れば効率良く仕事ができて最高ですね:heart:

今回はごく一部のご紹介になりますので、是非いろいろ試してみてくださいね:relaxed:



# 参考
* [ITトレンド　チャットボットとは](https://it-trend.jp/words/chatbot)
* [【図解あり】チャットボットとは？特徴や仕組みを詳しく解説](https://chatplus.jp/blog/colmun/chatbot/)
* [Googleの無料サービス「Dialogflow」を使ってノーコードでチャットボットを作ってみた](https://ledge.ai/dialogflow-try/)
* [Dialogflow公式](https://dialogflow.cloud.google.com/)
* [LINE Developers公式](https://developers.line.biz/ja/docs/liff/getting-started/#creating-provider-and-channel)