Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Slackとkintoneでチャットボット開発タイムトライアル

 Slackとkintoneでチャットボット開発タイムトライアル

kintone papers

August 02, 2018
Tweet

More Decks by kintone papers

Other Decks in Programming

Transcript

  1. Welcome to kintone devCamp 2018! Slack & kintone 連携セッションです 1

    • 事前準備 1. Chrome ブラウザ 2. kintone 環境(システム管理権限のあるアカウント) ▼ お持ちでない方は、下記より30日間お試し環境をお申し込みください https://kintone.cybozu.co.jp/jp/trial/ 3. Slack アカウントとワークスペースの環境 ▼ Slack アカウントとワークスペースの作成 https://slack.com/get-started 4. Flow XO の環境 ▼ Flow XO アカウントの取得 http://www.flowxo.com/ 5. 資料のダウンロード http://bit.ly/devCamp2018_paper
  2. Tomoko Miyake (ミケ) • Cybozu Inc. Developer Relation 所属 •

    kintone devCamp, cybozu developer networkの住人 • Slack ファンの一人です!足元に注目 3
  3. 目次 • チャットボットとは • シナリオとツール紹介 • チャットボット開発 ハンズオン • kintone

    アップデート先取り! • おまけ 早い方はこちらに 進んでOK! 追いつくのが大変に なったら聞くのに集中 でもOK! 5
  4. 開発をスタートする前に考えよう • 開発の流れ 1. やりたいことを決める 2. ユーザーがBOTに話しかけるインターフェースとなるプラットフォームを決める 3. 人間が話す自然言語処理と会話フローを開発するためのツールを選ぶ 4.

    ユーザーとBOTの会話フロー(ロジック)を考える 5. 会話フローを組み立てる(コーディング or GUIツール) 6. テストをする ユーザー BOT 質問 回答 情報検索・取得 (HTTPリクエスト) 情報回答 社内DBや グループウェア 9
  5. シナリオ • Slack のチーム利用を想定 • 社内FAQの検索ボット • kintone モバイルもあるけど、検索ができない... •

    Slackから社内FAQ のデータにアクセスして Q & Aを確認できるように開発していきます こんにちは Mikei! 社内FAQを検索するよ 検索したいキーワードを入力してね こんにちは ×× 〇〇だよ。 また分からないことが あったら聞いてね 関連するデータはなかったよ kintoneは単語検索だから 注意ね HTTP GET Request 11
  6. ツール • 2016年イギリスの会社が開 発 • チャットボットの会話ロジックを GUIで(ほぼノンコーディング で)開発できるツール • チャットのプラットフォームは、

    Slack/Facebook Messenger/Telegram/T wilio SMSなどから選択可能 • 100以上の連携可能なモ ジュールあり • https://flowxo.com/ 参考:チャットボット開発ツール比べをしてみた! https://kintone-blog.cybozu.co.jp/developer/000350.html レコード操作 ロジック開発 12
  7. ハンズオンの流れ 1. CSV から kintone アプリ作成 & データ入力 2. Slack

    のワークスペースとアプリの設定 3. Flow XO の設定 4. Slack アプリの追加設定 5. Flow XO Bot の Slack への追加 6. 動作確認 14
  8. • ガイダンスに沿って CSV を読み込む (3/3) 1. 「参照」から CSV ファイルをアップロード 2.

    プレビューでデータの確認 3. フィールドタイプの確認 (文字列(1行)) 4. 「作成」ボタンをクリック 1 2 3 4 19
  9. 3. Flow XO の設定 • 右の会話を作成していくフェーズ • 以下よりFlow XOにアクセス https://flowxo.com/

    30 こんにちは Mikei! 社内FAQを検索するよ 検索したいキーワードを入力してね こんにちは ×× 〇〇だよ。 また分からないことが あったら聞いてね 関連するデータはなかったよ kintoneは単語検索だから 注意ね HTTP GET Request
  10. • New Message の各項目を設定して 「Next」ボタンをクリック • Words or Phrase •

    「こんにちは」を入力 (合言葉!) • Message Types • Direct Message • Direct Mention • Mentionにチェックを入れる • Filter は何もせずに「Save」ボタンをクリック 33 1 2 3 4
  11. • 「Click here to add an action」をクリック • 「Ask a

    Question」をクリック 35 1 2 FAQ 検索のキーワードを質問するための Action
  12. • Ask a Question の項目を設定して、「Next」ボタンをクリック • Filter は何もせずに「Save」をクリック 36 Question

    こんにちは、{{new_message.user_name}}! 社内FAQを検索するよ。検索したいキーワードを入力してね。 1 2 3
  13. • 新たな Action が追加されたことを確認 • 「+」マークより新規 Action を追加 • 「Make

    a HTTP Request」をクリック 37 1 2 kintoneの社内FAQアプリを検索するための Action
  14. • HTTP Request Settings の各項目を設定 (kintoneにGET Requestする箇所) • 「Next」をクリックして、Filterはそのままで「Save」をクリック 38

    Request URL https://ドメイン名.cybozu.com/k/v1/records.json Method GET Content Type JSON Data app: アプリID query: Question like "{{ask_a_question.parsed_answer}}" Headers X-Cybozu-API-Token: APIトークン
  15. • 新たな Action が追加されたことを確認 • 「+」をクリックして、新規Action を追加 • 「Send a

    Message」をクリック 39 検索結果を伝えるための Action(キーワードヒットした場合) 1 2
  16. • Send a Message の項目を設定して、「Next」をクリック ※Flow XOでは、ネストしているデータにアクセス する時、アンダーバー2つ(__)を指定 ex) records__Answer__value

    40 Message {{make_a_http_request.data__records_+_Answer__value &&}} また分からないことがあったら聞いてね! GETで受け取ったデータ配列を処理
  17. • Bot の各項目を設定して、タブを開いたままにする 48 Name 社内FAQ Language Japanese Slack App

    Client ID Slackアプリの画面 > App Credentials > Client IDをコピー&ペイスト Slack App Client Secret Slackアプリの画面 > App Credentials > Client Secretをコピー&ペイスト
  18. • Redirect URLs > Add a new Redirect URL より

    Flow XO 画面で生 成された Redirect URL をコピー&ペイストして、「Save URLs」をクリック 52
  19. • Interactivityを「On」にして、Flow XO 画面の 「Slack App Interactive Messages Action URL」を

    Slackの「Request URL」にコピー&ペイストして、「Save Changes」ボタンをクリック 55
  20. 5. Flow XO Bot の Slack への追加 • Flow XO

    > 左メニューの Bots > 社内FAQ > 「Edit」ボタンをクリック • 「Next」ボタンをクリックして、Test & Distribute 画面に移動 • 「Add to Slack」ボタンをクリック 57 1 3 4 これでチャット ボット完成! 2
  21. 6. 動作確認 • 最後にSlack で App > faq を開いて動作確認 58

    合言葉は 「こんにちは」 成功したかな?
  22. おまけ • 時間に余裕のある方は... • developer network の記事にチャレンジ! ▼ SlackとkintoneとFlow XOを使って出勤連絡ボットを作ろう!

    https://developer.cybozu.io/hc/ja/articles/115005537606 • 自作アイデアでチャレンジ! 完成品は、ぜひハッシュタグ(#slack #chatbot)付きでSNSにアップしてください〜 • Slack 連携はチャットボット以外にも、サーバーが必要になりますが、 Slash Command やWeb API や Actions などを使うこともできます。 出勤連絡 タスク 管理 タイム カード 63