Teams アプリでビジネス データについて会話する

Microsoft Teams のアプリは、ユーザーがコミュニケーションやコラボレーションを行う場所で作業ができるようにすることで、コラボレーションを促進します。 アプリを連携させる一つの方法は、アプリやアプリ内のデータについて会話する機能を追加することです。 こうした会話には、Teams が最適です。

例えば、Teams のプロフィール + サンプル アプリでは、アプリ内で 1 人以上の複数のプロフィール カードを選択すると、選択した相手と Teams で直接チャットを開始することができます。

また、この機能はアプリに利用することもできます。 たとえば、営業マネージャーが今後の案件を確認するための営業案件トラッカーを構築している場合、その営業案件について営業担当者とチャットするボタンが欲しいと思うかもしれません。

このように、Teams の Power Apps は、他の Teams の機能との緊密な統合を利用して、アプリを連携させることができます。 この記事では、Power Apps と Teams を統合して会話を円滑にする方法を説明します。

このビデオでは、Teams アプリでビジネス データに関する会話を行うための設定方法について説明しています:

前提条件

このレッスンを完了するには、選択した Microsoft 365 サブスクリプションの一部として利用できる Teams 内でアプリを作成する機能が必要です。

Teams にログインします

デスクトップ アプリまたは Web アプリのいずれかを使用して Teams にログインします

新しいチームを作成します

このセクションでは、新しい Teams チームを作成し、そのチーム内にアプリを作成します。 使用したいチームが既にある場合は、このセクションをスキップしてください。

  1. 新しいチームを作成するには、Teams タブを選択し、画面左下の チームに参加、または作成する を選択します。

  2. チームの作成 > 最初から > 公開 の順に選択して、チームに「通話と会議の統合」などの名前をつけて、作成 を選択します。

  3. (任意) 組織内にテスト目的でチームに追加したいメンバーがいる場合は、そのメンバーを選択し、メンバー追加のポップアップで追加します。

  4. 閉じる を選択します。

新しいチームが作成され、[Teams] タブに一覧表示されます

新しいアプリを作成

ユーザーがボタンを選択してテキスト ボックスにメッセージを入力することで、特定のチームとチャンネルの会話を開始できるアプリを作成します。 その後、送信 ボタンを選択すると、Teams の特定のチームやチャネルにメッセージが投稿され、他のユーザーが会話に参加できるようになります。

  1. Teams を開きます。

  2. 左のペインから Power Apps を選択します。

  3. 最近のアプリ 配下で、+ 新しいアプリ を選択します。

  4. 上記手順で作成したチームを選択し、作成 を選択します。

    アプリが作成され、Power Apps Studio が開き、アプリを編集できるようになります。

  5. 「会話アプリ」など、アプリの名前を入力し、保存 を選択します。

    アプリは、画面1 の既定のギャラリーで作成されます。

コネクタとして Teams を追加する

ログインしたユーザーのアカウントからチームやチャンネルにアクセスできるようにするため、Teams をアプリのコネクタとして追加する必要があります。

  1. 左ペインから、データ を選択します。
  2. + データの追加 を選択し、コネクタ を選択します。
  3. 下にスクロールして すべてのコネクタを表示 を選択します。
  4. Teams コネクタを検索し、選択します。

新しいテーブルを追加して会社の記録を取りこむ

会社の記録として使う会社のリストを管理するテーブルを追加し、会社についての会話を始める必要があります。

  1. 左ペインから、データ を選択します。

  2. +データの追加 を選択し、「Company」という名前のテーブルを新規に作成し、複数の名前を「Companies」とします。

  3. テーブルにいくつかの会社名を追加して、閉じる を選択します。

新しい画面を追加して顧客を選択する

次に、アプリに画面を追加して、ユーザーが会話したい顧客を選択できるようにします。

  1. ツリー ビューで、+新しい画面 > シナリオ タブ > リスト を選択します。

    ギャラリー リストとともに新しい画面が追加されます。

  2. ギャラリーのタイトルを「会社リスト」に更新します。

  3. ギャラリーのデータソースに Companies を選択します。

    追加された企業のリストがギャラリー TemplateGalleryList1 に表示されます。

  4. ツリー ビューから 画面1 を削除し、新しい画面の名前を 画面1 に変更します。

