架構總覽
┌─────────────────────────┐│ Genesys Cloud │ ← Frank 既有電話系統(企業版)│ - Webhook(來電) ││ - Recording API(錄音) │└──────┬──────────────┬───┘ │ │ │ 接電話即時 │ 通話結束後撈 ▼ ▼┌────────────────┐ ┌────────────────────────┐│ Screen Pop │ │ P2-A Workflow (n8n) ││ app.tiwise. │ │ 下載音檔 → GCS ││ com.tw │ │ HubSpot 建 pending Call│└────────────────┘ └────────┬───────────────┘ │ │ │ 客戶資料彈跳 │ 雙軌音檔 │ ▼ │ ┌────────────────────────┐ │ │ Google Cloud Storage │ │ │ frank-recordings- │ │ │ tiwise │ │ └────────┬───────────────┘ │ │ P2-B 撈 pending │ ▼ │ ┌────────────────────────┐ │ │ GCP VM (e2-small) │ │ │ /transcribe endpoint │ │ │ ffmpeg 切片 + Whisper │ │ │ 並行轉錄 │ │ └────────┬───────────────┘ │ │ transcript_raw │ ▼ │ ┌────────────────────────┐ │ │ P2-C Workflow (n8n) │ │ │ OpenAI GPT 摘要 │ │ │ → HubSpot Call 更新 │ │ │ → HubSpot Contact 更新│ │ └────────┬───────────────┘ ▼ ▼┌─────────────────────────────────────────────┐│ HubSpot CRM (Starter) ││ 業務介面:看 Contact + Call 完整 AI 摘要 │└─────────────────────────────────────────────┘三段式批次設計(每天 4 輪)
Section titled “三段式批次設計(每天 4 輪)”系統每天分 4 個時段跑批次,三段錯開避免互相卡住:
| 階段 | 每日觸發時間 | 任務 | 預期耗時 |
|---|---|---|---|
| P2-A | 09:00 / 13:00 / 17:00 / 21:00 | 從 Genesys 撈過去 25 小時通話、下載雙軌音檔、上傳 GCS、HubSpot 建 pending Call | 約 5 分鐘 |
| P2-B | 09:30 / 13:30 / 17:30 / 21:30 | 撈所有 pending Call、呼叫 VM /transcribe、寫 transcript_raw | 約 30 分鐘 |
| P2-C | 10:00 / 14:00 / 18:00 / 22:00 | 撈所有 transcribed Call、OpenAI 摘要、寫回 Call/Contact | 約 10 分鐘 |
| Error Notifier | 隨時 | 任一 workflow 失敗 → Email / LINE 通知 | — |
三段每輪間隔約 4 小時。通話結束後,最快在當天下一輪(約 4 小時內)就會看到 AI 摘要,最晚隔天早上補齊。
為什麼是定時批次(每天 4 輪)?
Section titled “為什麼是定時批次(每天 4 輪)?”n8n Cloud Starter plan 限制 2,500 executions / 月。
| Cron 設定 | 月用量 | 是否安全 |
|---|---|---|
| 每 5 分鐘|3 workflows | 25,920 / 月 | ❌ 超 10 倍 |
| 每小時|3 workflows | 2,160 / 月 | ⚠️ 86% 滿 |
| 每天 4 輪|3 workflows | 360 / 月 | ✅ 用 14.4% |
每天 4 輪在「即時性」與「成本」間取得平衡——比每天一次大幅縮短業務看到摘要的等待時間,又離 quota 上限還有充足空間,通話從 30 / 天擴到 100 / 天都不會撞牆。
P2-A 撈到通話 → pending ↓P2-B 撈到 pending → transcribing → 呼叫 /transcribe → transcribed ↓P2-C 撈到 transcribed → summarizing → OpenAI → summarized ↓業務在 HubSpot 看到完整摘要失敗處理與手動重跑
Section titled “失敗處理與手動重跑”業務在 HubSpot Call 上改 transcribe_status:
| 改成 | 效果 |
|---|---|
pending | 下一輪 P2-B 重新轉錄(適合 recording not ready 的狀況) |
transcribed | 下一輪 P2-C 重新摘要(適合 OpenAI 失敗的狀況) |
若有緊急 / 當天就要看到摘要的需求,可在 n8n 手動 Execute Workflow(消耗 1 個 execution quota,但即時跑)。
基礎設施清單
Section titled “基礎設施清單”| 元件 | 位置 | 用途 |
|---|---|---|
| Screen Pop 服務 | GCP VM (e2-small, asia-east1) | app.tiwise.com.tw 對外服務 |
| Whisper 轉錄服務 | 同上 VM port 8081 | /transcribe endpoint |
| HTTPS 憑證 | Let’s Encrypt | 2026-07-07 到期(自動續約) |
| n8n Workflows | n8n Cloud Starter | 自動化排程 |
| 錄音儲存 | GCS bucket frank-recordings-tiwise | 雙軌音檔備份 |
| CRM | HubSpot Starter | 業務介面 |
| GitHub Repo | roy6732856/frank-screen-pop | 程式碼版本控管 |
本文件託管於 Phase 1 系統相同主機(https://app.tiwise.com.tw/docs/),與系統共用基礎設施。Phase 1 結案後可隨時更新。