postSessionWebhook,Pathors 會在每個你訂閱的 lifecycle 事件觸發時 POST JSON 到你指定的 URL。可複選要訂閱哪些事件,每個事件帶各自的 payload,由 body 最頂層的 event 欄位區分。
事件種類
| 事件 | 觸發時機 | 備註 |
|---|---|---|
session.ended | 對話結束時。 | 為了向下相容,這是 default。對 call session,通話的最終狀態跟時長此時可能還沒就緒。 |
call.ended | 通話結束時。 | Call session 限定。Text session 不會收到這個事件。 |
session.finalized | 這個 session 的所有事情都做完時。 | 把所有其他事件的資料合併成一份。 |
recording.ready | 通話錄音處理完成時(成功或失敗)。 | Call session 限定。與 session.finalized 獨立 —— 可能在它之前或之後到。成功時帶短期有效的 recordingUrl。 |
設定
Webhook 設定在 agent 上。在 agent 設定 UI 操作,或透過 update-agent 程式化設定:接收 POST + JSON 的 HTTPS endpoint。
選填。送到你的 endpoint 的 custom HTTP headers,連同
Content-Type: application/json。每筆格式為 { "key": string, "value": string }。用途由你決定 —— 例如帶 Authorization token 驗證來源,或在共用 receiver 上加路由識別碼等。哪些 lifecycle 事件會觸發 webhook。省略時 default
["session.ended"],保留 2026 年前的單一事件行為。訂閱多個事件
訂多個事件代表每個 session 每個訂閱事件會收到一筆 POST。用最頂層event 欄位分流 —— 範例見 payloads 頁面的實作範例。
Delivery 語意
session.finalized每個 session 最多觸發一次。 Pathors 在底層 DB row 上做 CAS guard,即使並發寫入也只去重發一次。其他事件(session.ended、call.ended、recording.ready)是按各處理步驟發出的,可能會被重送(例如內部 retry);需要 exactly-once 時請以(sessionId, event)去重。- 不會自動 retry。 Endpoint 回非 2xx 時會記到
webhook_logs,但 Pathors 不重送。需要 at-least-once 自己接到 durable queue 後再消費。 - 儘快回 response。 Pathors 會同步等待你的 response,長時間處理請放在你那邊的背景 job。
- 向下相容。 2026 之前建立的
postSessionWebhook沒有events欄位,行為等同events: ["session.ended"]。現有 receiver 不需任何改動。
下一步
Webhook payloads
完整 payload schema 跟 receiver 範例。
Update agent
透過 API 設定
postSessionWebhook。