For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegação principal
Theme
Visão geral Documentação para usuários do ChatGPT e do Codex Casos de uso

Especificação do fluxo de conversão para pedidos de orçamento de serviços locais

Contrato para integrar um plugin de solicitação de orçamento de serviços locais ao fluxo de conversão do ChatGPT.

Os plugins do ChatGPT para o fluxo de conversão de pedidos de orçamento de serviços locais estão em fase beta, com testes em andamento junto a parceiros aprovados. Para solicitar acesso, preencha o formulário do ChatGPT para comerciantes.

Objetivo

O ChatGPT pode acionar diretamente os plugins de parceiros quando o usuário demonstra uma intenção clara de contratar um serviço local, por exemplo, ao solicitar um orçamento.

Para habilitar esse fluxo, forneça dados de empresas locais que identifiquem seu serviço e disponibilize uma ferramenta MCP que abra seu widget de solicitação de orçamento.

Se quiser criar um plugin que siga esta especificação, solicite acesso pelo formulário do ChatGPT para comerciantes.

Experiência do usuário

Quando o usuário pesquisa uma empresa local elegível, o cartão da empresa ou a barra lateral pode exibir o botão Solicitar orçamento. Ao selecionar o botão, o usuário abre o widget de solicitação de orçamento do provedor em uma janela modal no ChatGPT.

O ChatGPT só exibe o botão quando a empresa tem um provedor de serviços elegível e esse provedor tem um plugin de parceiro configurado.

Requisitos do contrato

Registre uma ferramenta MCP chamada request_service e use ui://widget/request-service.html como recurso do widget. O ChatGPT abre o widget no modo de exibição modal e envia o ID que o provedor atribuiu à empresa quando o usuário seleciona Solicitar orçamento.

const launcherTool = {
  name: "request_service",
  _meta: {
    ui: {
      resourceUri: "ui://widget/request-service.html",
    },
  },
};

const launcherInput = {
  business_id: "biz_123",
};

Defina _meta["openai/widgetAccessible"] = true em cada ferramenta auxiliar que o widget chamar diretamente. Esse metadado se aplica às ferramentas auxiliares que o widget pode acessar. O simples fato de uma ferramenta abrir o widget não exige esse metadado.

O parâmetro de entrada business_id da ferramenta que abre o widget deve ter o valor de provider_business_id do registro do provedor de serviços correspondente. Esse valor pode ser diferente do ID do registro da empresa local que contém os dados do provedor.

Requisitos do feed de empresas

O feed de empresas é uma coleção paginada de registros de empresas locais que você fornece ao ChatGPT. O ChatGPT indexa esses registros para pesquisa e usa os dados dos provedores de serviços para determinar se a empresa oferece a opção Solicitar orçamento.

Campos obrigatórios da empresa

Cada registro de empresa deve incluir os seguintes campos.

  • id é um ID estável que identifica a empresa de forma única no feed.
  • name é o nome da empresa.
  • address é o endereço em formato estruturado ou em texto formatado para leitura.
  • location é um objeto que contém latitude e longitude.
  • phone_number é um número de telefone da empresa, de preferência no formato E.164.
  • website_url é o site da empresa.
  • platform_url é a URL canônica da página da empresa na sua plataforma.

Ação de solicitação de orçamento

Para cada empresa que aceita pedidos de orçamento, adicione um array service_providers com um registro que contenha os campos a seguir.

  • provider é o nome que você usa como provedor. Ele deve corresponder ao nome do provedor no plugin de parceiro configurado.
  • provider_business_id é o identificador que você atribui à empresa e deve estar preenchido. O ChatGPT passa esse valor como business_id para request_service.
  • action_type deve ter o valor request_a_quote para pedidos de orçamento.
  • provider_action_url é uma URL HTTP ou HTTPS absoluta e válida para sua ação de solicitação de orçamento.
  • display_name é um nome de exibição opcional fornecido pelo provedor.

Endpoint de listagem paginada

Disponibilize um endpoint de listagem, como GET /v1/businesses, com suporte a uma das seguintes formas de paginação.

  • page e page_size.
  • offset e limit.
  • Um token opaco next_page_token.

Aceite o parâmetro opcional changes_token para identificar o ponto de controle da sincronização anterior. Retorne checksum para indicar se o feed mudou, businesses com os registros da página atual e os metadados da forma de paginação adotada.

Por exemplo, a requisição a seguir busca uma empresa em um feed paginado por número de página.

GET /v1/businesses?page=1&page_size=1&changes_token=sync_001

Retorne o registro completo da empresa com a ação de solicitação de orçamento.

{
  "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"
        }
      ]
    }
  ]
}

Condições para abrir o widget de orçamento

O ChatGPT só cria o botão que abre o widget no chat quando todas as condições a seguir são atendidas. O registro da empresa que contém os dados do provedor deve ter um ID preenchido. O provedor de serviços deve ter um provider_business_id preenchido, uma provider_action_url válida e um plugin de parceiro configurado. O botão exibe o texto Solicitar orçamento, definido pela interface do ChatGPT. O valor de display_name fornecido pelo provedor não substitui esse texto nas ações do tipo request_a_quote.

Expansão futura

Este contrato abrange pedidos de orçamento. O fluxo de solicitação de orçamento não exige outras ações de serviço, como o agendamento de horários.