Copilot Studio エージェントに外部トリガー(メール受信・Teams メッセージ・スケジュール等)を追加する。Power Automate フローと ExternalTriggerComponent を連携させてエージェントを自動起動する。Use when: Copilot Studio トリガー, メール受信, エージェント自動起動, ExternalTriggerComponent, ExecuteCopilot, Power Automate トリガー, Office 365 Outlook, OnNewEmailV3, メールトリガー
Copilot Studio エージェントに Power Automate フロー経由の外部トリガー を追加する。 メール受信・Teams メッセージ・スケジュール等をきっかけにエージェントを自動起動する。
❌ API でトリガーフロー(Power Automate)を事前作成 → うまくいかない。接続認証・フローID不一致等の問題が頻発
❌ ExternalTriggerComponent を API で登録 → Copilot Studio UI でアイコンが表示されない等の問題が発生
❌ フローの有効化を API で実行 → ConnectionAuthorizationFailed で失敗する
❌ ツール・ナレッジを API で追加 → API では追加不可
✅ トリガーの追加は Copilot Studio UI でユーザーが手動実行(UI がフローを自動生成・管理)
✅ フローの接続認証・有効化は Power Automate UI でユーザーが手動実行
✅ ツール・ナレッジも Copilot Studio UI でユーザーが手動追加
✅ エージェント公開は Copilot Studio UI または PvaPublish API で実行
API でメールトリガーフローを作成するアプローチは失敗する。 理由:
正しいアプローチ: Copilot Studio UI の「トリガー > + トリガーの追加」ですべてを行う。 UI がフロー作成・ExternalTriggerComponent 登録・接続参照をすべて自動で正しく生成する。
「メールに返信する (V3)」コネクタの Attachments 属性問題:
→ メール返信には「メールに返信する (V3)」コネクタではなく Work IQ Mail MCP を使うこと。
mcp_MailTools)はシンプルな MCP インターフェースで Attachments 問題が発生しない| 作業 | 方法 |
|---|---|
| エージェントの Instructions 更新 | スクリプト(GPT コンポーネント PATCH) |
| エージェントの公開(PvaPublish) | スクリプト |
| トリガー・ツールの状態確認 | スクリプト(読み取りのみ) |
| 作業 | 場所 | 手順 |
|---|---|---|
| フローの接続認証・有効化 | Power Automate UI | フローを開く → 接続を認証 → 保存 → オンにする |
| トリガーの追加 | Copilot Studio UI | エージェント → トリガー → 追加 → 作成したフローを選択 |
| ツールの追加 | Copilot Studio UI | エージェント → ツール → コネクタ/MCP Server を追加 |
| ナレッジの追加 | Copilot Studio UI | エージェント → ナレッジ → データソースを追加 |
| エージェントの公開 | Copilot Studio UI | 公開ボタンをクリック |
外部イベント(メール / Teams / スケジュール等)
↓
Power Automate フロー(トリガー → ExecuteCopilot アクション)
↓
Copilot Studio エージェント(Instructions + ナレッジ + ツールで処理)
↓
応答(メール返信 / Teams 投稿 / Dataverse 更新等)
| コンポーネント | 場所 | 役割 |
|---|---|---|
| Power Automate フロー | workflows テーブル (category=5) | トリガー検知 + ExecuteCopilot アクション実行 |
| ExternalTriggerComponent | botcomponents テーブル (componenttype=17) | Copilot Studio UI にトリガー情報を表示するメタデータ |
| 接続参照 | connectionreferences テーブル | Copilot Studio コネクタ + トリガーコネクタの接続 |
ExternalTriggerComponent には 2 種類のフロー ID が存在する:
| キー | 説明 | 取得元 |
|---|---|---|
flowId | Dataverse workflows テーブルの workflowid | api_get("workflows?$filter=...") |
extensionData.flowName | Flow API 上のフロー ID | Flow API GET /flows レスポンスの name フィールド |
flowId ≠ extensionData.flowName — 同じフローでも ID が異なる。
トリガーを追加する前に、設計をユーザーに提示し承認を得ていること。
設計提示時に含める内容:
| 項目 | 内容 |
|---|---|
| トリガー種別 | メール受信 / Teams メッセージ / スケジュール / Dataverse レコード変更等 |
| トリガー条件 | 件名フィルタ / チャネル / 実行スケジュール等 |
| エージェントへの入力 | フローからエージェントに渡すメッセージの構成 |
| エージェントの応答処理 | 応答をメール返信 / Teams 投稿 / レコード更新等に使うか |
| 必要な接続 | Office 365 Outlook, Microsoft Copilot Studio, Teams 等 |
フロー: 設計提示 → ユーザー承認 → フロー作成(スクリプト) → ユーザーに手動操作を案内(フロー有効化 + トリガー追加 + 公開)
フロー・接続参照・ExternalTriggerComponent は すべてエージェントと同じソリューション内 に含める。