---
# System prepended metadata

title: Logic-Apps-Trigger-Meeting

---

---
title: Azure Logic Apps Trigger Agent to Schedule Teams Meeting

---

 
# Trigger Agent via Logic Apps 建立教學
 
---
參考資料: 
+ [Trigger an agent using Logic Apps](https://learn.microsoft.com/en-us/azure/ai-foundry/agents/how-to/triggers)

---
 
## 一、前置需求

📌 **重要提示**：
- 請使用您公司的 M365 Outlook 帳號登入。
- 已預先建立一個AI Foundry Agent。

---

## 二、建立Logic Apps
### 1.	在Azure Portal 輸入 Logic Apps
![image](https://hackmd.io/_uploads/Hk8KKXbNle.png)

### 2.	Add Logic apps
![image](https://hackmd.io/_uploads/SJKhFQZ4eg.png)

### 3.	選擇Multi-tenant Consumption plan
![image](https://hackmd.io/_uploads/ByHcqXbNgl.png)

### 4.	新增 Logic apps
+ Resource Group: 選擇既有或新建
+ Logic app name: 輸入自定義名稱
+ Region: 輸入同一Region
+ **Review + Create**
![image](https://hackmd.io/_uploads/B1En5XW4ex.png)

## 三、授權 Logic Apps 存取 AI Foundry 專案
### 1.	開啟Logic apps Manage Identity
+ 點擊 **identity**
+ status 選擇 **on**
+ save
![image](https://hackmd.io/_uploads/BkgJiEZEee.png)

### 2.	授權Logic Apps存取AI Foundry
+ Azure Portal 選擇 **Azure AI Foundry**
![image](https://hackmd.io/_uploads/HykjjN-4gx.png)
+ 在 AI Foundry選擇您建立的project
![image](https://hackmd.io/_uploads/H1_Kh4-Nxg.png)
+ 點選 Access Control(IAM)
+ add role assignment
![image](https://hackmd.io/_uploads/r1xWTN-Ngl.png)
+ 選擇 Azure AI User
+ Next
![image](https://hackmd.io/_uploads/rJsvTN-4gx.png)
+ 點選 manage identity
+ select member
+ 選擇剛所建立的logic apps
+ 點擊 **Select**
+ Next
![image](https://hackmd.io/_uploads/Sk2CpV-Vgl.png)
+ 點擊 **Review + assign**
![image](https://hackmd.io/_uploads/BJzqA4WVxe.png)

## 四、設置 Logic Apps
### 1.	Add email trigger
+ 點擊 **add a trigger**
+ 輸入 when a new email arrives
+ 選擇 **when a new email arrives (V3)**
![image](https://hackmd.io/_uploads/B1gJLhmZExx.png)

### 2.	登入Microsoft 365 outlook帳號
![image](https://hackmd.io/_uploads/rksX6m-Vlx.png)

### 3.	設置Trigger規則
+ 點擊 **show all**
![image](https://hackmd.io/_uploads/HJX36m-Egl.png)
+ From: 請輸入您的email address
+ Subject Filer: `會議記錄` 
+ Folder: `Sent items`
![image](https://hackmd.io/_uploads/rkk8Am-Vee.png)

#### 💡 如果要處理多個 Subject Filter（例如「會議記錄」或「meeting minutes」）
由於 **Subject Filter** 欄位只支援單一文字關鍵字（不支援多個值或 OR 條件），若要讓觸發器在多個主題條件下啟動，可使用 **使用 Trigger Condition 條件式** 

   在觸發器設定中點擊 **Settings** → **Trigger Conditions**，加入以下表達式：
   ```text
   @or(
     contains(triggerOutputs()?['body/subject'], '會議記錄'),
     contains(toLower(triggerOutputs()?['body/subject']), 'meeting minutes')
   )
   ```
💡 contains() 比對有區分大小寫（case-sensitive）所以一律轉成小寫。   
#### ⚠️ 重要：請將原本的 Subject Filter 欄位清空，否則條件式不會生效。  
   
### 4.	新增初始化變數
+ add an action
+ 輸入 **initialize variables**
![image](https://hackmd.io/_uploads/Sk9mkEWNgg.png)

### 5.	設置初始化變數
- 變數 - agent_id
  ![image](https://hackmd.io/_uploads/BkdSQNZVgx.png)

  - Name: agent_id
  - Type: string
  - Value: 請到AI Foundry Agent頁面複製您的agent id
  ![image](https://hackmd.io/_uploads/BJx1GVb4ee.png)
  - Add a Variable
  
- 變數 - email_content
  ![image](https://hackmd.io/_uploads/HycaGNb4lx.png)
  - Name: email_content
  - Type: string
  - Value: 請點選Value左方閃電符號依下方畫面輸入
  ![image](https://hackmd.io/_uploads/BkQ4HLf4xx.png)


### 6.	新增condition
- add an action - 輸入condition
![image](https://hackmd.io/_uploads/B1wU8EWNle.png)

### 7.	設置condition條件
- 輸入以下條件
Condition Expression: **AND**
加上`toUpper`處理大小寫的所有subject



    - Subject not contains `RE:`
    - Subject not contains `FW:`
    - Subject not contains `回覆:`
    - Subject not contains `轉寄:`
    - Subject not contains `稿件確認`
    - Subject not contains `DRAFT`
    
```
toUpper(triggerBody()?['subject'])
```
![image](https://hackmd.io/_uploads/HJvfrp7ngx.png)

### 8.	Step for True
- Create Thread: 建立初始thread
![image](https://hackmd.io/_uploads/BynQF4WExl.png)
  - 輸入Azure AI Project Endpoint
  ![image](https://hackmd.io/_uploads/rJkvYVZVee.png)
  - 至您建立的AI Foundry Project 在 **overview**頁面 獲取此資訊
![image](https://hackmd.io/_uploads/r18iFE-Ege.png)
  - 點選 **create new**
  - Advanced Parameters 勾選**messages**
  ![image](https://hackmd.io/_uploads/ryKWgrWEee.png)
  - 點選 `+ Add new item`
  ![image](https://hackmd.io/_uploads/ByBAgSbNex.png)
  - Role-1: user
  - Content - 1: 點擊閃電選取 **email_content**
  ![image](https://hackmd.io/_uploads/BJWvbUbExx.png)

- Create Run: 建立Run
![image](https://hackmd.io/_uploads/S1myzL-4le.png)

  - The ID of the thread to create a message for: 選擇Create Thread的id
  - assistant_id: 選擇變數 `agent_id`
  - temperature: 輸入 **0.01**
  ![image](https://hackmd.io/_uploads/r1hqz8-Ngx.png)

- Delay: 等待上述 Run 完成
![image](https://hackmd.io/_uploads/S1myzL-4le.png)
  - Count: 輸入 `180`
  - Unit: 選擇 `Second`
  ![image](https://hackmd.io/_uploads/S1WtXUW4lx.png)

- Get Run: 得到 Run 結果
![image](https://hackmd.io/_uploads/ryby48bEel.png)

  - The ID of the thread to create a message for: 選擇`Create Thread`的id
  - The ID of the run: 選擇`Create Run`的id
  ![image](https://hackmd.io/_uploads/H1dS48W4xx.png)


- List Messages: 得到這個thread的所有messages
![image](https://hackmd.io/_uploads/SyF2EUb4gl.png)
  - The ID of the thread to create a message for: 選擇`Create Thread`的id
  ![image](https://hackmd.io/_uploads/HJrxHUZ4el.png)
  

- Compose: 輸出最後一個Message
![image](https://hackmd.io/_uploads/HyhSB8Z4le.png)


  - Inputs請輸入
    ```
    body('List_Messages')['data'][0]['content'][0]['text']['value']
    ```
  ![image](https://hackmd.io/_uploads/H1r9SL-Nee.png)

### 9.	設置完成
![image](https://hackmd.io/_uploads/BJZHcThHxg.png)

### 10.	測試
+ 情境一: 郵件主旨包含或不包含`會議記錄`
+ 情境二: 郵件主旨包含或不包含`轉寄:` `回覆:` `FW:` `RE:` `draft` `稿件`
+ 情境三: 郵件內文Action Item是否提及下次會議時間

### 11. Debug 操作指引

#### 情境一：確認是否符合郵件觸發條件（Trigger）

判斷依據：
- 郵件主旨包含 `會議記錄` 關鍵字。
- 若符合條件，系統會透過 Logic App 進行觸發。

檢查方式：
- 前往 Logic App 的 Run History，確認是否有觸發紀錄。
![image](https://hackmd.io/_uploads/SJjY-Qd5ge.png)
---

#### 情境二：確認 AI Agent 是否成功被驅動

判斷依據：
- 郵件主旨不包含以下關鍵字：
  `轉寄:`、`回覆:`、`FW:`、`RE:`、`draft`、`稿件`
- 郵件內文中「Action Item」或類似標題之後的內容，需提及明確的下次會議時間。

檢查方式：
- 前往 AI Foundry Portal → Agent → My Threads
- 找到最近的一筆 thread，點選 Try in Playground 進行驗證。
![image](https://hackmd.io/_uploads/Sk9AWmu9lx.png)