Los complementos de conversión de Obtener cotización para servicios locales en ChatGPT están actualmente en versión beta y se están probando con socios aprobados. Para solicitar acceso, completa el formulario para comerciantes de ChatGPT.
Propósito
ChatGPT puede invocar directamente complementos de socios para casos de uso de servicios locales con alta intención de contratación, como solicitar una cotización.
Para habilitar este flujo, proporciona datos de negocios locales que identifiquen tu servicio y expón una herramienta MCP que abra tu widget de solicitud de cotizaciones.
Si quieres crear un complemento que siga esta especificación, solicita acceso a través del formulario para comerciantes de ChatGPT.
Experiencia del usuario
Cuando un usuario busca un negocio local que cumple los requisitos, la tarjeta del negocio o la barra lateral pueden mostrar un botón Obtener cotización . Al seleccionar el botón, se abre el widget de solicitud de cotizaciones del proveedor en una ventana modal en ChatGPT.
ChatGPT muestra el botón solo cuando el negocio tiene un proveedor de servicios que cumple los requisitos y ese proveedor tiene configurado un complemento de socio.
Contrato requerido
Registra una herramienta MCP llamada request_service con
ui://widget/request-service.html como recurso de su widget. ChatGPT abre el
widget en el modo de visualización modal y envía el ID del negocio que usa el proveedor cuando un usuario
selecciona Obtener cotización:
const launcherTool = {
name: "request_service",
_meta: {
ui: {
resourceUri: "ui://widget/request-service.html",
},
},
};
const launcherInput = {
business_id: "biz_123",
};
Establece _meta["openai/widgetAccessible"] = true en cualquier herramienta auxiliar que el
widget llame directamente. Estos metadatos se aplican a las herramientas auxiliares accesibles desde el widget,
no al iniciador por el solo hecho de que abre el widget.
El parámetro de entrada business_id del iniciador debe ser el provider_business_id del
registro del proveedor de servicios correspondiente. Puede ser distinto del ID del registro
del negocio local que lo contiene.
Requisitos del feed de negocios
Un feed de negocios es una colección paginada de registros de negocios locales que proporcionas a ChatGPT. ChatGPT indexa estos registros para las búsquedas y usa sus datos de proveedores de servicios para determinar si un negocio admite Obtener cotización.
Campos obligatorios del negocio
Cada registro de negocio debe incluir:
id: un ID de negocio estable y único dentro de tu feed.name: el nombre del negocio.address: una dirección estructurada o una dirección con un formato legible para las personas.location: un objeto que contienelatitudeylongitude.phone_number: un número de teléfono del negocio, preferiblemente en formato E.164.website_url: el sitio web del negocio.platform_url: la URL canónica de la ficha del negocio en tu plataforma.
Acción de solicitud de cotización
Para cada negocio que acepte solicitudes de cotización, agrega un arreglo service_providers
que contenga un registro con estos campos:
provider: tu nombre de proveedor. Debe coincidir con el complemento de socio configurado.provider_business_id: tu identificador no vacío para el negocio. ChatGPT pasa este valor comobusiness_idarequest_service.action_type: establece este campo enrequest_a_quotepara una solicitud de cotización.provider_action_url: una URL absoluta HTTP o HTTPS válida para tu acción de solicitud de cotización.display_name: un nombre para mostrar opcional proporcionado por el proveedor.
Punto de acceso de listado paginado
Expón un punto de acceso de listado como GET /v1/businesses y admite un
tipo de paginación:
pageypage_size.offsetylimit.- Un
next_page_tokenopaco.
Acepta un changes_token opcional para identificar el punto de control de la sincronización
anterior. Devuelve checksum para indicar si el feed ha cambiado,
businesses para la página actual y los metadatos de tu tipo de paginación.
Por ejemplo, la siguiente solicitud obtiene un negocio de un feed con paginación basada en páginas:
GET /v1/businesses?page=1&page_size=1&changes_token=sync_001
Devuelve el registro completo del negocio y su acción de solicitud de cotización:
{
"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"
}
]
}
]
}
Requisitos para iniciar una solicitud de cotización
ChatGPT crea un iniciador dentro del chat solo cuando el negocio que lo contiene tiene un
ID no vacío, el proveedor de servicios tiene un provider_business_id no vacío y un
provider_action_url válido, y el proveedor tiene configurado un complemento de socio.
El botón de cotización usa la etiqueta Obtener cotización de la interfaz de ChatGPT; el
display_name del proveedor no reemplaza esa etiqueta para las acciones request_a_quote.
Ampliación futura
Este contrato abarca las solicitudes de cotización. Otras acciones de servicios, como la reserva de citas, no son necesarias para el flujo de solicitud de cotización.