Skip to content

辨識規則

Section titled “電話號碼比對規則(Screen Pop + Contact Search)”

來電進來時,系統用以下 4 種格式同時查詢 HubSpot:

格式範例用途
E.164 國際碼+886912345678HubSpot 推薦標準
本地格式0912345678台灣業務常用
純數字912345678容錯
後 9 碼模糊比對912345678號碼開頭差異容錯

比對策略:任一格式命中即視為「找到」,避免因號碼格式不一致導致重複建檔。

來電號碼 → 4 種格式 OR 查詢 HubSpot
找到 ≥ 1 筆 Contact?
├─ 是 → 舊客:彈出最近一筆 Contact
│ ├─ 顯示客戶姓名、公司、最近通話日期
│ └─ 顯示「最近通話意圖」「最近通話待辦」(給業務參考)
└─ 否 → 新客:顯示「新客戶」提示
├─ 顯示來電號碼
├─ 提供「立即建檔」按鈕
└─ P2-C 處理時會自動建檔(如業務沒手動建)

為避免 AI 處理未接通 / 語音信箱 / 雜訊通話浪費成本,系統設有過濾規則。業務員若發現某通電話沒看到 AI 摘要,請對照此節判斷原因。

類型觸發條件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] hallucinationfailed
🚫 空白 transcriptWhisper transcript 總長度 < 10 字[UNANSWERED] transcript too shortfailed
🚫 客戶秒拒(Outreach 撞牆)Transcript 總長度 < 250 字 且含拒絕關鍵字(見下方)[LOW_VALUE] short transcript + "<keyword>"failed

以上之外的通話會進入 AI 摘要流程,產出 5 點摘要 + 意圖標籤 + 後續待辦。

通話結束 → 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 摘要

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 摘要

典型秒拒通話的時長:tTalk 約 5-30 秒(業務念開場白、客戶馬上拒絕),會被 P2-A 直接濾掉(不會出現在 HubSpot)。

業務員如何讓系統採納

  1. 多跟客戶聊幾句讓 tTalk 至少 60 秒,再讓 transcript 超過 250 字
  2. 若希望某通短通話也留紀錄,請手動在 HubSpot 上建 Contact + Call 並打備註(系統只摘要不建檔)

通話沒有 AI 摘要時:

  1. 開 HubSpot 找該 Call 物件
  2. transcribe_status
    • failed → 看 transcribe_error 第一個方括號標記([LOW_VALUE] / [UNANSWERED] / [NO_AUDIO])對照上表
    • pending / transcribing / transcribed / summarizing → 還在處理中,等下個 cron
  3. 若不該被跳過卻被跳過 → 改 transcribe_status = transcribed,下次 cron 會重新摘要
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
Genesys Agent IDHubSpot Owner ID業務員
c41f82da-b3eb-4eeb-90a4-7c6b8975e561163916104Yu Cheng Liu
(其他兜底)163916104預設指派給 Yu Cheng

新業務加入時,請通知乙方在 n8n 加 mapping(屬保固範圍微調)。

AI 摘要抽取規則(v3 Prompt 設計)

Section titled “AI 摘要抽取規則(v3 Prompt 設計)”
  • ✅ 只填客戶或業務「實際說出口」的具體姓氏(如「劉小姐」「張先生」「劉慧芳」)
  • ❌ 對話只稱「媽媽」「先生」等通用尊稱無姓氏 → name 必須留空字串
  • ❌ 用電話號碼或情境推測姓氏 → 禁止
  • 寧可空白,絕不亂猜

address / city / state / zip / country 規則

Section titled “address / city / state / zip / country 規則”
  • ✅ 只在客戶或業務「明確念出地址」時才填
  • ❌ 半推測 → 不填
  • ✅ 必須是這 6 個選項之一或多個:現金 / 匯款 / 貨到付款 / 刷卡 / 店取 / 宅配
  • ✅ 同義詞對應:
    • 店點/取貨點/自取 → 店取
    • 轉帳/銀行/ATM → 匯款
    • 信用卡/刷卡/感應付款 → 刷卡
  • ❌ 客戶或業務沒明確提到 → 空陣列
  • 通話中提及的產品名稱(業務介紹的 + 客戶提到自己在用的)
  • 寫進 Call summary 末尾「- 提及產品:A / B / C」
欄位限制範例
summary_customer35 字內劉小姐,60 歲,過去買過 XX 保健品
summary_topic35 字內詢問本月新品 OOO 是否有試用優惠
summary_status35 字內目前固定服用 ABC 保健品,想加買新的
summary_reaction35 字內對價格敏感,希望能有試用裝
summary_next35 字內業務 5/26 寄送試用裝 + 報價單
  • 嚴格 4 選 1:詢價 / 售後 / 抱怨 / 一般諮詢
  • 若解析失敗 fallback → 一般諮詢

對於每個 Contact 欄位:

if Contact 欄位是空白 AND AI 萃取到值:
寫入
else:
保留既有資料

例外(永遠覆蓋)

  • latest_call_intentlast_call_summarylatest_call_followuplatest_call_datelast_call_datelatest_call_id — 這些是「最新通話」資訊,永遠更新

特殊邏輯

  • lastname 是 4 碼電話 fallback(無姓氏新客)且本通有抽到姓氏 → 清空 lastname、把姓氏寫進 firstname
  • mobilephone 空白且 phone 有值 → 用 phone 補

v3.1 加入:

  • Whisper transcript 中出現以下重複字串(典型 hallucination)→ 過濾掉:
    • 「請不吝點贊」「請訂閱我們的頻道」「字幕由 XX 提供」「謝謝大家觀看」
  • 過濾後若 transcript < 10 字 → 標 [UNANSWERED]