次の方法で共有


Power Apps での会話トランスクリプトのダウンロード

と Power Apps の両方で、エージェント との顧客やり取りの記録を表示、エクスポート、ダウンロードできます Copilot Studio。 各アプリがエクスポートする情報はわずかに異なります。

この記事では、Power Apps で会話トランスクリプトをダウンロードし、それらを使用して Power BI でレポートを作成する方法について説明します。 Copilot Studioでトランスクリプトを直接ダウンロードするには、 でセッション情報を分析するを参照してください Copilot Studio

既定では、Power Apps 過去 30 日間の会話トランスクリプトをダウンロードします。 保持期間は変更できます

注意

環境にアクセスできなくなった場合は、Power Platform 管理センターで サポート リクエストを作成する 必要があります。

前提条件

Power Apps ポータルから エージェント 会話の記録を表示およびエクスポートします

Power Apps ポータルから エージェント 会話の記録を表示およびエクスポートできます。

まず、資格情報を使用して https://www.powerapps.com にログインします。

会話トランスクリプトを表示する

  1. サイド ペインでテーブル ノードを選択して、すべて を選択します。

    テーブル ノードで [すべて] が選択されていることを示すスクリーンショット。

  2. 検索 ボックスに、会話 と入力します。

  3. エンティティ 下にある テーブル を選択します。

    会話トランスクリプト テーブルのページが開きます。

会話トランスクリプトをエクスポートする

  1. サイド ペインでテーブル ノードを選択して、すべて を選択します。

    テーブル ノードで [すべて] を選択します。

  2. 検索 ボックスに、会話 と入力します。

  3. エンティティ 下にある テーブル を選択します。

  4. エクスポート>データのエクスポート を選択します。

    データがエクスポート用にコンパイルされるまで数分かかります。

    エクスポート メニューからデータのエクスポートを選択します。

  5. コンテンツをダウンロードするには、エクスポートされたデータのダウンロード を選択します。

    エクスポートされたデータをダウンロードします。

エージェント 会話の記録をダウンロード

  1. Power Apps ナビゲーション メニューで Dataverse>テーブル を選択してから すべて を選択します。

  2. 検索 ボックスに、会話 と入力します。

  3. 会話トランスクリプト テーブルを選択します。

  4. エクスポート>データのエクスポート を選択します。

    ConversationTranscript テーブルのデータのエクスポート オプションのスクリーンショット。

  5. Power Apps でエクスポート用のデータを準備するのに数分かかるのを待ってから、エクスポートされたデータをダウンロードする を選択します。

ファイルはブラウザーのデフォルトのダウンロード場所に zip アーカイブとして保存されます。

会話トランスクリプトを理解する

会話トランスクリプトは、CSV (カンマ区切り値) ファイルです。 以下の表は、会話トランスクリプトでの最も重要なフィールドを示します。

Field プロパティ
Content JSON 形式のトランスクリプト全体 コンテンツ フィールド セクションを参照してください。
ConversationStartTime 会話が開始した時刻 (データ ストアに書き込まれたトランスクリプト レコードの時刻ではない) 2021-04-19T20:39:09Z
ConversationTranscript Dataverse テーブルの行の一意の識別子 28eccb77-xxxx-4a63-985f-ffaaadd6f391
Metadata エージェントID、テナントID、エージェント 名を含むJSON {"BotId": "aaaabbbb-0000-cccc-1111-dddd2222eeee", "AADTenantId": "bbbbcccc-1111-dddd-2222-eeee3333ffff", "BotName": "Test Bot"}
Name ConversationId の後に BotId を続け、その後に batch number を続けることで作成されるカスタム行の名前です。 バッチ番号は、会話に複数の分析セッションがある場合の順序を示します。 クラシック ボットにはバッチ番号は含まれません。 8YYe8iif49ZKkycZLe7HUO-o_198eca5f-xxxx-4ae6-8c08-835d884a8688_0
Bot_ConversationTranscript エージェントID aaaabbbb-0000-cccc-1111-dddd2222eeee
Created on トランスクリプト レコードが作成された日時 2021-04-20T02:40:13Z

コンテンツ フィールド

