これは自動生成された翻訳です。

会話ソリューション

APIまたはpre-builtのUIを通じて、旅行者と宿泊施設間の円滑なやり取りを実現します

Conversation API

Conversation APIを利用すれば、旅行者(または旅行代理店)と宿泊施設事業者との間で、シームレスなコミュニケーションを実現することができます。連携が完了すると、ホテル、バケーションレンタル、Vrboの物件に関する会話を取得できるほか、APIを通じてメッセージの作成や閲覧が可能になります。

この機能により、end-to-endのAPIを通じてpost-bookingのメッセージを利用できるようになります。front-endの活用方法を、自社のtraveler-facingやagent-facingツールに会話を組み込むことで調整することができ、旅行者との信頼関係を築き、キャンセルやサービス提供にかかるコストを削減し、サポート業務のワークフローを効率化することができます。

Conversation APIでは、通知を通じてトピックのタグ付け機能もサポートされています。トピックタグとは、メッセージの内容を1語またはtwo-wordで表したもので、サポート業務の自動化や、メッセージを適切なチャネルに確実に振り分けるのに役立ちます。

トピックタグ付けおよびAI-powered re-marketingの抑制については、「参考資料」の項で詳しくご覧ください。

Conversation APIは、Vrboの在庫情報をサポートする唯一の会話ソリューションです。

Conversation APIの仕組み

Conversation APIは、お客様のニーズに応じて、施設 と旅行者との間で直接メッセージのやり取りを行えるように設定したり、施設 とサポート担当者との間でメッセージのやり取りを行えるように設定したりすることができます。いずれの場合も、その予約の「予約の管理」からの取得レスポンスを通じてConversation APIのリンクにアクセスし、旅行者またはエージェントに会話のエントリーポイントを提示することになります。サプライヤーから新しいメッセージが届くと、通知機能を通じて直ちに通知されます。

注: The Conversation APIには、pre-builtのメッセージングUI機能は含まれていません。その機能を独自に開発するか、あるいはConversation APIを既存のメッセージングUIに連携させる必要があります。

pre-builtのUIが必要な場合は、施設 メッセージセンターをご覧ください。

Conversation APIの仕組み

「予約の管理」から予約情報を確認してください

「Manage Booking API」の「Retrieve Booking」エンドポイントから予約の詳細をリクエストすると、レスポンスの「conversations」オブジェクトに、「Conversation API」へのリンクが含まれます。

>>「予約管理API」の詳細については、 をご覧ください。

注: 会話用のadd-message リンクはtime-boundとなり、発行から1時間後に有効期限が切れます。会話のリンクを長期的に保存するのではなく、各レスポンスで新しいリンクを取得するために、常に新しい「Retrieve」呼び出しを行ってください。

応答内の会話リンクの例:

{
  "itinerary_id": "8999989898988",
  "rooms": [
    {
      "id": "926784314"
    }
  ],
  "links": [
    "conversation": {
      "method": "GET",
      "href": "/v3/conversations/1234567890?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m"
    }
  ]
}

旅行者/旅行代理店向けのSurface会話の入り口

対応方法 :

  • traveler-facingのインターフェースにリンクを埋め込んでください。そうすれば、旅行者が施設と直接メッセージのやり取りができるようになります。一般的なアクセス元としては、予約確認ページ、旅行詳細ページ、または確認メールなどが挙げられます。
    ベストプラクティスについては、「追加リソース」をご覧ください。
  • エージェントツールにリンクを埋め込んで、サポートチームが旅行者や宿泊施設と連絡を取り合えるようにしてください。

新着メッセージの通知を登録する

Rapid Notifications APIで以下の「conversation-related」イベントを購読すると、「supplier-initiated」のメッセージをプッシュ通知として受け取ることができます:

  • itinerary.message.received — 施設 が需要パートナー/旅行者に新しいメッセージを送信した際にトリガーされます
  • itinerary.message.rejected — 施設 というメッセージが、詐欺またはフィッシングであると判定された後に非表示にされた際にトリガーされます。メッセージはブロックされ、配信されませんでした。
  • itinerary.conversation.attachment.success — 旅行者または需要パートナーが(エージェントメッセージの一部として)送信した添付ファイルが正常にアップロードされ、処理された際にトリガーされます
  • itinerary.conversation.attachment.failure — 添付ファイルのアップロードに失敗した際にトリガーされます

>> オンボーディング通知に関する詳細については、「通知」ページ()をご参照ください。

プロパティへのメッセージ送信

