ChatGPT의 지역 서비스 견적 요청 전환 플러그인은 현재 베타 버전이며, 승인된 파트너와 함께 테스트 중입니다. 이용을 신청하려면 ChatGPT 판매자 신청 양식을 작성하세요.
목적
사용자가 견적을 요청하는 등 지역 서비스를 이용하려는 의도가 뚜렷할 때 ChatGPT는 파트너 플러그인을 직접 호출할 수 있습니다.
이 플로우를 활성화하려면 제공하는 서비스를 식별할 수 있는 지역 업체 데이터를 제공하고, 견적 요청 위젯을 여는 MCP 도구를 노출하세요.
이 사양에 맞는 플러그인을 개발하려면 ChatGPT 판매자 신청 양식에서 이용을 신청하세요.
사용자 경험
사용자가 요건을 충족하는 지역 업체를 검색하면 업체 카드나 사이드바에 견적 받기 버튼이 표시될 수 있습니다. 버튼을 선택하면 ChatGPT의 모달 창에서 제공업체의 견적 요청 위젯이 열립니다.
ChatGPT는 해당 업체에 요건을 충족하는 서비스 제공업체가 있고, 그 제공업체에 파트너 플러그인이 구성되어 있을 때만 버튼을 표시합니다.
필수 연동 사양
request_service라는 이름의 MCP 도구를 등록하고 ui://widget/request-service.html을 위젯 리소스로 지정하세요. ChatGPT는 위젯을 modal 표시 모드로 실행하고 제공업체의 업체 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: 피드 내에서 고유하며 변경되지 않는 업체 ID입니다.name: 업체명입니다.address: 구조화된 주소 또는 사람이 읽기 쉬운 형식의 주소입니다.location:latitude와longitude를 포함하는 객체입니다.phone_number: 업체 전화번호입니다. E.164 형식을 권장합니다.website_url: 업체 웹사이트의 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 절대 URL입니다.display_name: 제공업체가 선택적으로 지정할 수 있는 표시 이름입니다.
페이지 단위 목록 조회 엔드포인트
GET /v1/businesses와 같은 목록 조회 엔드포인트를 노출하고 다음 페이지네이션 방식 중 하나를 지원하세요.
page와page_sizeoffset과limit- 내부 값을 해석할 필요가 없는
next_page_token
이전 동기화 체크포인트를 식별할 수 있도록 changes_token을 선택적 입력으로 받으세요. 응답에는 피드의 변경 여부를 나타내는 checksum, 현재 페이지의 업체 목록인 businesses, 선택한 페이지네이션 방식에 필요한 메타데이터를 포함하세요.
예를 들어 다음 요청은 페이지 번호를 사용하는 피드에서 업체 한 곳을 조회합니다.
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 액션의 버튼 레이블을 변경하지 않습니다.
향후 확장
이 사양은 견적 요청을 다룹니다. 방문 예약과 같은 다른 서비스 액션은 견적 요청 플로우에 필요하지 않습니다.