新しいテーブルを追加して、会話の詳細を取り込みます

アプリ内で開始された会話に関連する Teams の会話 ID、チーム、チャンネルなどの詳細を把握するために、別のテーブルを追加する必要があります。

  1. データ > + データの追加 > 新規テーブルの作成 を選択します。

  2. テーブル名に Conversation、複数形の名前を Conversations と入力します。

  3. 既定の 名前 列名を ID に変更します。

  4. 会話テーブルに以下の列を追加します:

    Column タイプ
    チーム テキスト
    チーム チャネル テキスト
    チーム名 テキスト
    チャネル名 テキスト
    会社 ルックアップ、関連テーブル = Company
  5. テーブルを保存して閉じます。

新しい画面を追加して、会話を開始または参加します

ここで、アプリのユーザーが会話を始めたり、会話に参加したりするための新しい画面を追加します。

  1. ツリー ビューで、+新しい画面 > 空白のレイアウト を選択します。

  2. 画面の Fill プロパティを更新して、白色以外のものに変更します。

    この例では、画面の Fill プロパティを RGBA(224, 224, 237, 1) に設定しています。

  3. + (挿入) > 入力 > ボタン を選択します。

  4. ボタンの次のプロパティを更新します。

    プロパティ 価値
    名称 startaconversation_Button
    テキスト 「会話を開始する」
    200
    高さ 32
    フォント サイズ 12
    X Parent.Width/2 - startaconversation_Button.Width/2
    100
    OnSelect Set(enterMessage,true)
  5. +(挿入) > 入力 > コンボ ボックス 選択します。

  6. コンボ ボックスの次のプロパティを更新します。

    プロパティ 価値
    名称 team_Combobox
    品目 MicrosoftTeams.GetAllTeams().value
    320
    高さ 32
    X Parent.Width/2 - team_ComboBox.Width/2
    200
    テキスト "チーム"
    ヒント "チーム"
    表示可能 enterMessage
  7. コンボ ボックスをもう一つ追加し、以下のプロパティを更新します。

    プロパティ 価値
    名称 channel_Combobox
    品目 If(!IsBlank(team_ComboBox.Selected.id),MicrosoftTeams.GetChannelsForGroup(team_ComboBox.Selected.id).value)
    320
    高さ 32
    X Parent.Width/2 - channel_ComboBox.Width/2
    200
    テキスト "チャネル"
    ヒント "チャネル"
    表示可能 enterMessage
  8. +(挿入) > 入力 > テキスト ボックス 選択します。

  9. テキストボックスの次のプロパティを更新します。

    プロパティ 価値
    名称 message_TextBox
    価値 ""
    500
    高さ 180
    X Parent.Width/2 - message_TextBox.Width/2
    300
    プレースホルダー ここにメッセージを入力してください
    表示可能 enterMessage
  10. + (挿入) > 入力 > ボタン を選択します。

  11. ボタンの次のプロパティを更新します。

    プロパティ 価値
    名称 submit_Button
    価値 "提出"
    96
    高さ 32
    フォント サイズ 12
    X Parent.Width/2 - submit_Button.Width/2
    500
    表示可能 enterMessage
  12. ボタンの OnSelect イベントで次の式をコピーします。

    Patch(Conversations,Defaults(Conversations),{ID:MicrosoftTeams.PostMessageToChannelV3(team_ComboBox.Selected.id,channel_ComboBox.Selected.id,{content:message_TextBox.Value,contentType: "text"},{subject:"New conversation"}).id,Team:team_ComboBox.Selected.id,'Team Channel':channel_ComboBox.Selected.id, 'Team Name':team_ComboBox.Selected.displayName,'Channel Name':channel_ComboBox.Selected.displayName, Company: TemplateGalleryList1.Selected}); Set(enterMessage,false); Reset(team_ComboBox);Reset(channel_ComboBox);Reset(message_TextBox)
    

    注意

    • 上の式では、Patch 関数を使って Conversations テーブルに行を作成し、チーム、チーム名、チャンネル、チャンネル名とともに会話 ID を取得しています。 同時に、PostMessageToChannelV3 機能を使って該当するチームやチャネルにメッセージを投稿しています。 次に、enterMessage 変数を "false "に戻し、この変数に依存して表示されるフィールドやボタンの一部を隠します。
    • 件名は、アプリをシンプルにするために「新しい会話」にハードコードされており、取り込みのために別のテキスト ボックス コントロールを追加する必要はありません。 ただし、画面の件名にテキストボックスを追加して、ユーザーが取り込みすることができます。 この計算式は、コントロールを参照するために適宜調整する必要があります。 Fluent UI コンボボックス コントロールでは、リセット 機能が動作しません。 これは、メッセージが投稿された後にチームやチャネルを選択しないようにするために必要です。
  13. + (挿入) > 入力 > ボタン を選択します。

  14. ボタンの次のプロパティを更新します。

    プロパティ 価値
    名称 joinconversation_Button
    テキスト "会話に参加"
    200
    高さ 32
    フォント サイズ 12
    X Parent.Width/2 - submit_Button.Width/2
    500
    表示可能 enterMessage
  15. ボタンの OnSelect イベントで次の式をコピーします。

    Launch(Concatenate("msteams://teams.microsoft.com/l/message/",Last(Sort(Conversations, 'Created On', Ascending)).'Team Channel',"/",Gallery1.Selected.etag,"?tenantId=",Param("tenandId"),"&groupId=",Last(Sort(Conversations, 'Created On', Ascending)).Team,"&parentMessageId=",LookUp(MicrosoftTeams.GetMessagesFromChannel(Last(Sort(Conversations, 'Created On', Ascending)).Team,Last(Sort(Conversations, 'Created On', Ascending)).'Team Channel').value,id = Last(Sort(Conversations, 'Created On', Ascending)).Team).etag,"&teamName=",Last(Sort(Conversations, 'Created  On', Ascending)).'Team Name',"&channelName=",Last(Sort(Conversations, 'Created On', Ascending)).'Channel Name'),{},LaunchTarget.New)
    

    注意

    • 上の式では、Launch 関数を使って、Conversations テーブルで最後に作成されたレコードのチームとチャンネルのパラメータを使って Teams を起動しています。 これは、ユーザーが会話を開始し、チャンネルに投稿するメッセージを送信した際に、 会話に参加 ボタンを選択することで、Teams の投稿に直接アクセスできるようにするためです。
    • ここではシンプルにするために最後の関数を使っています。 もし、このアプリの使用頻度が高く、複数の会話を想定しているのであれば、会話のギャラリーを使用して、ユーザーが参加する会話を選択できるようにするなどの工夫が必要です。*

