iT邦幫忙

2025 iThome 鐵人賽

DAY 29
0
Odoo

站在巨人的肩膀上打造企業智慧助手:Make × AI × Odoo 的實踐之路系列 第 29

🚀 Day 29:AI × Odoo × Tag 自動配對:從需求直達產品

  • 分享至 

  • xImage
  •  

一、前情提要:從 Tag 到產品

Day27Day28,我們完成了兩個關鍵任務
Day27:AI 能依照客戶需求,自動對應 Google Sheets 的 Tag 資料,查找符合需求的標籤。
Day28:Google Sheets 的 Tag 資料能與 Odoo 自動同步,確保永遠與最新狀態一致。

到這裡為止,我們已經能把 Gmail 信件中的需求 → 轉換成 標籤分類 (Tag)
但這還只是「中間成果」。

真正的目的,其實是要讓 AI 幫我們找到對應的產品
換句話說:
👉 客戶寄來一封詢價信
👉 AI 幫我們解析需求,對應到 Odoo 的 Tag
👉 系統再根據這些 Tag,直接找到符合的產品

最終結果:
從一封信 → 自動找到對應產品 → 帶入 Odoo 商機
這樣流程才算真正閉環。


二、使用者情境:從需求到產品

來看一個例子:
客戶寄信:

找一支用來切削陶瓷的牙技用刀具,刀尖直徑 0.5mm,長度約 38mm。

AI 判斷出的 Tag(參考 Day27 的成果):

  • 用途 – 陶瓷
  • 形式 – 牙技
  • D – D0.5
  • L – 38

傳統人工流程:
1️⃣ 業務打開 Odoo → 產品清單
2️⃣ 手動篩選 Tag → 找出符合的產品
3️⃣ 再建立商機

但現在,我們要讓系統自己跑
👉 AI 幫我們輸出 Tag
👉 系統自動比對 Odoo 產品裡的標籤
👉 篩選出符合條件的產品

那具體該怎麼實作這樣的查找流程呢?
我們馬上來看實際操作!


三、實際操作流程

🔧 步驟 1:AI 產生精準篩選條件

在 Day27,我的 Prompt 設計就特別強調「唯一且精準」。
所以當 AI 輸出分類結果時,我要求它依照 Google Sheets 中的 Tag 對照表,產生一組完全符合 Odoo Domain 語法 的篩選條件。

📌 小提醒:
如果你不確定 Odoo 的篩選程式碼是怎麼寫的,其實很簡單:
👉 先進入 Odoo,開啟 開發者模式
👉 在清單頁面使用 加入自訂準則
👉 設定篩選條件後,就可以直接看到系統自動產生的篩選程式碼
這樣一來,你就能清楚知道 Odoo 的 domain 語法長什麼樣子,後續設計 Prompt 也就不會踩坑。

https://ithelp.ithome.com.tw/upload/images/20250829/201776659CYDWdxsdy.png

📌 我的 Prompt 設計邏輯:

  • 如果是 同一種 Tag 分類(例如「刀徑 D2、D4、D6」),就用「」條件 (OR) 把所有值合併。
  • 如果是 不同分類(例如「刀徑 D2」+「用途 鋁銅用」),就必須用「」條件 (AND) 連接。

這樣設計下來,AI 就能輸出一份精準且符合 Odoo Domain 格式的篩選條件,不會模糊不清。

📌 我的 Prompt 範例 :

請根據下方內容及分類tag的id對照表,產生唯一且精確的篩選條件,並嚴格遵守以下規則:

1.每個分類(例如刀徑、刃數、塗層、用途等)若有多個tag值,請將該分類的所有tag id以「或」條件合併,例如 ["product_tag_ids", "=", [id1, id2, id3]]。
2.不同分類之間請用「且」條件連接,最外層請用 ["&", ...] 包覆,格式需嚴格與範例一致。
3.僅回傳篩選條件的id格式,不需任何說明或其他內容。
4.請直接回傳純文字,不要加上任何程式框、格式標籤或多餘符號。
請僅產生篩選條件id格式,嚴格依上述規則執行,不要有任何說明。

內容:{{8.result}}

分類tag:{{9.body}}

範例
內容:
刀徑:D - D2、D - D4、D - D6
刃數:刃數 - 1T
塗層:塗層 - 白
用途:用途 - 鋁銅用

對應回應:
["&", "&", "&", ["product_tag_ids", "=", [1342, 1346, 1410]], ["product_tag_ids", "=", [1379]], ["product_tag_ids", "=", [1374]], ["product_tag_ids", "=", [1372]]]

🔧 步驟 2:進入 Odoo 查找產品

