For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navigation principale

Spécification de conversion « Obtenir un devis » pour les services locaux

Contrat d’intégration d’un plugin de demande de devis pour des services locaux dans le parcours de conversion de ChatGPT.

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 contenant latitude et longitude.
  • 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ètre business_id à request_service.
  • action_type : Définissez ce champ sur request_a_quote pour 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 :

  • page et page_size.
  • offset et limit.
  • Un next_page_token opaque.

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.