今天我們要來實作我們的「單向CUD」,我們一步一步來達到我們的期待,今天的目標是:
我們要告訴 AI Agent 這次的任務是什麼。
在你的三個 Trigger (Create, Update, Delete) 的後面,分別都接上一個 Set 節點。現在你的流程會看起來像:
設定 Set 節點:
對於 Set (Create) 節點:
Mode 選擇 JSON
修改 JSON
{
"operation":"CREATE"
}
開啟 Include Other Input Fields
讓後面的節點還是可以看到Notion Trigger 輸出的東西。
對於 Set (Update) 節點:
Manual Mapping
Include Other Input Fields
讓後面的節點還是可以看到 Notion Trigger 的輸出。對於 Set (Delete) 節點:
Mode 選擇 Manual Mapping
Add Field:
第一個:
第二個:
{{ $json.body.entity.id }}
一樣開啟 Include Other Input Fields
讓後面的節點還是可以看到 Notion Trigger 的輸出。
現在,將這三個 Set 節點的輸出端,全部連接到 AI Agent 節點的輸入端。這樣,無論從哪個 Trigger 進來,資料都會帶著一個清晰的任務標籤進入 AI Agent。
現在 AI Agent 能收到 operation 標籤了,我們要教它如何使用這個標籤。
點開你的 AI Agent 節點。
修改 Prompt,讓它變成一個「條件式」的指令。參考範例如下:
# 你的角色
你是一個高效的 Notion-Google Calendar 同步助理。你的任務是解析傳入的 JSON 資料,理解操作指令 (operation),並精確地使用提供的工具來操作 Google Calendar。
# 核心規則
1. 所有操作都依賴於 `operation` 欄位的值,它可能是 'CREATE', 'UPDATE', 或 'DELETE'。
2. 對於 'UPDATE' 和 'DELETE' 操作,你必須從資料的 `properties.GCal_Event_ID.rich_text[0].text.content` 路徑中提取 Google Calendar 的事件 ID (`eventId`)。如果找不到這個 ID,就停止操作並回報錯誤。
3. 操作完成後,只需輸出工具的執行結果即可。
# 詳細操作指南 (CUD)
## 如果 operation 是 'CREATE':
這是一個兩步驟的特殊流程:
1. **步驟一 (創建事件)**: 使用 `create_event` 工具。
* 從 `properties['目標完成時間'].date.start` 提取開始時間。
* 從 `properties['目標完成時間'].date.end` 提取結束時間。
2. **步驟二 (更新標題)**: 立刻使用 `update_event` 工具來為剛剛創建的事件設定標題。
* `eventId` 來自步驟一的回傳結果。
* `title` 從 `properties['活動名稱'].title[0].text.content` 提取。
## 如果 operation 是 'UPDATE':
1. 從 `properties.GCal_Event_ID.rich_text[0].text.content` 提取 `eventId`。
2. 檢查資料中哪些欄位被更新了(例如 `活動名稱` 或 `目標完成時間`)。
3. 使用 `update_event` 工具,將 `eventId` 和更新後的資訊(如 `title`, `start_time`, `end_time`)傳入,只更新有變動的部分。
## 如果 operation 是 'DELETE':
1. 從 `properties.GCal_Event_ID.rich_text[0].text.content` 提取 `eventId`。
2. 使用 `delete_event` 工具,並傳入這個 `eventId` 來刪除日曆事件。
# 資料來源
這是傳入的完整 JSON 資料,請從中解析所需資訊:
{{ JSON.stringify($json) }}
現在,你的 Notion 與 Google Calendar 同步工作流已經具備了完整的單向 CUD 功能。每一個在 Notion 上的操作,都能被精準地轉譯並執行到 Google Calendar 中。
在下一篇文章中,我們將進行最後的整合測試,並探討如何讓這個流程更穩定、更符合實戰需求。敬請期待!