ファンリピート社のブログFR note

Copilot Studioのアダプティブカードにコンボボックスを表示させる

近年、多くの企業でチャットボットを活用した業務効率化が進んでいます。Microsoft Copilot Studioは、ノーコード/ローコードでチャットボットを構築できる強力なツールですが、アダプティブカードの標準機能にはコンボボックス機能が搭載されていないという課題があります。

よくある業務課題

  • 従業員名簿から担当者を選択させたいが、選択肢が多すぎて探しにくい
  • マスターデータから動的に選択肢を生成したい
  • ユーザーが入力ミスなく正確なデータを選択できるUIが必要

本記事では、SharePointListと連携して動的にコンボボックスを表示させる方法を解説します。

活用シーン例

  • 人事系: 有給申請時の従業員選択、部署選択
  • 営業系: 顧客名・案件名の選択
  • 総務系: 備品申請時の備品マスタからの選択
  • IT系: システム名・サービス名の選択

今回の構成

  • 使用ツール: Copilot Studio
  • データソース: SharePointList
    • SharePointサイト: CopilotStudio試験用
    • SharePointList: 有給申請

1. SharePointコネクタのツールを作成

Copilot Studioで「ツール」を開く

「ツールを追加」をクリック

SharePointの「複数の項目の取得」を選択

接続を設定

2. SharePointサイトとリストの設定

対象のSharePointサイトを選択

対象のリストを選択

💡 Tip: リストが表示されない場合は「カスタム」でリスト名を直接入力

3. 内部名の確認

アダプティブカードで表示させたい列の内部名を把握しておく必要があります。

内部名の確認方法

SharePointListの列設定を開く

URLから内部名を確認

URLの &Field= の後ろの部分が内部名です。

  • 氏名field_1
  • 有給残日数field_9

⚠️ 注意: 日本語の列名やExcelなどでSharePointリストをインポートして作成したものに関しては、内部名はエンコードされた文字列や field_X のような形式になっていることがあります。必ず実際の内部名を確認してください。

4. フィルター条件の設定

フィルタークエリを設定「カスタム値」を選択し、以下のフィルター条件を入力

field_1 ne null

トピックの作成

1. トピックを開く

「トピック」メニューから新規作成(または既存トピックを編集)

今回は「会話の開始」トピックを使用

2. SharePointツールの追加

先ほど作成したSharePointツールを選択

3. アダプティブカードの設定

メッセージノードを追加し、「式」を選択

{
  type: "AdaptiveCard",
  '$schema': "http://adaptivecards.io/schemas/adaptive-card.json",
  version: "1.0",
  body:  [
    {
      type: "TextBlock",
      text: "従業員氏名を表示",
      weight: "Bolder",
      wrap: true
    },
    {
      type: "Input.ChoiceSet",
      id: "selectedItem",
      style: "filtered",
      isMultiSelect: false,
      placeholder: "選択してください",
      choices: ForAll(Topic.value, {title: ThisRecord.field_1, value: Text(ThisRecord.field_9)})
    }
  ],
  actions: [
    {
      type: "Action.Submit",
      title: "送信"
    }
  ]
}

コードのポイント

プロパティ説明
type: "Input.ChoiceSet"選択肢入力コントロール
style: "filtered"コンボボックス形式(フィルター検索可能)
isMultiSelect: false単一選択
ForAll(Topic.value, ...)SharePointの各レコードをループ処理
ThisRecord.field_1表示テキスト(氏名)
ThisRecord.field_9選択時の値(有給残日数)

4. 出力スキーマの設定

ユーザーの選択結果を受け取るため、出力スキーマを設定します。

以下のYAMLを入力

kind: Record
properties:
    selectedItem:
        type: String

5. 変数の設定

選択結果を変数に保存します。

動作確認

テスト実行

テストパネルを開いて実行

コンボボックスが表示される

テキスト入力による検索も可能

まとめ

本記事では、Copilot Studioのアダプティブカードにコンボボックスを表示し、SharePointListから動的に選択肢を取得する方法を紹介しました。

技術的ポイント

  1. Input.ChoiceSet の style: "filtered" でコンボボックス形式に
  2. ForAll関数 でSharePointのデータを動的にマッピング
  3. 内部名 を使用してフィールドを指定
  4. 出力スキーマ で選択結果を受け取る

期待される効果

  • ユーザーの入力負荷軽減による業務効率化
  • データ入力精度向上による後工程の手戻り削減
  • マスターデータ一元管理による運用負荷の軽減

参考リンク


                

この記事を書いた人

株式会社ファンリピートのアバター

株式会社ファンリピート

FRnoteは株式会社ファンリピートのメンバーによって運営されている社内ブログです。ノーコード・ローコードの技術ブログを始めとして、最新のIT技術、業務で役立つノウハウなど様々なトピックをまとめています。