Conversation APIは、旅行者やエージェントが送信したメッセージと、施設 からの返信の両方を含め、その予約に関するメッセージ履歴全体を1つのレスポンスとして返します。施設 のメッセージには、添付ファイルや、それらにアクセスするためのリンクが含まれている場合があります。添付できるファイル形式には、PNG、PDF、JPEG、DOCXなどがあります。

この応答には、メッセージの送信に使用されるリンクも含まれています。1つはプレーンテキスト用、もう1つは添付ファイルのアップロードを開始するためのものです。

プレーンテキストのメッセージを送信する

新しいメッセージを送信したり、施設 に返信したりするには、「add_message」というリンクを使用して、その会話にメッセージを追加してください。応答が成功すると、更新された会話リンクが返されます。このリンクは保存しておき、次回の読み取り時に使用して、トークンの状態を最新に保つようにしてください。

エージェントが旅行者に代わってメッセージを送信した場合、API上でも、施設への送信でも、そのメッセージは旅行者自身によって送信されたものとして表示されます。エージェントが、そのメッセージがエージェントによって送信されたことを明示したい場合は、次のような注記を追加することができます:「旅行者に代わって、[パートナー]のエージェントが提供しています。」

添付ファイルの送信

添付ファイルはAmazon S3に直接アップロードされます。このフローは、添付ファイルAPIへのリクエストから始まります。このリクエストには、ファイルのメタデータと、必要に応じて付随するメッセージ本文が含まれます。このレスポンスには、セキュリティ保護されたS3 URL、その有効期限、およびAWSが要求するフォームフィールドが返されます。対応しているファイル形式には、PNG、PDF、JPEGなどがあります。

注: この呼び出しで指定されたテキストは、アップロード時に一緒に送信され、ファイルが配信された際にメッセージとして投稿されます。したがって、別途add_message を呼び出す必要はありません。これを呼び出すと、スレッド内でメッセージが重複してしまいます。

セキュリティ保護されたS3 URLの有効期限が切れる前に、前回のAttachments APIのレスポンスで提供されたフォームフィールドを使用して、そのURLにファイルをPOSTしてください。

>> 詳細については、AWSのドキュメントをご参照ください。

S3へのアップロードが正常に完了すると、Rapidでマルウェアスキャンが実行されます:

  • ファイルに問題がなければ、そのファイルは保存され、添付ファイルと付随するテキストを含むメッセージが 施設 に送信され、itinerary.conversation.attachment.success への通知が送信されます。
  • 脅威が検出された場合、そのファイルは削除され、itinerary.conversation.attachment.failure から通知が送信されます。

Conversation APIから返される会話オブジェクトの例:

{
  "itinerary_id": "987654321098",
  "expedia_confirmation_id": "1234567890",
  "property_id": "12345",
  "messages": [
    {
      "text": "Can I have an early check-in?",
      "participant": {
        "role": "traveler",
        "given_name": "John",
        "family_name": "Smith"
      },
      "creation_date_time": "2025-04-15T00:45:14.000Z",
      "message_type": "free_text",
      "delivery_status": "accepted"
    },
    {
      "text": "Please note that check-in time is 5pm and that you will need to meet with our receptionist to receive information about your room assignment.",
      "participant": {
        "role": "supplier"
      },
      "creation_date_time": "2025-04-15T00:10:12.000Z",
      "message_type": "free_text",
      "delivery_status": "accepted"
    }
  ],
  "links": {
    "add_message": {
      "method": "POST",
      "href": "/v3/conversations/1234567890/messages?token=MY5S3j36cOcL",
      "expires": "2025-04-15T00:45:14.000Z"
    },
    "add_attachment": {
      "method": "POST",
      "href": "/v3/conversations/1234567890/messages/attachments?token=MY5S3j36cOcL",
      "expires": "2025-04-15T00:45:14.000Z"
    }
  }
}

リンクの有効期間とトークンの有効期限

add_messageおよびadd_attachment のリンクは一時的なものであり、expires フィールドに指定されたタイムスタンプの時点、またはcheck-outの日付から30日後のいずれか早い方の時点で有効期限が切れます。会話リンク自体は、最長90日間有効ですpost-stay.

呼び出しを行うたびに、expires フィールドの値を評価してください。すでに期限が切れている場合、または401/403エラーが表示された場合は、re-runにアクセスし、「予約の取得」または「会話の取得」を呼び出して、新しいリンクを生成してください。

Expedia Groupの担当者にご連絡いただき、Conversation APIの統合を開始してください。

