For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegación principal

Especificación de conversión de Obtener cotización para servicios locales

Contrato para integrar un complemento de solicitud de cotizaciones de servicios locales en el flujo de conversión de ChatGPT.

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 contiene latitude y longitude.
  • 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 como business_id a request_service.
  • action_type: establece este campo en request_a_quote para 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:

  • page y page_size.
  • offset y limit.
  • Un next_page_token opaco.

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.