Content フィールドは、ユーザーが エージェント で行ったすべてのアクティビティの生のログです。 一般的な活動 タイプには、メッセージ と イベント があります。

  • メッセージ活動は、会話内に表示されるコンテンツを表します。 メッセージ 活動には、テキスト、スピーチ、インタラクティブカード、バイナリまたは不明な添付ファイルが含まれる場合があります。
  • イベント アクティビティは、クライアントまたはチャネルからのプログラム情報を エージェント に伝達します。

活動タイプの詳細については、Bot Framework 活動スキーマ を参照してください。

次の表では、コンテンツ JSON でのいくつかの主要なフィールドについて説明します:

Key プロパティ
ID 活動オブジェクトの一意の GUID
valueType アクティビティに保存される値のタイプです。アクティビティが提供する情報を指定します (一般的なアクティビティ値のタイプ)
timestamp 活動がエポック形式で生成されたときのタイム スタンプ (UTC 時間で 1970 年 1 月 1 日午前 0 時からの秒数)
type 活動のタイプ; たとえば、messageevent、または trace
replyToId 現在の活動が応答している活動の ID
from フィールド idrole が含まれています:
  • id - 呼び出し元の ID
  • role - 0 または 1 を保持します
    • 0 - アクティビティはエージェントから来ています
    • 1 - アクティビティは、ユーザーがエージェントと対話することによって発生します。
注:
id キャンバスがユーザーの一意のIDを渡している場合、エージェント を操作しているアクティブ ユーザーの数を計算できます。 キャンバスが ID を渡さない場合、会話ごとに一意の ID が渡されます。
セキュリティとプライバシーのため、ID はトランスクリプトに書き込まれる前にハッシュされます。
channelId アクティビティの発生元となるチャネルのID。例: directlinemsteams、または facebook
textFormat テキストのフォーマット; たとえば、plain、または markdown
attachments 活動に関連付けられた動的なリッチ データ; たとえば、AdaptiveCardsHeroCards、または Carousel data
text message 活動のテキスト
value 値タイプに基づく活動に固有のフィールド; このフィールドには、ほとんどの有用な情報が存在します
channeldata
  • 次のチャネル データが含まれています:
    • メッセージに対して:
      • DialogTraceDetail
      • DialogErrorDetail
      • VariableDetail (変数に割り当てられた値が含まれます)
      • CurrentMessageDetail
    • イベントに対して:
      • cci_trace_id
      • traceHistory
      • enableDiagnostics
      • clientTimestamp
      • clientActivityId
name イベント活動の名前; 例えば、SetPVAContext

一般的な活動値タイプ

活動値のタイプ プロパティ
ConversationInfo Copilot Studio テスト ウィンドウ (isDesignMode) および会話のロケールからの会話がからのものであるかどうか
CSATSurveyRequest ユーザーには、顧客満足度 (CSAT) 調査が表示されます
CSATSurveyResponse ユーザーは CSAT 調査に回答します
DialogRedirect ユーザーは別のトピックにリダイレクトされます
ImpliedSuccess ユーザーがトピックの質問ノードに到達しました。ここで、条件の 1 つが 確認済みの成功 CSAT システムトピックを指しているか、会話の終了 システム トピックを呼び出しています
IntentRecognition ユーザーがトピックをトリガーしました
PRRSurveyRequest ユーザーは、トピックが 会話の終わり トピックからの質問に回答したかどうかを尋ねられました
PRRSurveyResponse トピックが 会話の終わり トピックからの質問に回答したかどうかに対するユーザーの応答
SessionInfo タイプ (unengaged または engaged)、結果 (EscalatedResolvedAbandon)、セッションのターン カウント
VariableAssignment 値が変数に割り当てられます

会話トランスクリプトからカスタム Power BI レポートをビルドする

会話のトランスクリプトからカスタム レポートを作成するための便利な方法は、処理する必要があるメッセージの数を調べることです。

軽量アプリ

Power BI を Power BI データフローとともに Dataverse に接続します。 他のインフラストラクチャは必要ありません。更新するたびにすべてのレコードが Dataverse から取得されます。

Dataverse から Power BI モデルへのデータの流れを示す図。

