ChatGPT でローカルサービスの見積もり依頼を受け付けるプラグインは現在ベータ版で、承認済みのパートナーとテストを進めています。利用を希望する場合は、ChatGPT 加盟店向けフォームからお申し込みください。
目的
ChatGPT は、見積もりを依頼するときなど、ユーザーがローカルサービスの利用を具体的に検討している場面で、パートナープラグインを直接呼び出せます。
このフローを有効にするには、自社のサービスを識別できる地域事業者データを提供し、見積もり依頼ウィジェットを開く MCP ツールを公開してください。
この仕様に準拠したプラグインを開発する場合は、ChatGPT 加盟店向けフォームから利用を申請してください。
ユーザー体験
ユーザーが対象の地域事業者を検索すると、事業者の情報カードまたはサイドバーに「見積もりを依頼」ボタンが表示されることがあります。ボタンを選択すると、プロバイダーの見積もり依頼ウィジェットが ChatGPT 内のモーダルで開きます。
ChatGPT がこのボタンを表示するのは、その事業者に対象のサービスプロバイダーがあり、そのプロバイダーのパートナープラグインが設定済みの場合に限ります。
必須の連携仕様
request_service という名前の MCP ツールを登録し、ウィジェットリソースに ui://widget/request-service.html を指定してください。ウィジェットの表示モードは modal です。ユーザーが「見積もりを依頼」を選択すると、ChatGPT はこのモードでウィジェットを開き、プロバイダー側の事業者 ID を送信します。
const launcherTool = {
name: "request_service",
_meta: {
ui: {
resourceUri: "ui://widget/request-service.html",
},
},
};
const launcherInput = {
business_id: "biz_123",
};
ウィジェットが直接呼び出すすべてのヘルパーツールに _meta["openai/widgetAccessible"] = true を設定してください。このメタデータは、ウィジェットからアクセスできるヘルパーツールに適用されます。ランチャーがウィジェットを開くだけなら、この設定は不要です。
ランチャーに渡す business_id には、該当するサービスプロバイダーのレコードにある provider_business_id を指定する必要があります。この値は、プロバイダーのレコードを格納する地域事業者レコードの ID と異なる場合があります。
事業者フィードの要件
事業者フィードは、地域事業者のレコードをページ単位で ChatGPT に提供するものです。ChatGPT は、検索用に各レコードをインデックスに登録し、レコード内のサービスプロバイダー情報を使って、その事業者が「見積もりを依頼」に対応しているかどうかを判定します。
事業者レコードの必須フィールド
各事業者レコードには、次のフィールドが必要です。
id:フィード内で一意で、継続して同じ事業者を識別できる IDname:事業者名address:構造化された住所、または人が読みやすい形式に整えた住所location:latitudeとlongitudeを含むオブジェクトphone_number:事業者の電話番号(E.164 形式を推奨)website_url:事業者のウェブサイトplatform_url:自社プラットフォームに掲載している事業者ページの正規 URL
見積もり依頼アクション
見積もり依頼を受け付ける各事業者のレコードに service_providers 配列を追加し、次のフィールドを持つレコードを格納してください。
provider:自社のプロバイダー名。パートナープラグインに設定したプロバイダー名と一致する必要があります。provider_business_id:プロバイダー側で事業者を識別するための空でない値。ChatGPT はこの値をbusiness_idとしてrequest_serviceに渡します。action_type:見積もり依頼の場合はrequest_a_quoteを指定してください。provider_action_url:見積もり依頼アクションに使用する有効な HTTP または HTTPS の絶対 URLdisplay_name:プロバイダーが指定する表示名(任意)
ページネーション対応の一覧取得エンドポイント
GET /v1/businesses などの一覧取得エンドポイントを公開し、次のいずれかのページネーション方式に対応してください。
pageとpage_sizeoffsetとlimit- 内部構造を公開しない
next_page_token
前回の同期チェックポイントを識別するため、任意のパラメーターとして changes_token を受け付けてください。レスポンスには、フィードに変更があったかどうかを示す checksum、現在のページの事業者レコードを格納した businesses、採用したページネーション方式に対応するメタデータを含めてください。
たとえば、次のリクエストは、ページ番号方式のフィードから事業者レコードを 1 件取得します。
GET /v1/businesses?page=1&page_size=1&changes_token=sync_001
見積もり依頼アクションを含む事業者レコード全体を返してください。
{
"checksum": true,
"page": 1,
"page_size": 1,
"total_pages": 1,
"businesses": [
{
"id": "local_biz_456",
"name": "Acme Plumbing",
"address": {
"line1": "123 Market St",
"locality": "San Francisco",
"region": "CA",
"postal_code": "94105",
"country": "US",
"formatted": "123 Market St, San Francisco, CA 94105, US"
},
"location": {
"latitude": 37.793,
"longitude": -122.396
},
"phone_number": "+14155551234",
"website_url": "https://acmeplumbing.example",
"platform_url": "https://provider.example/businesses/local_biz_456",
"service_providers": [
{
"provider": "example_provider",
"provider_business_id": "biz_123",
"action_type": "request_a_quote",
"provider_action_url": "https://provider.example/request-quote/biz_123",
"display_name": "Get Quote"
}
]
}
]
}
見積もり依頼の起動条件
ChatGPT がチャット内にランチャーを生成するには、サービスプロバイダーのレコードを格納する事業者レコードの ID が空でないことが必要です。また、サービスプロバイダーのレコードには空でない provider_business_id と有効な provider_action_url が必要で、そのプロバイダーのパートナープラグインも設定済みである必要があります。見積もり依頼ボタンには、ChatGPT の UI ラベル「見積もりを依頼」が表示されます。プロバイダーが display_name を指定しても、request_a_quote アクションではこのラベルは変わりません。
今後の拡張
この連携仕様は見積もり依頼を対象としています。見積もり依頼フローでは、来店予約など、ほかのサービスアクションへの対応は不要です。