Les plugins qui permettent de demander un devis pour des services locaux dans ChatGPT sont actuellement en version bêta. ChatGPT les teste avec des partenaires agréés. Pour demander l’accès, remplissez le formulaire ChatGPT destiné aux commerçants.
Objectif
ChatGPT peut appeler directement les plugins de ses partenaires lorsqu’un utilisateur recherche un service local avec une intention précise, par exemple pour demander un devis.
Pour activer ce parcours, fournissez des données sur les entreprises locales qui permettent d’identifier votre service et exposez un outil MCP qui ouvre votre widget de demande de devis.
Pour créer un plugin conforme à cette spécification, demandez l’accès via le formulaire ChatGPT destiné aux commerçants.
Expérience utilisateur
Lorsqu’un utilisateur recherche une entreprise locale éligible, un bouton Demander un devis peut apparaître sur la fiche de l’entreprise ou dans la barre latérale. Lorsque l’utilisateur sélectionne ce bouton, le widget de demande de devis du prestataire s’ouvre dans une fenêtre modale de ChatGPT.
ChatGPT affiche ce bouton uniquement si l’entreprise est associée à un prestataire éligible et que celui-ci dispose d’un plugin partenaire configuré.
Contrat à respecter
Enregistrez un outil MCP nommé request_service et indiquez ui://widget/request-service.html comme ressource du widget. ChatGPT ouvre le widget en mode d’affichage modal et transmet à l’outil de lancement l’identifiant attribué à l’entreprise par le prestataire lorsque l’utilisateur sélectionne Demander 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 depuis le widget. Le simple fait que l’outil de lancement ouvre le widget ne justifie pas de lui appliquer cette métadonnée.
Le paramètre d’entrée business_id de l’outil de lancement doit avoir pour valeur le provider_business_id de la fiche du prestataire concerné. Cette valeur peut différer de l’identifiant de la fiche de l’entreprise locale qui contient les données du prestataire.
Exigences relatives au flux d’entreprises
Le flux d’entreprises est un ensemble paginé de fiches d’entreprises locales que vous fournissez à ChatGPT. ChatGPT indexe ces fiches pour la recherche et utilise les données sur les prestataires qu’elles contiennent pour déterminer si une entreprise propose l’action Demander un devis.
Champs obligatoires de la fiche d’entreprise
Chaque fiche d’entreprise doit contenir les champs suivants :
id: identifiant stable de l’entreprise, unique dans votre flux.name: nom de l’entreprise.address: adresse structurée ou mise en forme pour être lisible.location: objet contenantlatitudeetlongitude.phone_number: numéro de téléphone de l’entreprise, de préférence au format E.164.website_url: site web de l’entreprise.platform_url: URL canonique de la fiche de l’entreprise sur votre plateforme.
Action de demande de devis
Pour chaque entreprise qui accepte les demandes de devis, ajoutez un tableau service_providers contenant un enregistrement avec les champs suivants :
provider: votre nom de prestataire. Il doit correspondre au nom de prestataire configuré pour le plugin partenaire.provider_business_id: identifiant que vous attribuez à l’entreprise. Il doit être non vide. ChatGPT transmet cette valeur dans le paramètrebusiness_idderequest_service.action_type: utilisez la valeurrequest_a_quotepour une demande de devis.provider_action_url: URL HTTP ou HTTPS absolue et valide pour votre action de demande de devis.display_name: nom d’affichage facultatif fourni par le prestataire.
Point de terminaison pour la liste paginée
Exposez un point de terminaison qui renvoie la liste des entreprises, par exemple GET /v1/businesses, et prenez en charge l’un des modes de pagination suivants :
pageetpage_size.offsetetlimit.- Un token opaque
next_page_token.
Acceptez le paramètre facultatif changes_token pour identifier le point de synchronisation précédent. Renvoyez checksum pour indiquer si le flux a changé, businesses pour fournir les entreprises de la page courante, ainsi que les métadonnées propres au mode de pagination choisi.
Par exemple, la requête suivante récupère une seule entreprise dans un flux paginé par numéro de page :
GET /v1/businesses?page=1&page_size=1&changes_token=sync_001
Renvoyez la fiche complète de l’entreprise 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’affichage du bouton de demande de devis
ChatGPT crée un bouton de demande de devis dans la discussion uniquement si la fiche d’entreprise qui contient les données du prestataire possède un identifiant non vide, si le prestataire possède un provider_business_id non vide et une provider_action_url valide, et s’il dispose d’un plugin partenaire configuré. Le bouton porte le libellé Demander un devis défini par ChatGPT. Le champ display_name du prestataire ne remplace pas ce libellé pour les actions de type request_a_quote.
Évolutions futures
Ce contrat couvre les demandes de devis. Les autres actions liées aux services, comme la prise de rendez-vous, sont facultatives pour ce parcours.