長所 デメリット
実装が簡単。 トランスクリプトが増えると、更新時間が長くなる可能性があります。
Dataverse での高いストレージ コスト。

標準 Azure Data Lake Storage アプローチ

Dataverse データを Azure Data Lake Storage にエクスポートします。 この方法では、Azure Data Lake Storage アカウントが必要ですが、他の Azure インフラストラクチャは必要ありません。

トランスクリプトでデータを準備するための Power Platform データフローとデータを構造化された形式に抽出します。

Power BI は、データフローからのデータを更新します。 Power Platform と Power BI は、すべてのコンピューティング インフラストラクチャを管理します。 更新のたびに、特定の日のレコードが Dataverse から取得されます。

データが Dataverse から Azure Data Lake Storageに流れ、Power Platform と Power BI によって処理される様子を示す図。

長所 デメリット
Azure Data Lake Storage での低いストレージ コスト。
適度に単純な実装。
Azure Compute は必要ありません。
トランスクリプトが毎日増えると、更新時間が長くなる可能性があります。

Azure Data Lake Storage + Synapse アプローチ

標準 Azure Data Lake Storage アプローチのデータ サイズでは、更新が遅くなったり、その他の操作上の問題が発生したりする可能性があります。 その場合、Azure Synapse Analytics を使用して Power BI に統合できます。

Dataverse から Azure Data Lake に流れるデータが Azure Synapse と Power Platform によって処理される図。

長所 デメリット
更新時間は一定です。
適度に単純な実装。
Azure Data Lake Storage での低いストレージ コスト。
Azure Synapse のコストを計算します。

既定の保持期間の変更

Power Apps 一括削除ジョブにより、30日以上経過した エージェント トランスクリプトが自動的に削除されます。 トランスクリプトをより長く保持するには、既存のジョブをキャンセルして、別のスケジュールで実行される新しいジョブを作成します。

既存の一括削除ジョブをキャンセルする

  1. Power Apps で 設定>高度な設定 を選択します。

    詳細設定が強調表示されている Power Apps 設定メニューのスクリーンショット。

    Dynamics 365 ポータルが新しいタブで開きます。

  2. 設定の横にあるキャレットを選択してから、システムの下で、データ管理を選択します。

    データ管理で強調表示されている設定メニューのスクリーンショット。

  3. レコードの一括削除を選択します。

  4. ビュー リストで、定期的な一括削除システム ジョブを選択します。

    定期的な一括削除ジョブのリストのスクリーンショット。

  5. 1 か月以上前の会話のトランスクリプト レコードを一括削除するジョブを選択します。

    最初のジョブが強調表示された一括削除ジョブのリストのスクリーンショット。

  6. その他のアクション リストで、キャンセルを選択します。

    キャンセルが強調表示されたその他のアクション リストのスクリーンショット。

新しい一括削除ジョブの作成

  1. 一括削除ウィザードを開始するには、新規 を選択し、ウィザードで 次へ を選択します。

  2. 次の検索条件を設定します。

    • 検索リストで、ConversationTranscripts を選択します。
    • ConversationStartTimeX か月以上前に設定して 「12」 にします。
      この設定により、12 か月間トランスクリプトが維持されます。 必要に応じて、別の比較と値を選択してください。
    • SchemaType を選択し、equals のままにして、「powervirtualagents」と入力します。

    一括削除ジョブ検索条件設定のスクリーンショット。

  3. 次へ を選択します。

  4. ジョブの名前を入力し、毎回このジョブを実行するを選択して 1 と入力します。 ジョブを毎日実行したくない場合は、別のスケジュールを選択してください。

    一括削除ジョブ名および実行設定のスクリーンショット。

  5. 次へ を選択し、続いて 送信 を選択します。

会話の記録を最大限に活用するためのヒント

変数は、エージェント コンテンツ または エージェント ユーザーに関連するデータを保存するために使用できます。 会話トランスクリプトから変数とその値を解析すると、変数でデータをフィルタリングまたはスライスできます。

会話のトランスクリプトは、コンテンツを ID で参照している箇所が多く存在します。 たとえば、現在のトピックによってリダイレクトされているトピックの ID は、その ID によってのみ参照されます。 トピック の名前を取得するには、エージェント コンテンツでその名前を検索します。