予約受付へAIコールセンターを使うときは、空いている時間を読み上げるだけでは不十分です。仮押さえと確定を分けます。変更と取消も別状態にし、予約IDで一件ずつ追えるようにします。

最初に対象を一種類へ絞ってください。店舗と担当者が違えば、予約条件も変わります。設備やメニューの異なる予約を一度に自動化すると、空き枠の計算と本人確認を切り分けられません。

一件の予約に必要な条件を決める

予約枠は開始時刻だけで決まりません。提供するサービスと所要時間を組み合わせます。担当者や店舗、設備に加えて前後の準備時間も必要です。定員がある予約では残席も確認します。

AIへ渡す前に、予約できる条件を予約システム側で定義します。営業時間外や休業日をトークで除外するのではなく、予約可能枠から外してください。担当者を指定しない場合の割り当て規則も決めます。

電話で確認する項目は、予約に必要なものだけです。氏名と連絡先、希望日時を基本にします。サービス種別を確認し、店舗や担当者は必要な場合だけ聞きます。

空き時間と予約可能枠を区別する

カレンダーが空いていても、予約できるとは限りません。準備時間と定員に加え、受付期限や担当者の勤務も予約条件に含まれるからです。

Google CalendarのFreeBusy APIは、指定したカレンダーの予定ありの時間帯を返します。返されるのは開始と終了の区間です。空き時間から予約可能枠を作る規則は、別途予約システムで持つ必要があります。

AIが候補を読み上げる直前に、空き状況を再取得します。最初の候補提示から回答までに別の予約が入る場合があるためです。時刻にはタイムゾーンを付け、午前と午後を明示します。

登録結果を受け取ってから確定と案内する

希望時間を聞いた段階は仮選択です。予約システムへ登録し、予約IDを受け取った時点で確定に変えます。登録処理がタイムアウトした場合は、失敗と決めつけて再登録しないでください。

Google Calendarの予定作成に関する案内では、独自の予定IDを使って処理結果が不明な場合の重複作成を避ける方法が示されています。同じ予約要求の再送には同じIDを使い、結果が不明なら先に登録状態を照会します。受付IDをそのまま使えるとは限らないため、APIの文字種・長さの条件に合わせて対応表を持たせてください。

これは、別の人が同じ時間枠へ同時に申し込む競合を防ぐ仕組みとは別です。予約台帳側で定員の確認と枠の確保を一体で処理し、確保できた場合だけ予約確定を伝えます。空き照会の結果だけで確約しないでください。

予約確定と通知送信も別の結果です。SMSやメールの通知に失敗しても、予約自体は登録済みかもしれません。AIは登録結果を基に確定を案内し、通知失敗は再送または有人確認へ回します。

変更と取消は元の予約を特定して処理する

変更や取消では、最初に予約IDを確認します。予約IDが分からない場合は、登録済みの電話番号と予約日時などを組み合わせて候補を絞ります。本人確認前にサービス名や担当者名を読み上げないでください。

変更は、古い予約の時刻を書き換える方式と新しい予約を作って古い予約を取り消す方式があります。Calendlyの日程変更時のWebhookでは、取消と新規作成の両イベントが発生し、新旧の招待者URIが通知されます。連携先では二つのイベントを一回の変更として結びます。

取消期限や料金が関わる場合は、AIが免除や返金を判断しません。期限を過ぎた依頼は受け付けた状態で人へ渡します。予約システムの取消結果を確認してから、取消済みと案内してください。

本人確認と取得情報を予約内容に合わせる

新規予約と既存予約の操作では、確認する情報が異なります。新規予約は連絡先の正しさを確認し、変更と取消は登録済み情報との一致を確かめます。

個人情報保護委員会の通則ガイドラインでは、利用目的を具体的に特定することが求められています。予約確認の項目は、その目的と誤開示のリスクに合わせて設計します。一律に生年月日や住所を聞くのではなく、予約ごとに必要な確認方法を決めてください。

診療や法律相談、採用面談など機微な内容を推測できる予約では、通知本文や通話要約へ詳細を載せません。閲覧権限のある画面で確認し、電話では日時と受付結果だけを案内する方法も検討します。

六つの予約で状態遷移を確かめる

開始前には、通常の新規予約だけでなく処理結果が曖昧になる場面を試します。六つのケースには別々のIDを付け、同一ケースの再送だけ同じIDで追います。予約変更では変更前後のIDの対応も残してください。

  1. 空き枠を再確認し、新規予約を一件だけ登録する
  2. 候補提示後に別の予約が入り、次の候補へ切り替える
  3. 登録応答が途切れ、照会後に確定状態を案内する
  4. 元の予約を特定し、新しい日時へ変更する
  5. 取消期限を過ぎた依頼を判断せず人へ渡す
  6. 本人確認できない発信者へ予約詳細を伝えず終了する

予約IDと元の予約IDを記録します。現在状態と最終更新時刻、次の担当も必要です。通知が失敗したケースも、予約の登録結果と混ぜないでください。

一種類の予約を選びます。空き案内と仮選択、確定の三状態を書き出してください。変更と取消を加えた五状態をどの予約IDで確認するか決めることが、最初の作業です。