跳至主要内容

預訂請求

你已發佈地圖的訪客可以就地圖上的某個地點向你的商家送出請求:在場所訂位、參觀物件、到門市預約、在站點接送。請求會送到你組織在 booking.kaleidr.com 上 Kaleidr Booking 的收件匣,若你選擇也會以電子郵件送達,還可以透過 webhook 送到你自己的系統。你在收件匣中回覆。

請求只是請求,不是已確認的預訂。不會預留、保留或支付任何東西:由你的商家以電子郵件或慣常方式確認。

開啟請求​

  1. 在 Kaleidr Booking 中開啟設定、一般,啟用接收請求。關閉期間,任何訪客都無法向你的組織送出請求,請求按鈕也不會出現。
  2. 在 Kaleidr Studio 中為一個集合加入請求動作:開啟集合,在卡片與篩選、地點動作中加入請求。它的標籤就是訪客看到的按鈕;每個套件都有自己的預設標籤:
集合類型預設標籤訪客請求
門市Request an Appointment預約、自取或回答一個問題
物件Schedule a Tour現場或視訊看屋,或更多資訊
場所Reserve訂位或回答一個問題
站點Request Pickup接送、預購或通知
  1. 發佈一張顯示該集合的地圖。之後,它的地點卡片、地點版面以及 Ask Kaleidr 回答中的地點都會帶有該按鈕。
  • 每個集合一個請求動作。 加入後,集合中的每個地點都會開啟請求。新的場所集合以 Reserve 開始,新的站點集合以 Request Pickup 開始。
  • 車輛和自訂集合不接受請求。
  • 聊天中的地點。 在 Studio 中,地圖的請求設定裡的接受任何地點的請求還能讓訪客就 Kaleidr AI 在回答中提到的地點送出請求,例如你飯店附近的餐廳。它預設為關閉。這類請求以名稱和地址識別地點。只有在 Kaleidr 自有的地址資料中找到該地址時,它才帶有地圖位置。
  • Kaleidr AI 可以填寫表單,但絕不送出。 當訪客說「訂一張 7 點的四人桌」時,Ask Kaleidr 面板會依訪客所說的內容準備表單,並顯示檢查並送出。訪客檢查後補上自己的資料再送出。Kaleidr AI 從不會看到訪客的姓名、電子郵件或電話。

表單​

訪客會在地圖上方看到表單:集合套件的欄位、姓名、電子郵件和選填的電話、留言,以及同意聲明。在必填欄位填寫完畢並勾選同意方塊之前,送出請求都無法使用。送出後,訪客會看到請求已送出和類似 K-7XQ2MD 的參考編號。關於表單本身,請參閱請求表單。

在 Kaleidr Booking 中,設定、請求表單為每個套件提供一個分頁。你可以為每個欄位選擇是否顯示、是否必填及其標籤,還可以加入最多五個自己的問題。旁邊的預覽會依訪客將看到的樣子顯示表單。

套件標準欄位
門市請求事由、日期、時段、品項
物件請求事由、現場或視訊看屋、最多三個日期、時段、資金方式
場所請求事由、日期、時間、人數(1 到 50)、晚數(1 到 60)
站點請求事由、上車點、目的地、日期、時間、人數(1 到 20)、品項

上車點和目的地是訪客輸入的文字。在即時版面上,若站點集合的請求動作允許訪客選擇它們,就會加入透過地址搜尋或點按地圖找到的兩個點。這是訪客選擇交給你處理的位置。

防機器人。 未登入 Kaleidr 的訪客在送出請求前需要通過一次簡短的真人驗證。

收件匣​

Kaleidr Booking 中的請求是一個看板,包含新請求、已接受、已完成和已婉拒幾欄。拖曳卡片可變更其狀態,也可以使用其移至選單。顯示垃圾請求會顯示標示為垃圾的請求。可依地圖、地點、套件和日期篩選,或依參考編號、姓名、電子郵件或地點搜尋。

開啟一個請求,可以查看訪客的資料和回答、訪客給予的同意、地圖上的地點以及請求的歷程。在這裡可以:

動作作用
接受、婉拒、標示為已完成、標示為垃圾請求、重新開啟變更狀態。新請求可以接受、婉拒或標示為垃圾;已接受的請求可以標示為已完成或婉拒;已婉拒或垃圾請求可以重新開啟。已完成為最終狀態。
回覆以電子郵件將你的回覆寄給訪客。訪客的答覆會寄到你自己的電子郵件地址。
新增備註只有你的團隊看得到的備註,絕不會寄出。
指派給將請求交給你組織的某位成員。
清除請求人資料刪除你組織中來自該電子郵件地址的所有請求。參閱保留與清除。

誰能做什麼取決於你組織中的角色:擁有者、管理員、成員和檢視者可以閱讀請求;擁有者、管理員和成員可以變更、回覆和指派請求;擁有者和管理員管理設定、表單、webhook 和通知,刪除與清除請求,並將其匯出為 CSV。

電子郵件。 在設定、通知中,以電子郵件通知新請求會在請求到達時寄信給在團隊中開啟通知的成員。信件寫明地點和請求類型並連結到該請求,但不包含訪客的任何資料。寄送回條會把附參考編號的副本寄給訪客。

測試請求。 你自己從 Studio 送出的請求會標示為測試,不計入你方案的限制。

