Power Virtual Agents for Teams の顧客満足度調査メッセージ「あなたのエクスペリエンスを1から5で評価してください」をカスタマイズする方法

# はじめに

Power Virtual Agents には、利用者からのボット評価機能があります。
↓　これです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/1857440a-5d1c-c27d-e009-085c91d33b47.png)

この機能は、チャットボットに対する利用者の評価を、ボット管理者が受取ることのできる大切な機能です。
が、ご覧のとおり、質問内容がイマイチわかりにくく、ユーザーに親切でないですよね。
「エクスペリエンス」という言葉は残念ながら、そこまで浸透はしていないと思います。
これでは評価されるチャンスを自ら逃しているようなものです。

さらに、上記の表示は、Power Virual Agents 作成時の「ボットのテスト」時のものですが、publish後にTeams上で表示される内容はもっと酷いです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/742ba0fa-bc0f-b907-0e1c-92282969630e.png)

**☆の表記すらなくなり、ユーザーに 1 ~ 5 の数字を直接入力させる仕様なのです**

これはイケてない、イケてなさすぎです。

それなら・・・、とメッセージ内容を修正しようにも、**Power Virtual Agents の会話フローからは編集不可**なのです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/e8a0b5b1-3cde-0025-1b78-85035c4852c9.png)


八方塞がりな状況にも思えますが、この「あなたのエクスペリエンスを1から5で評価してください」メッセージの修正方法はあります。
その方法を記載します。

# 「あなたのエクスペリエンスを1から5で評価してください」メッセージについて

該当のメッセージは、チャットボットをdeployした状態でDefaultで存在する「確認された成功」トピックに含まれます。
「確認された成功」トピックは、「会話の終了」トピックに含まれます。

チャットボットとの対話の終了時に「会話の終了」トピックへリダイレクトすると、ユーザーの問題解決に至らなかった場合のヘルプデスクへのエスカレートや、チャットボットの評価を収集することが可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/467f537a-5972-fbc3-ff5f-4dcb2d20a3bf.png)

今回のメッセージによるユーザーの応答は、顧客満足度としてボットに収集されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/5d783294-8a7f-4622-2762-693c12f69da7.png)

# 前提

PVAは、チャットボットのエクスポート/インポート機能が存在し、他のチームやテナントへのインポートが可能です。
また、現在のところ実装されていない、ボットのバージョン管理機能の代替として利用できます。

エクスポート/インポート方法は記事にしていますのでご参照ください
[「Power Virtual Agents for Teams のチャットボットをテナント間でコピーする」](https://qiita.com/MiyakeMito/items/b2df9ca9832fbce26a0d)


今回は、このエクスポートファイルを編集することにより、Defaultで用意されたトピックのメッセージを変更します。

# 実現方法

## 1. チャットボットをエクスポートする

ボットの評価メッセージを変更したいチャットボットをエクスポートし、ファイルを解凍します。

:::note info
ボットのエクスポート方法は
[「Power Virtual Agents for Teams のチャットボットをテナント間でコピーする」](https://qiita.com/MiyakeMito/items/b2df9ca9832fbce26a0d)
を参照してください
:::

## 2. エクスポートファイルを改変する

### 2-1. 「ボットのテスト」で表示されるメッセージを変更

[botcomponents]というフォルダ内には、トピック毎にフォルダが作成されています。
この中から、名前の末尾が`"_confirmedsuccess"`で終わっているフォルダを探し展開します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/b7a6037b-553c-7bb9-5245-f13991a0f846.png)

[content.json]を開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/93063f54-dd91-2e20-9ba3-ea4bd9d28df6.png)
JSON形式でトピックの構成が記載されているのがわかります。

137行目辺りに「エクスペリエンス」の文言があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/fe588a3e-2d63-d01a-aa9a-b57e3029224b.png)
これは、Power Virual Agents　作成時の「ボットのテスト」で表示される情報です。
よく見ると、Adaptive Cards のペイロードになっていることがわかります。

`あなたのエクスペリエンスを評価してください。` の記載を変更してしまいましょう！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/ee005585-dee9-5d09-10e6-1073b7a8d909.png)

### 2-2. Teamsで表示されるメッセージを変更

Teamsで表示されるメッセージは、145行目辺りです。

:::note warn
親のKey値が`"msteams":`配下のオブジェクトです。　`"facebook":`配下の値ではありません。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/37565927-c8cb-d4db-e8bb-999b2498d7a5.png)
ここは、大胆に、2-1.で修正した、「ボットのテスト」で表示されるAdaptive Cards形式のメッセージに変更してしまいましょう！
2-1.で修正した行（137行目）を行ごとコピーします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/d0ac2936-0c35-af2f-17e1-2de6999faff2.png)
↑　ここから

↓　ここまで
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/4b670c5e-a709-043e-30d1-1131111241bc.png)
次に、下図の行（145行目）へペーストし、内容を書き換えます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/319c13c7-0694-ec8c-0170-f1de9c635a94.png)
↓　貼り付け
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/6386f04a-6ed7-6adf-2fc9-a70b27f610b6.png)

さらに、貼り付けした行の1行上にある
`"contentFormat": "PlainText",` の Value を、

```
"contentFormat":"AdaptiveCard"
```

に変更します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/af35fb96-e3b0-6bed-3a74-d02cc84b7c23.png)


## 3. 修正したファイルをアップロードする

[content.json]を上書き保存し、**[botcomponents]の階層**の全フォルダをzip形式で再圧縮します。

:::note warn
圧縮する階層を間違えないようにしてください。インポート時にエラーになります。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/bbd04e7d-7082-c21d-d40f-bba965fa6f66.png)

その後、上記zipファイルを任意のチームにインポートします。

:::note info
ボットのインポート方法は
[「Power Virtual Agents for Teams のチャットボットをテナント間でコピーする」](https://qiita.com/MiyakeMito/items/b2df9ca9832fbce26a0d)
を参照してください
:::

# インポートしたチャットボットを確認

インポートしたチャットボットを Teams で動作させると、以下のように表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/a35ddccd-ab39-62ce-9470-0193a5530b0b.png)

# まとめ
作成したチャットボットの精度を高めるためには、ユーザーからの評価は必須です。
このテクニックを活用し、ユーザーが評価したくなるような、メッセージに変更してみてください。