AI-powered re-marketing抑制とメッセージのトピックタグ付け

Property-initiated「re-marketing"」と識別されたメッセージ(直接予約や「off-platform)」を推奨するメッセージ)は、Conversation APIおよび 施設 メッセージセンターによって自動的に非表示にされます。

property-initiatedメッセージをより容易かつスケーラブルに活用できるよう、当社の会話ソリューションでは、AI-drivenモデルを採用しています。このモデルは、メッセージの主要なトピックを特定し、それらのトピックをitinerary.message.received 通知イベント内のタグとして配信します。これらのタグを使用することで、ご自身のシステムにおける検索、ルーティング、自動化、および除外ロジックを実現することができます。

施設 のメッセージのトピックタグ候補

タグ説明
チェックインの手順施設 が、check-inまたは滞在中に旅行者が必要とする重要な情報や指示(アクセスコード、フロントの営業時間、保証金に関する情報、身分証明書の提示要件など)を共有する場合。

注:。check-inという指示タグは、re-marketingという抑制タグよりも常に優先されます。I.e. サプライヤーから、check-inの詳細とre-marketingの文言の両方が含まれたメッセージが送信された場合でも、旅行者にはそのメッセージが届きます。
初期のcheck-in年/後期check-out施設 さんが、ダイレクトメッセージを通じて、初期のcheck-inや、後期のcheck-outに関する追加情報を共有した際。また、早期check-inや遅延に伴う特定の費用が発生する場合にも使用されますcheck-out.
食事 / ドリンク施設のメッセージが、レストランやバーの営業状況や営業時間、メニュー、その他の食事の詳細に関するものである場合に使用します。
メンテナンス / 休業メンテナンス、工事、またはその他の理由で一時的に閉鎖されている施設の特定のエリアに関する最新情報を施設が共有する場合に使用します。プール、ビーチ、ジム、その他の施設の閉鎖が含まれる場合があります。
駐車場駐車場のオプション、予約、営業時間、1 泊ごとまたは 1 時間ごとの料金に関する追加指示を施設が共有する場合に使用します。
ペットに関するポリシー施設 が、独自のペットに関する規定や、客室・ユニットへのペットの同伴に伴う費用について公開している場合。
情報 / 到着時刻のリクエスト施設がお客様に滞在の詳細や到着時刻に関するより詳しい情報を要求し、施設が滞在に備えて万全の管理と計画を行えるようにする場合に使用します。
口コミのリクエスト滞在に関する口コミを残すリクエストを施設からお客様に送信する場合に使用します。最もよく送信されるものpost-stay.
送迎施設 が、空港pick-upやdrop-offの選択肢、シャトルバスの運行状況、利用手順などに関する情報を共有する場合、
その他メッセージに前述のタグが一切含まれていない場合、デフォルトで「その他」として分類されます(手荷物、客室清掃 に関する情報、エキストラベッド、衛生、清潔さ、エレベーター、電気、キッチン/調理器具、新型コロナウイルス対策、利用規約など)。

トピックタグを含む「itinerary.message.received」通知ペイロードの例:

{
  "event_id": "493ae7d4-fb3c-49fb-b180-0d7f4030aaeb",
  "event_type": "itinerary.message.received",
  "event_time": "2024-09-16T15:22:42.783857461Z",
  "itinerary_id": "9025294229844",
  "email": "test@travelnow.com",
  "message": "Please checkin before 12:00 PM!",
  "topic_tags": "Check-in",
  "affiliate_reference_id": "b086d299-2f1f-4134-a23c-f4a1c9286fac"
}

バケーションレンタル

バケーションレンタル物件とのダイレクトメッセージのやり取りを可能にすることは不可欠です。Rapid APIに掲載されているバケーションレンタル物件の84%には、フロントデスクがありません。このような施設では、お客様に次の項目について伝えるためにダイレクトメッセージに頼ることが多くなっています。

  • 施設に入るための専用アクセスコード
  • 施設独自の、または利用可能な設備やサービスに関するガイダンス
  • 駐車場の案内または駐車場所

注: 施設 メッセージセンターは、Vrboのリスティングには対応しておりません。現在Vrboの在庫を販売されている方、または販売を予定されている方には、Conversation APIの連携をお勧めいたします。

宿泊施設メッセージセンター

「two-way」のメッセージングツールは、pre-builtのメッセージングUIを通じて、宿泊施設と旅行者や旅行代理店との直接的なやり取りを促進し、post-bookingでの体験をよりスムーズなものにします。