表單中的同意聲明為:「我同意 你的商家 使用這些資料來回覆我的請求。Kaleidr 代表 你的商家 處理這些資料。」其中 你的商家 會替換為你的商家名稱:即設定、一般中的商家名稱,否則為你組織的名稱。將隱私權政策連結設為你自己政策的 https:// 地址後,聲明會連結到它。同意方塊一開始未勾選,未勾選的請求會遭拒。每個請求都會保存訪客所同意聲明的版本及同意時間。

保留與清除​

  • 請求保留期間:請求在這段時間內沒有任何活動就會被刪除;預設 365 天,可設為 30 到 730 天。標示為垃圾的請求會在 30 天後刪除。
  • 清除請求人資料會刪除你組織中某個電子郵件地址的所有請求,以及與之相關的已寄出信件。當有人要求你刪除其資料時使用。
  • 刪除請求會同時刪除與其相關的已寄出信件。
  • 當某人刪除其 Kaleidr 帳戶時, 其請求會在所有組織中被刪除。
  • 當你的組織被刪除時, 其請求也會一併刪除。

Webhook​

webhook 會在每個請求事件發生時將其送到你的地址,讓你的訂位系統、CRM 或試算表自動化據此處理。在 Kaleidr Booking 的設定、Webhook 中加入。Webhook 適用於 Pro 和 Enterprise。

  • 地址必須是連接埠 443 上的 https, 而且其名稱解析到的每個地址都必須是公開地址。任何其他連接埠或私人地址在儲存時都會遭拒,並在每次傳送時再次檢查。
  • 密鑰只顯示一次, 即在你加入 webhook 時。輪替密鑰會產生新密鑰;舊密鑰會繼續簽署 24 小時,方便你切換。
  • 傳送測試會傳送一個 webhook.test 事件。
事件傳送時機
request.created訪客送出請求。
request.status_changed請求的狀態變更。data.from_status 包含先前的狀態。
request.replied有人回覆了訪客。data.reply 包含 { body, created_at }。
webhook.test你選擇了傳送測試。

每次傳送都是一個帶 JSON 本文和以下標頭的 POST:

標頭值
Kaleidr-Signaturet=<unix seconds>,v1=<hex HMAC-SHA256(secret, "<t>.<raw body>")>
Kaleidr-Event-Id事件的 ID,每次重試都相同。用它來忽略重複。
Kaleidr-Event-Type事件,與上表相同。
Kaleidr-Delivery-Attempt1 到 7。
{
"id": "8a1c2b9e-0000-4000-8000-000000000001",
"type": "request.created",
"api_version": "2026-10-22",
"created_at": "2026-10-22T15:04:05Z",
"org_id": "…",
"data": {
"request": {
"id": "…",
"ref": "K-7XQ2MD",
"kit": "venues",
"status": "new",
"place": { "name": "Sample Venue", "line": "…", "lat": 40.7411, "lng": -73.9897 },
"requester": { "name": "…", "email": "…", "phone": null, "locale": "en", "signed_in": false },
"fields": { "kind": "reservation", "date": "2026-10-30", "time": "19:00", "party_size": 4 },
"message": "…"
}
}
}

對於聊天中某個地點的請求,若在 Kaleidr 自有的地址資料中找不到其地址,則 place.lat 和 place.lng 為 null。

驗證簽章​

在剖析之前驗證原始本文,並拒絕超過五分鐘的時間戳記。輪替期間,標頭會帶有第二個以舊密鑰簽署的 v1=;兩者皆可接受。

import hashlib, hmac, time

def verify(header: str, secret: str, body: bytes, tolerance: int = 300) -> bool:
parts = [p.split("=", 1) for p in header.split(",")]
t = next((v for k, v in parts if k == "t"), "")
if not t.isdigit() or abs(time.time() - int(t)) > tolerance:
return False
expected = hmac.new(secret.encode(), f"{t}.".encode() + body, hashlib.sha256).hexdigest()
return any(k == "v1" and hmac.compare_digest(v, expected) for k, v in parts)

用以下向量測試你的程式碼:

輸入值
密鑰whsec_MfKQ9r8GKYqrTwjUPD8ILPZIo2LaLaSw
t1761091200
本文{"id":"8a1c2b9e-0000-4000-8000-000000000001","type":"webhook.test"}
v13e55a2f93ac990282b95fd9140f8290ffaddc5d41969831e4234b164d613bd72

傳送與重試​

  • 在 10 秒內以任何 2xx 狀態回應。 不會跟隨重新導向。
  • 至少一次。 傳送失敗後會在 1 分鐘、5 分鐘、30 分鐘、2 小時、6 小時和 24 小時後重試:約 32 小時內共七次嘗試。同一事件可能送達兩次;請忽略你已看過的 Kaleidr-Event-Id。
  • 本文是傳送當下的請求, 因此重試會帶上其最新狀態。在此期間被清除的請求不會傳送。
  • 連續十次傳送的所有嘗試都失敗時,webhook 會被關閉。 重新開啟會重設計數。
  • 每個 webhook 下的傳送紀錄列出最近 30 天的嘗試及其狀態、回應代碼和耗時,不含本文。重試會重新傳送失敗的傳送。

限制​

限制FreeProEnterprise
每月請求數501,000依你的協議設定
Webhook無5依你的協議設定

一個月指你組織的計費週期。測試請求不計入。達到限制後,新請求在下一個週期之前都會遭拒;若地點有電話或連結,表單會改為顯示它們。

相關內容​