Os plug-ins de conversão de Solicitar orçamento para serviços locais no ChatGPT estão em versão beta e em fase de testes com parceiros aprovados. Para solicitar acesso, preencha o formulário para comerciantes do ChatGPT.
Objetivo
O ChatGPT pode invocar diretamente plug-ins de parceiros em casos de uso de serviços locais com alta intenção de contratação, como solicitar um orçamento.
Para habilitar esse fluxo, forneça dados de empresas locais que identifiquem seu serviço e exponha uma ferramenta MCP que abra seu widget de solicitação de orçamento.
Se quiser criar um plug-in que siga esta especificação, solicite acesso pelo formulário para comerciantes do ChatGPT.
Experiência do usuário
Quando um usuário pesquisa uma empresa local elegível, o cartão da empresa ou a barra lateral pode exibir um 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 exibe o botão somente quando a empresa tem um provedor de serviços elegível e esse provedor tem um plug-in de parceiro configurado.
Contrato obrigatório
Registre uma ferramenta MCP chamada request_service com
ui://widget/request-service.html como recurso do widget. O ChatGPT abre o
widget no modo de exibição modal e envia o ID da empresa no provedor quando um 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 qualquer ferramenta auxiliar que o
widget chame diretamente. Esses metadados se aplicam às ferramentas auxiliares acessíveis pelo widget,
não ao inicializador apenas por ele abrir o widget.
O parâmetro de entrada business_id do inicializador deve ser o provider_business_id do
registro do provedor de serviços correspondente. Ele pode ser diferente do ID do registro
da empresa local que contém esse provedor.
Requisitos do feed de empresas
Um 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 uma empresa oferece a opção Solicitar orçamento.
Campos obrigatórios da empresa
Cada registro de empresa deve incluir:
id: Um ID estável da empresa, exclusivo no seu feed.name: O nome da empresa.address: Um endereço estruturado ou um endereço formatado para leitura humana.location: Um objeto que contémlatitudeelongitude.phone_number: Um número de telefone da empresa, preferencialmente 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 solicitações de orçamento, adicione um array service_providers
que contenha um registro com estes campos:
provider: Seu nome de provedor. Ele deve corresponder ao plug-in de parceiro configurado.provider_business_id: Seu identificador não vazio para a empresa. O ChatGPT passa esse valor comobusiness_idpararequest_service.action_type: Defina comorequest_a_quotepara uma solicitação de orçamento.provider_action_url: Uma URL absoluta HTTP ou HTTPS 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
Exponha um endpoint de listagem, como GET /v1/businesses, e ofereça suporte a um
estilo de paginação:
pageepage_size.offsetelimit.- Um
next_page_tokenopaco.
Aceite um changes_token opcional para identificar o ponto de controle da sincronização
anterior. Retorne checksum para indicar se o feed mudou,
businesses para a página atual e os metadados do seu estilo de paginação.
Por exemplo, a requisição a seguir busca uma empresa em um feed com paginação baseada em páginas:
GET /v1/businesses?page=1&page_size=1&changes_token=sync_001
Retorne o registro completo da empresa e sua 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"
}
]
}
]
}
Elegibilidade para iniciar a solicitação de orçamento
O ChatGPT cria um inicializador no chat somente quando a empresa que contém o provedor tem um
ID não vazio, o provedor de serviços tem um provider_business_id não vazio e um
provider_action_url válido, e o provedor tem um plug-in de parceiro configurado.
O botão de orçamento usa o rótulo Solicitar orçamento da interface do ChatGPT; o
display_name do provedor não substitui esse rótulo nas ações request_a_quote.
Expansão futura
Este contrato abrange solicitações de orçamento. Outras ações de serviço, como agendamentos, não são obrigatórias para o fluxo de solicitação de orçamento.