社内用 AI 搭載チャットボットを Teams に設置しよう！【パート 4/5】

### この記事は続きです
# `大まかな流れ`
＿＿＿[パート 1](https://qiita.com/S_O_ka/private/f512a8f1845a44fb9659) ＿＿＿
Ⅰ 設置条件
Ⅱ Microsoft Teams に Power Virtual Agents アプリを追加
Ⅲ ボットを設置する

＿＿＿ [パート2](https://qiita.com/S_O_ka/private/850b176c8175cfe9c8cd)＿＿＿
IV 既存のトピックを編集する

＿＿＿ [前回のパート3](https://qiita.com/S_O_ka/private/9ce4e82debceb6cb220d)＿＿＿
Ⅴ 公開されたデータから取り込む

＿＿＿ [★ 今回のパート4 ★]＿＿＿
Ⅵ 組織内のリストを回答として返す

---

前回はオンラインで公開されたデータをトピックとして注入しました。
今回はチャットボットが、オンラインでは公開されていないリストを返すように設定していきます。

# Ⅵ 組織内のリストを回答として返す

## まず、Dataverse for Teams に テーブルを作成
参照したい Excel ファイルを用意します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524615/6908916a-2538-72e8-af30-1bd65716b91a.png" width=50%">

次に、Teams のチャットボットと同じチームに、Teams 用 Power App を使用し、
「ビルド」タブを開き、「すべて表示」-> 「新規」 -> 「テーブル」を選択し、
テーブルの名前を入力します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524615/531daf38-b6c4-fb94-a6d1-4946728a6e49.png" width=80%">

「インポート」で 用意した Excel を読み込めたら完了です。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524615/4b20f19c-972e-5965-d37f-09c92f5bd8f4.png" width=80%">


## 次に、Power Virtual Agent で新しいトピックを作成

例えば下記では、トリガーフレーズが入力されたら、
「お探しの申請フォームを表示します」
というメッセージで返すように設定しました。

その下に「＋」でノードを追加し、「アクションを呼び出す」-> 「フローの作成」をクリックします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524615/7df2aad0-0e7c-e29e-acf2-3b15e74f5fe6.png" width=80%">


## 続いて、フローを作成
いくつか表示されたテンプレートの中から、「Power Virtual Agents フロー テンプレート」を選択します。
これは、チャットボットに情報を送受信する手順が含まれるテンプレートです。

テンプレートを選択したら、まず左上のフローの名前を「申請フォームを表示」に変更しておきます。

### 次に、チャットボットに返す情報のための変数を作成します。
その下で「＋」をクリックしてノードを追加し、「アクションの追加」-> 検索ボックスに「変数」と入力し、
「変数を初期化する」を選択します。

名前は「ListsOfForms」と指定し、種類は「文字列」を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524615/0c56e40a-b1bf-c7e3-6019-30e127fa08b2.png" width=90%">

### 次に、Teams から Dataverse のデータにアクセスするステップを指定します。
その下で「＋」をクリックしてノードを追加し、「アクションの追加」-> 検索ボックスに「dataverse」と入力し、
「行を一覧にする」を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524615/2cf845c5-d17f-6153-66aa-313f980b145d.png" width=90%">

プルダウンメニューから、テーブル名を指定します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524615/45e2350a-0ec5-9dc6-5460-f8a97a178737.png" width=90%">

その下で「＋」をクリックしてノードを追加し、「アクションの追加」-> 検索ボックスに「コントロール」と入力し、
「それぞれに適応する」を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524615/1a2e8da8-a95e-e8f5-915b-2f98fad14b49.png" width=90%">

「*以前の手順から出力を選択」には、value を選択し、その下の「アクションの追加」をクリックして続けます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524615/717018a4-1eab-c8ca-1115-0f0df92f4c4c.png" width=90%">

検索ボックスで「変数」を検索し、「文字列変数に追加」を選択し、
名前には、先ほど作成した変数の名前「ListsOfForms」を選択します。

その下の「値」には、表示させたい列を下記の通り指定します。
アスタリスクは箇条書きリストを指定する マークダウンです。
```
「*(アスタリスク）」動的なコンテンツから列を指定
``` 
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524615/db711462-c230-bc19-62c2-dd6e4926015a.png" width=90%">

いよいよ、フローの最後です。

「＋出力追加」をクリックし、出力の種類は「テキスト」を選択し、テキストボックスに Answer と入力します。
値には、フローで使用している変数「ListsOfForms」を指定します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524615/b349618e-3ddd-2917-300b-437614b86d10.png" width=80%">

「保存」をクリックします。
（※警告が表示される場合がありますが、これは無視して構いません。）

「閉じる」をクリックし、チャットボットに戻ります。

## 最後に、チャットボットでフローを紐づける

メッセージの下の「＋」でノードを追加し、「アクションを呼び出す」-> 作成したフロー「申請フォームを表示」をクリックします。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524615/74867aa3-4977-12c2-a21e-49ca85ab8116.png" width=80%">

その下の「＋」でノードを追加し、「メッセージを表示する」->｛X｝-> フローの最後で指定した変数「Answer」を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524615/6e9c35fe-61e5-36fc-0fa1-7abf2011018e.png" width=50%">

「保存」したら、完了です！


## ボットのテストで動作確認
トリガー フレーズを入力してみましょう。
リストが戻ってこれば成功です！
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524615/38977e76-e507-e505-7177-5c136cd02730.png" width=50%">

今回は、リスト全体を回答として返すよう設定しましたが、
リスト内を参照して回答を返す（例：「有給申請」と入力したら、有給申請用のフォームのみを返す）ように Power Automate のフローを組むことも可能です！


**次のシリーズ最後の[パート５](https://qiita.com/S_O_ka/private/c67a63436c8d5a1367a1)では、いよいよボットを公開します。**


> Microsoft 公式マニュアル
https://learn.microsoft.com/ja-jp/training/modules/create-chatbot-power-virtual-agents-dataverse-teams/5-call-action-pull-data