次に、会社のギャラリーの OnSelect プロパティを更新して、ユーザーがリストから会社を選択したときに、アプリが 2 画面目に進むようにします。

  1. ツリービューから 画面 1 を開いて Companies ギャラリーを開きます。

  2. ギャラリー アイテムの OnSelect プロパティを Navigate(Screen2) に設定します。

アプリの保存と公開

  1. 右上の 保存 を選択してアプリを保存します。

  2. 右上の 保存 を選択してアプリを公開します。

  3. 次へ を選択します。

  4. チャンネルに追加 配下で、アプリが表示されるチャンネルがリストアップされ、"0 active tab(s)" ではなく "1 active tab(s)" と表示されていることを確認してください。

  5. 保存して閉じる を選択して、アプリの公開作業を完了します。

アプリのテスト

プレビュー モードでアプリを実行するか、アプリが作成されたチームに移動します。

  1. Companies のギャラリーが最初の画面として表示されます。

  2. いずれかの会社を選択します。

  3. 次の 2 つのボタンのみが表示されます: 会話を始める会話に参加する

  4. 会話の開始 を選択します。

  5. 追加のフィールドが表示されます:

    • チーム (チームのリストを含むドロップダウン)
    • チャネル (選択したチーム内のチャネルのドロップダウン リスト)
    • メッセージ ボックス (チームに送信するメッセージを入力するためのテキストボックス)
    • 送信ボタン (メッセージの送信用)
  6. チームの選択。

  7. チーム内のチャネルを選択します。

  8. メッセージを入力します。

  9. 送信 を選択します。 追加のフィールド/コントロールはすべて非表示になります。

  10. 会話に参加する を選択して最後のメッセージが送信されたチームとチャネル チャットに移動します。

    アプリのテスト

関連項目

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。