Dernière modification : 11 septembre 2025
Découvrez ci-dessous des informations de référence sur les fonctionnalités des applications de la plateforme de développement, y compris des définitions de fichiers de configuration, des détails de domaines, etc.

Structure du projet

  • Tous les composants du projet doivent se trouver dans le répertoire src spécifié dans le fichier de configuration hsproject.json de premier niveau.
  • Toutes les fonctionnalités et tous les composants de l’application doivent se trouver dans le répertoire src/app/. Dans ce répertoire app/, vous définirez des sous-répertoires pour chaque fonctionnalité que vous souhaitez que votre application prenne en charge :
    • Les événements d’application sont configurés dans app-events/.
    • Les objets d’application sont définis dans app-objects/.
    • Toutes les caractéristiques de la carte sont définies dans cards/.
    • Les fonctionnalités de la page Paramètres sont définies dans settings/.
    • La télémétrie est configurée dans telemetry/.
    • Les abonnements Webhook sont définis dans webhooks/.
    • Les actions de workflow personnalisées sont définies dans workflow-actions/.
  • Dans chaque sous-répertoire d’entités, vous configurerez l’entité à l’aide d’un fichier *-hsmeta.json. Vous pouvez préfixer le nom du fichier avec un élément significatif pour votre application (par exemple, my-app-hsmeta.json), tant que le fichier se termine par -hsmeta.json. Ces fichiers doivent se trouver à la racine de leur dossier respectif (par exemple, app/my-app-hsmeta.json, cards/my-card-hsmeta.json).
L’exemple de structure de répertoire ci-dessous décrit toutes les fonctionnalités disponibles. Vous trouverez des détails sur la configuration du fichier app-hsmeta.json de schéma d’application de niveau supérieur dans la section schéma d’application ci-dessous. Une fois que vous êtes prêt à ajouter des fonctionnalités d’application, consultez la section Ajout de fonctionnalités d’application.
my-project-folder/
└── hsproject.json
└── src
    └── app/
        └── app-hsmeta.json/
        └── app-events/
            └── my-event-type-hsmeta.json
        └── cards/
            └── MyCard.jsx
            └── my-app-card-hsmeta.json
            └── package.json
        └── settings/
            └── Settings.tsx
            └── settings-hsmeta.json
            └── package.json
        └── telemetry/
            └── telemetry-hsmeta.json
        └── webhooks/
            └── webhooks-hsmeta.json
        └── workflow-actions/
            └── custom-action-hsmeta.json

Afficher un exemple sur GitHub

L’extension HubSpot Visual Studio Code permet de vérifier le type de chacune des propriétés dans vos fichiers de configuration *-hsmeta.json.

Spécification des UID

Le champ uid est un identifiant unique en interne pour votre application spécifique et doit également être globalement unique dans le projet. Toutes les fonctionnalités de l’application auront leur propre uid défini dans leurs fichiers *-hsmeta.json respectifs, qui doivent être différents du uid de niveau supérieur que vous choisissez dans le fichier app-hsmeta.json de votre application.

Schéma de l’application

La configuration de premier niveau de votre application est spécifiée dans un fichier de configuration app-hsmeta.json du répertoire app.
my-project-folder/
└── src
    └── app/
        └── app-hsmeta.json/
Voici les options de configuration disponibles pour app-hsmeta.json.
{
  "uid": "new_developer_platform_app",
  "type": "app",
  "config": {
    "description": "An example to demonstrate how to build an app with developer projects.",
    "name": "my first app",
    "distribution": "marketplace",
    "auth": {
      "type": "oauth",
      "redirectUrls": ["http://localhost:3000/oauth-callback"],
      "requiredScopes": [
        "crm.objects.contacts.read",
        "crm.objects.contacts.write"
      ],
      "optionalScopes": [],
      "conditionallyRequiredScopes": []
    },
    "permittedUrls": {
      "fetch": ["https://api.hubapi.com"],
      "iframe": [],
      "img": []
    },
    "support": {
      "supportEmail": "support@example.com",
      "documentationUrl": "https://example.com/docs",
      "supportUrl": "https://example.com/support",
      "supportPhone": "+18005555555"
    }
  }
}

Afficher un exemple sur GitHub

Chacune des options de configuration est détaillée dans le tableau ci-dessous. Vous trouverez plus de contexte sur la distribution de votre application, la configuration de l’authentification et la spécification des domaines dans les sections sous le tableau.

Les champs marqués par sont * obligatoires.

ChampTypeDescription
uid*Chaîneun identifiant unique interne pour l’application. Doit être globalement unique au sein du projet. Peut être n’importe quelle chaîne jusqu’à 64 caractères. Les caractères peuvent être en majuscules ou en minuscules, et peuvent inclure des chiffres, des tirets bas (_), des tirets (-) et des points (.).
type*Chaînele type de composant. Doit correspondre au nom du dossier parent (app).
description*Chaîneune description de ce que l’application fait pour l’utilisateur qui l’installe. Peut être n’importe quelle chaîne jusqu’à 8 192 caractères.
name*Chaînele nom de l’application, qui s’affichera dans HubSpot. Peut être n’importe quelle chaîne jusqu’à 200 caractères. Ne doit pas commencer ou se terminer par un espace.
distribution*Chaînela méthode de distribution de l’application, qui peut être définie sur l’une des suivantes :
  • marketplace : utilisé si vous souhaitez que l’application soit éligible pour être listée dans le marketplace des applications HubSpot.
  • private : utilisé si vous souhaitez installer votre application uniquement dans un ensemble spécifique de comptes sur la liste d’autorisation ou un seul compte à la fois.

