본문으로 건너뛰기

예약 요청

게시된 지도의 방문자는 지도 위 장소에 대해 업체에 요청을 보낼 수 있습니다. 시설 예약, 매물 투어, 매장 방문 예약, 정류장 픽업 등입니다. 요청은 booking.kaleidr.com의 Kaleidr Booking에 있는 조직의 받은편지함으로 전달되고, 원하면 이메일로도 받으며, 웹훅으로 자체 시스템에도 보낼 수 있습니다. 답변은 받은편지함에서 합니다.

요청은 요청일 뿐 예약 확정이 아닙니다. 아무것도 예약되거나 보류되거나 결제되지 않으며, 업체가 이메일이나 평소 방식으로 확정합니다.

요청 켜기​

  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시에 4명 자리 예약해 줘"라고 하면 Ask Kaleidr 패널이 방문자가 말한 내용으로 양식을 준비하고 검토 후 보내기를 표시합니다. 방문자가 검토하고 자신의 정보를 추가해 보냅니다. Kaleidr AI는 방문자의 이름, 이메일, 전화번호를 보지 않습니다.

양식​

방문자에게는 지도 위에 양식이 표시됩니다. 컬렉션 키트의 필드, 이름, 이메일과 선택 입력 전화번호, 메시지, 동의 문구입니다. 요청 보내기는 필수 필드를 채우고 동의 확인란을 선택할 때까지 비활성 상태입니다. 보내면 방문자에게 요청을 보냈습니다와 K-7XQ2MD 같은 참조 번호가 표시됩니다. 양식 자체에 대해서는 요청 양식을 참고하세요.

Kaleidr Booking의 설정, 요청 양식에는 키트별 탭이 있습니다. 필드마다 표시 여부, 필수 여부, 레이블을 정하고, 자체 질문을 최대 5개까지 추가할 수 있습니다. 옆의 미리 보기에서 방문자에게 보일 양식을 확인할 수 있습니다.

키트표준 필드
매장요청 용도, 날짜, 시간대, 품목
매물요청 용도, 대면 또는 영상 투어, 최대 세 개의 날짜, 시간대, 자금 조달
시설요청 용도, 날짜, 시간, 인원(150), 숙박 일수(160)
정류장요청 용도, 픽업 위치, 목적지, 날짜, 시간, 인원(1~20), 품목

픽업 위치와 목적지는 방문자가 입력하는 텍스트입니다. 실시간 레이아웃에서 요청 작업이 방문자에게 이를 고르게 하는 정류장 컬렉션은 주소 검색이나 지도 탭으로 찾은 두 지점을 추가합니다. 이 지점들은 방문자가 업체에 처리를 맡기려고 고른 것입니다.

봇 방지. Kaleidr에 로그인하지 않은 방문자는 요청을 보내기 전에 짧은 사람 확인 절차를 거칩니다.

받은편지함​

Kaleidr Booking의 요청은 신규, 수락됨, 완료, 거절됨 열이 있는 보드입니다. 카드를 끌어 상태를 바꾸거나 카드의 이동 메뉴를 사용하세요. 스팸 표시를 선택하면 스팸으로 표시한 요청이 보입니다. 지도, 장소, 키트, 날짜로 필터링하거나 참조 번호, 이름, 이메일, 장소로 검색할 수 있습니다.

요청을 열면 방문자의 정보와 답변, 방문자가 한 동의, 지도 위 장소, 요청 기록을 볼 수 있습니다. 여기서 할 수 있는 작업은 다음과 같습니다.

작업하는 일
수락, 거절, 완료로 표시, 스팸으로 표시, 다시 열기상태를 바꿉니다. 신규 요청은 수락, 거절, 스팸 표시를 할 수 있고, 수락된 요청은 완료로 표시하거나 거절할 수 있으며, 거절되었거나 스팸인 요청은 다시 열 수 있습니다. 완료는 최종 상태입니다.
답장답장을 이메일로 방문자에게 보냅니다. 방문자의 회신은 내 이메일 주소로 옵니다.
메모 추가팀만 보는 메모입니다. 전송되지 않습니다.
담당자 지정요청을 조직 구성원에게 맡깁니다.
요청자 정보 삭제조직 안에서 그 이메일 주소로 온 모든 요청을 삭제합니다. 보관과 삭제를 참고하세요.