有了篩選條件後,理論上我們可以直接用 Make 的 Odoo: Make an API Call 模組來查詢 product.template
但實際測試時我發現一個問題:

👉 雖然能成功連到 Odoo,但 篩選 domain 條件卻一直無法正確生效

後來我乾脆換了一種方式 —— 使用 HTTP 的 Make a Request,直接呼叫 Odoo 的 JSON-RPC API

這樣的做法有幾個好處:
1️⃣ 可以完全掌控傳遞的 domain 條件(AI 產生的結果直接帶入)
2️⃣ 不受限於 Make 模組的封裝邏輯

📌 實作方式如下:
https://ithelp.ithome.com.tw/upload/images/20250829/20177665CXm8s4QRJq.png

  1. 在 Make 中新增一個 HTTP → Make a Request 模組
  2. 設定方法:POST
  3. 設定網址:你的 Odoo 網址後面加上 /jsonrpc,例如:
https://your-odoo-instance.com/jsonrpc
  1. 設定 Request Content 為以下 JSON(我這邊的例子):
{
  "jsonrpc": "2.0",
  "method": "call",
  "params": {
    "service": "object",
    "method": "execute_kw",
    "args": [
      "IT-AI_test",
      2,
      "abc123",
      "product.template",
      "search_read",
      [
       {{24.candidates[].content.parts[].text}}
      ],
      {
        "fields": ["name", "qty_available"]        
      }
    ]
  },
  "id": 1
}

其中:

  • "IT-AI_test" 是我的 Odoo 資料庫名稱
  • 2 是 user_id (下方有小技巧會說明如何取得)
  • "abc123" 是 Odoo 使用者的密碼
  • "product.template" 是模型名稱
  • "search_read" 是方法
  • {{24.candidates[].content.parts[].text}} 就是 AI 幫我產生的 domain 篩選條件
  • "fields" 指定只回傳我需要的欄位(這裡是 nameqty_available

這樣就能成功查到符合所有 Tag 的產品清單了 🚀

📌 小技巧:如何取得 Odoo 的 user_id?
在呼叫 JSON-RPC API 時,第二個參數需要填入使用者的 user_id。那要怎麼知道呢?

其實很簡單:
1️⃣ 先到 Odoo 後台 → 設定 → 使用者
2️⃣ 點進某個使用者(例如 admin)
3️⃣ 看一下瀏覽器網址列,格式通常會像這樣:

https://your-odoo-domain/web#id=2&action=…&model=res.users&view_type=form

👉 這裡的 id=2 就代表該使用者的 ID,也就是 user_id。

所以如果你用的是管理員帳號,通常 user_id 就是 2
如果你用別的員工帳號,就去查對應的網址 id 值,把它填進 API 呼叫裡即可。


這樣其實就完成在 Odoo 根據 Tag 查找產品 的流程啦~


四、測試成果

實測流程 🚀:
1️⃣ Gmail 收到詢價信 → AI 判斷需求
2️⃣ AI 輸出 Tag → 「用途:用途 - 陶瓷、形式:形式 - 牙技、D:D - D0.5、L:L - 38L」
3️⃣ 系統自動到 Odoo 查詢產品
4️⃣ 找到符合的產品:「ZA026119021202-G
gif


五、結語:需求 → Tag → 產品,一步到位

今天我們完成了最後一塊重要任務:
✅ AI 能依照客戶需求,對應出精準的 Tag
✅ 自動產生 Odoo 的篩選條件
✅ 在 Odoo 裡找到符合需求的產品

這代表什麼?
👉 客戶只要寄一封詢價信,系統就能一路跑到「找產品」這一步,完全不用人工介入。

不過,你可能也注意到了:目前我們只做到「找到產品」,還沒真正把它 放進 CRM 商機
也就是說,商機裡雖然有客戶需求,但缺少最關鍵的 —— 對應的產品

📌 所以明天的 Day30(系列最終回),我會帶大家實作:
👉 如何把找到的產品自動加入 Odoo CRM 商機,完成最後一步,真正做到 從需求 → Tag → 產品 → 商機 的完整閉環! 🚀


上一篇
🚀 Day 28:Odoo Tag × Google Sheets 自動同步:告別手動調整!
下一篇
🚀 Day 30:最終章!AI × Odoo 的自動化銷售閉環
系列文
站在巨人的肩膀上打造企業智慧助手:Make × AI × Odoo 的實踐之路30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
Odoo傳教師
iT邦新手 4 級 ‧ 2025-08-29 18:08:43

天啊~可以完全不動手就完成複雜動作的自動化流程,老闆看到還不赚翻

我要留言

立即登入留言