辨識規則
電話號碼比對規則(Screen Pop + Contact Search)
Section titled “電話號碼比對規則(Screen Pop + Contact Search)”來電進來時,系統用以下 4 種格式同時查詢 HubSpot:
| 格式 | 範例 | 用途 |
|---|---|---|
| E.164 國際碼 | +886912345678 | HubSpot 推薦標準 |
| 本地格式 | 0912345678 | 台灣業務常用 |
| 純數字 | 912345678 | 容錯 |
| 後 9 碼模糊比對 | 912345678 | 號碼開頭差異容錯 |
比對策略:任一格式命中即視為「找到」,避免因號碼格式不一致導致重複建檔。
新舊客辨識邏輯
Section titled “新舊客辨識邏輯”來電號碼 → 4 種格式 OR 查詢 HubSpot ↓找到 ≥ 1 筆 Contact? ├─ 是 → 舊客:彈出最近一筆 Contact │ ├─ 顯示客戶姓名、公司、最近通話日期 │ └─ 顯示「最近通話意圖」「最近通話待辦」(給業務參考) │ └─ 否 → 新客:顯示「新客戶」提示 ├─ 顯示來電號碼 ├─ 提供「立即建檔」按鈕 └─ P2-C 處理時會自動建檔(如業務沒手動建)通話採納規則
Section titled “通話採納規則”為避免 AI 處理未接通 / 語音信箱 / 雜訊通話浪費成本,系統設有過濾規則。業務員若發現某通電話沒看到 AI 摘要,請對照此節判斷原因。
一、不採納的電話類型總覽
Section titled “一、不採納的電話類型總覽”| 類型 | 觸發條件 | HubSpot 標記 | Call 狀態 |
|---|---|---|---|
| 🚫 未接通 / 簡短通話 | 實際對話時長 tTalk < 60 秒 | (無,P2-A 直接跳過,不寫 HubSpot) | — |
| 🚫 錄音檔毀損 | ch0 / ch1 任一軌音檔 < 1 KB | [NO_AUDIO] | failed |
| 🚫 Genesys 錄音未備好 | Recording 狀態非 AVAILABLE | (無標記,下個 cron 重試) | pending |
| 🚫 語音信箱 / 自動應答 | Transcript 內含特定關鍵字(見下方) | [UNANSWERED] contains "<keyword>" | failed |
| 🚫 Whisper 幻覺(雜訊產生 hallucination) | Transcript 含 hallucination 關鍵字(見下方),剔除後仍 < 100 字 | [UNANSWERED] hallucination | failed |
| 🚫 空白 transcript | Whisper transcript 總長度 < 10 字 | [UNANSWERED] transcript too short | failed |
| 🚫 客戶秒拒(Outreach 撞牆) | Transcript 總長度 < 250 字 且含拒絕關鍵字(見下方) | [LOW_VALUE] short transcript + "<keyword>" | failed |
✅ 以上之外的通話會進入 AI 摘要流程,產出 5 點摘要 + 意圖標籤 + 後續待辦。
二、判斷時序
Section titled “二、判斷時序”通話結束 → Genesys 存錄音 ↓[P2-A] 撈最近通話(時間窗 25 小時) ├─ talkTimeSec < 60s ──────────→ 🚫 跳過(不下載音檔、不寫 HubSpot) └─ 通過 → 下載音檔 ├─ 音檔 < 1 KB ──────→ 🚫 [NO_AUDIO] └─ 通過 → 上傳 GCS ↓[P2-B] Whisper 轉錄 ↓ 產出 transcript ↓[P2-C] Extract Call Context 採納判斷 ├─ transcript < 10 字 ─────────→ 🚫 [UNANSWERED] transcript too short ├─ 含 hallucination 關鍵字 │ └─ 剔除後 < 100 字 ────────→ 🚫 [UNANSWERED] hallucination │ └─ 剔除後 ≥ 100 字 ────────→ ✅ 使用剔除版交給 GPT 摘要 ├─ transcript < 250 字 且含拒絕關鍵字 → 🚫 [LOW_VALUE] └─ 其他 ───────────────────────→ ✅ 進 GPT 摘要三、關鍵字清單
Section titled “三、關鍵字清單”Hallucination 關鍵字(Whisper 對沉默 / 雜訊產生的幻覺字串)
Section titled “Hallucination 關鍵字(Whisper 對沉默 / 雜訊產生的幻覺字串)”轉接到語音信箱、對象目前無法接聽、對象目前無法接通、對象無法接通、請在嘟聲後、請於嘟聲後、留言完畢即可掛斷、Amara.org、字幕由、點贊訂閱、點讚訂閱、訂閱轉發、明鏡與點點、多謝您收睇通話 transcript 中全篇都是這類字串 → 系統判定為未接通 / 雜訊,跳過摘要。 若 transcript 中只有幾行是這類字串(其餘是真實對話)→ 系統會把那幾行剔除,剩餘部分仍交給 GPT 摘要。
客戶秒拒關鍵字(短通話 + 拒絕語)
Section titled “客戶秒拒關鍵字(短通話 + 拒絕語)”不需要、沒需要、沒興趣、不用了、不用謝謝、我在忙、在忙啦、沒空、在開會、不要打來、別再打這類關鍵字單獨出現不會跳過,需 transcript < 250 字(即整通通話內容不足)才會被判定為
[LOW_VALUE]。 設計理由:避免業務在長對話中提到「客戶說不需要 OOO」被誤判為秒拒。
四、固定 Outreach 開場白會不會被誤判?
Section titled “四、固定 Outreach 開場白會不會被誤判?”情境:業務固定用同一段開場白(例如「您好,我是高飛興兒童成長飲品的業務」),客戶馬上拒絕「不需要」就掛掉。
判斷:
- ❌ tTalk < 60 秒(典型秒拒)→ P2-A 直接跳過,不寫 HubSpot
- ✅ tTalk ≥ 60 秒(聊夠久)→ P2-A 下載音檔 → Whisper 轉錄 → 進 P2-C 採納判斷
- 若 transcript < 250 字 + 含拒絕關鍵字 → 標
[LOW_VALUE]跳過 - 若 transcript ≥ 250 字(客戶有實質對話)→ 進 GPT 摘要
- 若 transcript < 250 字 + 含拒絕關鍵字 → 標
典型秒拒通話的時長:tTalk 約 5-30 秒(業務念開場白、客戶馬上拒絕),會被 P2-A 直接濾掉(不會出現在 HubSpot)。
業務員如何讓系統採納:
- 多跟客戶聊幾句讓 tTalk 至少 60 秒,再讓 transcript 超過 250 字
- 若希望某通短通話也留紀錄,請手動在 HubSpot 上建 Contact + Call 並打備註(系統只摘要不建檔)
五、業務員自助查找
Section titled “五、業務員自助查找”通話沒有 AI 摘要時:
- 開 HubSpot 找該 Call 物件
- 看
transcribe_status:failed→ 看transcribe_error第一個方括號標記([LOW_VALUE]/[UNANSWERED]/[NO_AUDIO])對照上表pending/transcribing/transcribed/summarizing→ 還在處理中,等下個 cron
- 若不該被跳過卻被跳過 → 改
transcribe_status = transcribed,下次 cron 會重新摘要
Owner 指派邏輯
Section titled “Owner 指派邏輯”Genesys agent ID (從錄音 metadata 抽出) ↓查 AGENT_TO_OWNER mapping(在 P2-A v3 的 Extract Call Info 節點) ↓找到 → 對應 HubSpot Owner ID找不到 → DEFAULT_OWNER_ID = '163916104'(兜底) ↓寫入 Call.hubspot_owner_id若 Contact 也沒 owner → 順便寫進 Contact.hubspot_owner_id目前 Mapping
Section titled “目前 Mapping”| Genesys Agent ID | HubSpot Owner ID | 業務員 |
|---|---|---|
c41f82da-b3eb-4eeb-90a4-7c6b8975e561 | 163916104 | Yu Cheng Liu |
| (其他兜底) | 163916104 | 預設指派給 Yu Cheng |
新業務加入時,請通知乙方在 n8n 加 mapping(屬保固範圍微調)。
AI 摘要抽取規則(v3 Prompt 設計)
Section titled “AI 摘要抽取規則(v3 Prompt 設計)”customer_info.name 規則
Section titled “customer_info.name 規則”- ✅ 只填客戶或業務「實際說出口」的具體姓氏(如「劉小姐」「張先生」「劉慧芳」)
- ❌ 對話只稱「媽媽」「先生」等通用尊稱無姓氏 → name 必須留空字串
- ❌ 用電話號碼或情境推測姓氏 → 禁止
- 寧可空白,絕不亂猜
address / city / state / zip / country 規則
Section titled “address / city / state / zip / country 規則”- ✅ 只在客戶或業務「明確念出地址」時才填
- ❌ 半推測 → 不填
checkout_method 規則(multi-select)
Section titled “checkout_method 規則(multi-select)”- ✅ 必須是這 6 個選項之一或多個:
現金 / 匯款 / 貨到付款 / 刷卡 / 店取 / 宅配 - ✅ 同義詞對應:
- 店點/取貨點/自取 → 店取
- 轉帳/銀行/ATM → 匯款
- 信用卡/刷卡/感應付款 → 刷卡
- ❌ 客戶或業務沒明確提到 → 空陣列
mentioned_products 規則
Section titled “mentioned_products 規則”- 通話中提及的產品名稱(業務介紹的 + 客戶提到自己在用的)
- 寫進 Call summary 末尾「- 提及產品:A / B / C」
summary 拆 5 欄
Section titled “summary 拆 5 欄”| 欄位 | 限制 | 範例 |
|---|---|---|
summary_customer | 35 字內 | 劉小姐,60 歲,過去買過 XX 保健品 |
summary_topic | 35 字內 | 詢問本月新品 OOO 是否有試用優惠 |
summary_status | 35 字內 | 目前固定服用 ABC 保健品,想加買新的 |
summary_reaction | 35 字內 | 對價格敏感,希望能有試用裝 |
summary_next | 35 字內 | 業務 5/26 寄送試用裝 + 報價單 |
- 嚴格 4 選 1:
詢價 / 售後 / 抱怨 / 一般諮詢 - 若解析失敗 fallback →
一般諮詢
Contact 寫入規則(fill-only-empty)
Section titled “Contact 寫入規則(fill-only-empty)”對於每個 Contact 欄位:
if Contact 欄位是空白 AND AI 萃取到值: 寫入else: 保留既有資料例外(永遠覆蓋):
latest_call_intent、last_call_summary、latest_call_followup、latest_call_date、last_call_date、latest_call_id— 這些是「最新通話」資訊,永遠更新
特殊邏輯:
lastname是 4 碼電話 fallback(無姓氏新客)且本通有抽到姓氏 → 清空 lastname、把姓氏寫進 firstnamemobilephone空白且phone有值 → 用 phone 補
Whisper Hallucination 過濾
Section titled “Whisper Hallucination 過濾”v3.1 加入:
- Whisper transcript 中出現以下重複字串(典型 hallucination)→ 過濾掉:
- 「請不吝點贊」「請訂閱我們的頻道」「字幕由 XX 提供」「謝謝大家觀看」
- 過濾後若 transcript < 10 字 → 標
[UNANSWERED]