누가 무엇을 할 수 있는지는 조직의 역할을 따릅니다. 소유자, 관리자, 구성원, 뷰어는 요청을 읽을 수 있고, 소유자, 관리자, 구성원은 요청을 변경하고 답장하고 담당자를 지정할 수 있습니다. 소유자와 관리자는 설정, 양식, 웹훅, 알림을 관리하고 요청을 삭제하며 CSV로 내보낼 수 있습니다.

이메일. 설정, 알림의 새 요청 이메일 알림은 요청이 도착하면 팀에서 알림을 켠 구성원에게 이메일을 보냅니다. 이메일에는 장소와 요청 종류, 요청 링크가 담기며 방문자의 정보는 담기지 않습니다. 접수 확인 보내기는 참조 번호가 있는 사본을 방문자에게 이메일로 보냅니다.

테스트 요청. Studio에서 직접 보낸 요청은 테스트로 표시되며 요금제 한도에 포함되지 않습니다.

양식의 동의 문구는 다음과 같습니다. "업체 이름이(가) 내 요청에 답하기 위해 이 정보를 사용하는 데 동의합니다. Kaleidr는 업체 이름을(를) 대신하여 이 정보를 처리합니다." 업체 이름 자리에는 설정, 일반의 업체 이름, 없으면 조직 이름이 들어갑니다. 개인정보 처리방침 링크에 자체 방침의 https:// 주소를 설정하면 문구에서 링크됩니다. 확인란은 처음에 선택되어 있지 않으며, 선택하지 않은 요청은 거부됩니다. 각 요청에는 방문자가 동의한 문구의 버전과 동의 시각이 저장됩니다.

보관과 삭제​

  • 요청 보관 기간이 지나도록 활동이 없는 요청은 삭제됩니다. 바꾸지 않으면 365일이며 30~730일로 설정할 수 있습니다. 스팸으로 표시한 요청은 30일 후 삭제됩니다.
  • 요청자 정보 삭제는 조직 안에서 한 이메일 주소로 온 모든 요청을, 그에 관해 보낸 이메일과 함께 삭제합니다. 본인이 데이터 삭제를 요청할 때 사용하세요.
  • 요청을 삭제하면 그 요청에 관해 보낸 이메일도 함께 삭제됩니다.
  • 본인이 Kaleidr 계정을 삭제하면, 그 사람의 요청은 모든 조직에서 삭제됩니다.
  • 조직이 삭제되면, 조직의 요청도 함께 삭제됩니다.

웹훅​

웹훅은 요청 이벤트가 발생할 때마다 내 주소로 보내므로, 예약 시스템, CRM, 스프레드시트 자동화가 이를 처리할 수 있습니다. Kaleidr Booking의 설정, 웹훅에서 추가합니다. 웹훅은 Pro와 Enterprise에서 사용할 수 있습니다.

  • 주소는 포트 443의 https여야 하며, 이름이 가리키는 모든 주소가 공개 주소여야 합니다. 다른 포트나 사설 주소는 저장할 때와 매번 전송할 때 거부됩니다.
  • 시크릿은 웹훅을 추가할 때 한 번만 표시됩니다. 시크릿 교체로 새 시크릿을 발급하며, 전환할 수 있도록 이전 시크릿도 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입니다.

서명 확인​

파싱하기 전에 원본 본문을 확인하고, 5분보다 오래된 타임스탬프는 거부하세요. 시크릿을 교체하는 동안에는 헤더에 이전 시크릿으로 서명한 두 번째 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는 무시하세요.
  • 본문은 전송 시점의 요청이므로, 재시도에는 최신 상태가 담깁니다. 그 사이 삭제된 요청은 전송되지 않습니다.
  • 모든 시도가 실패한 전송이 10번 연속되면 웹훅이 꺼집니다. 다시 켜면 횟수가 초기화됩니다.
  • 각 웹훅의 전송 내역에는 최근 30일 동안의 시도가 상태, 응답 코드, 소요 시간과 함께 본문 없이 표시됩니다. 다시 보내기로 실패한 전송을 다시 보낼 수 있습니다.

한도​

한도FreeProEnterprise
월간 요청501,000계약에서 정함
웹훅없음5계약에서 정함

한 달은 조직의 청구 기간입니다. 테스트 요청은 포함되지 않습니다. 한도에 도달하면 다음 기간까지 새 요청이 거부되며, 양식에는 장소의 전화번호나 링크가 있으면 대신 표시됩니다.

관련 문서​