Information

重要

当社の新しいAPI-based会話ソリューションである「Conversation API」は、施設Message Centerと比較して、カスタマイズや自動化の機会がさらに広がり、より充実した体験をご提供いたします。pre-builtのUI機能が必要でない限り、Conversation APIを統合することをお勧めいたします。

施設メッセージセンターの仕組み

施設 メッセージセンターは、予約リクエストに旅行者のメールアドレスを指定することで、施設 と旅行者との間で直接メッセージのやり取りができるように設定できます。また、予約リクエストにサポート担当者のメールアドレスを指定することで、施設 と貴社のサポート担当者との間でメッセージのやり取りができるように設定することも可能です。

旅行者から提供されたメールアドレス:
パートナーから提供されたメールアドレス

施設 メッセージセンターでの会話例

Property-initiatedからのメッセージ 施設は、旅行者の皆様に、空港との往復に「」の無料シャトルバスを運行していることをお知らせいたします。round-trip

施設とお客様との間でやり取りされているチャット形式の会話の例。施設はメッセージアプリを使用してメッセージを送受信します。お客様は Eメールを使用します。

Traveler-initiatedへのメッセージ 旅行者から、ご予約の際にベビーベッドの手配をご依頼いただいており、ご到着前に 施設 にてこのご要望を再確認したいとのことです。

お客様は予約時にベビーベッド付きの宿泊をリクエストしたため、このリクエストに対応可能かどうか、到着前にホテルに再確認したいと考えています。

Expedia Partner Solutionsにて、「施設 メッセージセンター」の「Traveler」および「Agent-Model」の開始要件をご確認ください:

>> 詳細については、AWSのドキュメントをご参照ください
>>「traveler-model」の起動要件について詳しくはこちら
>>「agent-model」の起動要件についてご覧ください

Expedia Groupの担当者にご連絡いただき、施設 メッセージセンターの統合を開始してください。

その他のリソース

旅行者に会話のエントリーポイントを案内するためのベストプラクティス

ここでは、旅行者が予約を完了した後、Conversation APIのリンクをどのように旅行者に提示すればよいかについて、いくつかの指針をご紹介します。

  1. 予約確認ページに「メッセージホテル」または「メッセージホスト」ボタンを追加してください。
    これにより、予約直後に 施設 へリクエストや問い合わせを行いたい旅行者が利用できるようになります。

    「ホテルにメッセージを送信」ボタ�ンが用意されている予約確認ページ

  2. 旅程ページに「ホテルへメッセージ」または「ホストへメッセージ」ボタンを追加してください。
    これにより、旅行者は予約ページから直接 施設 に連絡できるようになります。

    「ホテルにメッセージを送信」ボタンが用意されている予約詳細ページ

  3. 予約確認メールに「メッセージホテル」または「メッセージホスト」ボタンを追加してください。
    これにより、旅行者が今後の宿泊に関する最新情報やリマインダーを受け取った際に、施設 へ連絡するよう促すことができます。

    「ホテルにメッセージを送信」ボタンが用意されている確認メール

Conversation APIのエラー処理

さまざまな状況に応じて返されるエラーがいくつかありますが、それらはすべて400 としてコード化されています。以下に、よくある原因と、各エラーで返されるメッセージの一覧を記載します:

原因メッセージ
無効な入力です「無効なJSONペイロード」
トークンをデコードまたは解析できません「リンクが無効です」
必須のトークンフィールドが欠けています「リンクが無効です」
パスとトークンの確認IDが一致しません「リンクが無効です」
トークンの有効期限が切れました(link.expired)「アクセスされたリンクの有効期限が切れています。」リンクを更新するには、もう一度GETリクエストを送信してください」
リクエスト本文がnullです「リクエスト本文の入力が必要です」
メッセージ本文が空欄か、20,192文字を超えています「テキストは空欄にしてはならず、20192文字を超えてはなりません」
ファイルサイズが5 MBを超えています「ファイルサイズが5 MBの上限を超えています。」
このファイル形式には対応していません「ファイル形式は、[application/pdf、image/jpeg、image/png]のいずれかでなければなりません。」
添付ファイルの会話タイプがサポートされていません「添付ファイルが無効です」

API の詳細

このページでConversation APIの定義を確認した後、API Explorerやその他のテストツールを使用して、サンプルやスキーマの定義と実際の出力との違いを理解してください。


このページは役に立ちましたか ?
このコンテンツに改善が必要な点があれば、
サービス向上にご協力いただきありがとうございます。