Les plugins de conversion « Obtenir un devis » pour les services locaux dans ChatGPT sont actuellement en version bêta et sont testés avec des partenaires approuvés. Pour demander un accès, remplissez le formulaire ChatGPT pour les commerçants.
Objectif
ChatGPT peut appeler directement des plugins partenaires pour des cas d’utilisation de services locaux qui traduisent une forte intention d’achat, comme une demande de devis.
Pour activer ce parcours, fournissez des données sur les établissements locaux qui permettent d’identifier votre service, et exposez un outil MCP qui ouvre votre widget de demande de devis.
Si vous souhaitez créer un plugin conforme à cette spécification, demandez un accès via le formulaire ChatGPT pour les commerçants.
Expérience utilisateur
Lorsqu’un utilisateur recherche un établissement local éligible, la fiche de l’établissement ou le panneau latéral peut afficher un bouton Obtenir un devis . Un clic sur ce bouton ouvre le widget de demande de devis du fournisseur dans une fenêtre modale de ChatGPT.
ChatGPT affiche ce bouton uniquement si l’établissement dispose d’un fournisseur de services éligible et que ce fournisseur possède un plugin partenaire configuré.
Contrat à respecter
Enregistrez un outil MCP nommé request_service avec
ui://widget/request-service.html comme ressource de widget. ChatGPT lance le
widget en mode d’affichage modal et transmet l’identifiant de l’établissement attribué par le fournisseur lorsqu’un utilisateur
sélectionne Obtenir un devis :
const launcherTool = {
name: "request_service",
_meta: {
ui: {
resourceUri: "ui://widget/request-service.html",
},
},
};
const launcherInput = {
business_id: "biz_123",
};
Définissez _meta["openai/widgetAccessible"] = true sur chaque outil auxiliaire que le
widget appelle directement. Cette métadonnée s’applique aux outils auxiliaires accessibles au widget,
et non au lanceur du seul fait qu’il ouvre le widget.
Le paramètre d’entrée business_id du lanceur doit correspondre à la valeur provider_business_id de
l’enregistrement du fournisseur de services concerné. Il peut différer de l’identifiant de l’enregistrement
de l’établissement local qui le contient.
Exigences relatives au flux d’établissements
Un flux d’établissements est une collection paginée d’enregistrements d’établissements locaux que vous fournissez à ChatGPT. ChatGPT indexe ces enregistrements pour la recherche et utilise leurs données de fournisseur de services pour déterminer si un établissement prend en charge Obtenir un devis.
Champs obligatoires pour les établissements
Chaque enregistrement d’établissement doit inclure :
id: Un identifiant d’établissement stable et unique au sein de votre flux.name: Le nom de l’établissement.address: Une adresse structurée ou une adresse formatée pour être lisible par une personne.location: Un objet contenantlatitudeetlongitude.phone_number: Un numéro de téléphone de l’établissement, de préférence au format E.164.website_url: Le site web de l’établissement.platform_url: L’URL canonique de la fiche de l’établissement sur votre plateforme.
Action de demande de devis
Pour chaque établissement qui accepte les demandes de devis, ajoutez un tableau service_providers
contenant un enregistrement avec les champs suivants :
provider: Votre nom de fournisseur. Il doit correspondre au plugin partenaire configuré.provider_business_id: Votre identifiant non vide pour l’établissement. ChatGPT transmet cette valeur comme paramètrebusiness_idàrequest_service.action_type: Définissez ce champ surrequest_a_quotepour une demande de devis.provider_action_url: Une URL HTTP ou HTTPS absolue et valide pour votre action de demande de devis.display_name: Un nom d’affichage facultatif fourni par le fournisseur.
Point de terminaison de liste paginée
Exposez un point de terminaison de liste tel que GET /v1/businesses et prenez en charge l’une
des méthodes de pagination suivantes :
pageetpage_size.offsetetlimit.- Un
next_page_tokenopaque.
Acceptez un paramètre facultatif changes_token pour identifier le point de contrôle
de la synchronisation précédente. Renvoyez checksum pour indiquer si le flux a changé,
businesses pour la page actuelle, ainsi que les métadonnées correspondant à votre méthode de pagination.
Par exemple, la requête suivante récupère un établissement dans un flux paginé par numéro de page :
GET /v1/businesses?page=1&page_size=1&changes_token=sync_001
Renvoyez l’enregistrement complet de l’établissement et son action de demande de devis :
{
"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"
}
]
}
]
}
Conditions d’activation du lanceur de demande de devis
ChatGPT crée un lanceur dans la discussion uniquement si l’établissement qui contient l’enregistrement possède un
identifiant non vide, si le fournisseur de services possède un provider_business_id non vide et un
provider_action_url valide, et si ce fournisseur dispose d’un plugin partenaire configuré.
Le bouton de demande de devis utilise le libellé Obtenir un devis de l’interface ChatGPT ;
le champ display_name du fournisseur ne remplace pas ce libellé pour les actions request_a_quote.
Évolutions futures
Ce contrat couvre les demandes de devis. Les autres actions de service, comme la prise de rendez-vous, ne sont pas requises pour le parcours de demande de devis.