Découvrez-en davantage dans la section Distribution ci-dessous.

auth*Objetun objet contenant les détails de la méthode d’authentification de l’application. Consultez la section Authentification ci-dessous pour plus de détails.
permittedUrlsObjetun tableau contenant les URL que l’application est autorisée à appeler. Les URL doivent utiliser le schéma HTTPS et contenir une autorité, suivie d’un préfixe de chemin facultatif si nécessaire.
supportEmailChaîneune adresse e-mail valide que les utilisateurs peuvent contacter pour obtenir de l’aide.
documentationUrlChaînel’URL externe vers laquelle les utilisateurs peuvent accéder pour obtenir de la documentation utile. Doit utiliser HTTPS.
supportUrlChaînel’URL externe vers laquelle les utilisateurs peuvent accéder pour obtenir une assistance supplémentaire. Doit utiliser HTTPS.
supportPhoneChaînele numéro de téléphone que les utilisateurs peuvent contacter pour obtenir de l’aide. Doit commencer par un signe plus (+).

Distribution

Le champ distribution dans le schéma de votre application vous permet de configurer la manière dont vous souhaitez distribuer votre application :
  • Si vous prévoyez de lister votre application sur le marketplace des applications de HubSpot, définissez le champ distribution sur "marketplace". Un exemple de schéma d’application pour cette option se trouve ici. Si vous choisissez cette option, assurez-vous de définir dans type avec la propriété auth sur oauth, comme indiqué dans la section Authentification ci-dessous.
  • Si vous souhaitez autoriser l’installation de votre application sur un ensemble spécifique de comptes ajoutés à la liste d’autorisation ou si vous souhaitez limiter l’installation à un seul compte à la fois, définissez distribution sur "private". Veillez à définir le type dans la propriété auth en conséquence :
    • Si vous souhaitez installer votre application dans plusieurs comptes sur la base d’une liste d’inclusion que vous configurez dans les paramètres de votre projet, définissez l’authentification type sur oauth. Consultez l’exemple de schéma d’application pour cette option ici.
    • Pour limiter l’installation à un seul compte, soit le même que celui que vous utilisez pour le développement, soit un autre compte auquel l’utilisateur installateur a accès, définissez l’authentification type sur static. Un exemple de schéma d’application pour l’authentification statique est disponible ici.

Authentification

L’authentification pour votre application est configurée via la propriété auth dans le schéma de votre application. Vous pouvez spécifier les exigences en matière de domaine de votre application, les URL de redirection et le type d’authentification.

Les champs marqués par sont * obligatoires.

ChampTypeDescription
type*Chaînele type d’authentification, qui peut être défini comme l’un des élèments suivants :
  • oauth : autoriser l’installation via OAuth, soit pour un ensemble spécifique de comptes sur la liste d’inclusion, soit pour le lister dans le marketplace des applications HubSpot.
  • static : limitez l’installation de votre application à un seul compte auquel l’utilisateur qui l’installe a accès.
redirectUrls*Tableauune liste des URL vers lesquelles le processus OAuth est autorisé à rediriger. Chaque application doit avoir au moins une URL de redirection d’authentification et doit utiliser HTTPS. La seule exception est http://localhost, qui est autorisée pour les tests.
requiredScopes*Tableauune liste des domaines requis de votre application. Chaque application doit inclure au moins un domaine et l’utilisateur qui a procédé à l’installation doit accorder ces domaines pour installer l’application avec succès. Découvrez-en davantage sur les domaines ci-dessous.
optionalScopesTableauune liste des domaines facultatifs de votre application. Ces domaines peuvent être exclus de l’autorisation lors de l’installation si le compte ou l’utilisateur qui installe l’application ne dispose pas des autorisations appropriées. Dans ce cas, le domaine ne sera pas inclus dans le jeton d’actualisation ou le jeton d’accès qui en résulte. Découvrez-en davantage sur les domaines ci-dessous.
conditionallyRequiredScopesTableauune liste des domaines requis uniquement lorsqu’ils sont inclus dans le paramètre de requête scope de l’URL d’installation. Découvrez-en davantage sur les domaines ci-dessous.

Périmètres d’accès

Dans le champ auth d’un fichier de configuration d’application, vous pouvez indiquer trois types de domaines : les domaines requis, les domaines conditionnellement requis et les domaines facultatifs. Au minimum, votre application doit inclure le domaine read pour permettre aux clients d’accéder au type d’objet CRM associé.
"auth": {
      "type" : "oauth",
      "redirectUrls": ["http://localhost:3000/oauth-callback"],
      "requiredScopes": [
        "crm.objects.contacts.read",
        "crm.objects.contacts.write"
      ],
      "optionalScopes": [],
      "conditionallyRequiredScopes": []
    },

Pour obtenir une liste complète des domaines disponibles, consultez la référence des domaines.

Ajout de fonctionnalités de l’application

Pour configurer les fonctionnalités de l’application telles que les abonnements webhook, les actions de workflow personnalisées et les cartes d’application, consultez les guides ci-dessous pour plus de détails sur l’ajout des fichiers *-hsmeta.json associés à votre projet :