Letzte Änderung: 11. September 2025
Im Folgenden finden Sie Referenzinformationen zu App-Funktionen der Entwicklerplattform, einschließlich Definitionen für Konfigurationsdateien, Details zu Bereichen und mehr.

Projektstruktur

  • Alle Projektkomponenten müssen sich in dem src-Verzeichnis befinden, das in der hsproject.json-Konfigurationsdatei der obersten Ebene angegeben ist.
  • Alle App-Funktionen und -Komponenten müssen innerhalb des Verzeichnisses src/app/-gespeichert werden. In diesem app/-Verzeichnis definieren Sie Unterverzeichnisse für jede Funktion, die Ihre App unterstützen soll:
    • App-Events sind in app-events/ konfiguriert.
    • App-Objekte sind in app-objects/ definiert.
    • Alle Kartenfunktionen sind in cards/ definiert.
    • Die Funktionen der Einstellungsseite sind innerhalb von settings/ definiert.
    • Die Telemetriedaten sind in telemetry/ konfiguriert.
    • Webhook-Abonnements sind innerhalb von webhooks/ definiert.
    • Benutzerdefinierte Workflow-Aktionen sind innerhalb von workflow-actions/ definiert.
  • In jedem Unterverzeichnis für Funktionen konfigurieren Sie die jeweiligen Funktionen mithilfe einer *-hsmeta.json-Datei. Sie können dem Dateinamen etwas voranstellen, das für Ihre App sinnvoll ist (z. B. my-app-hsmeta.json), solange die Datei mit -hsmeta.json endet. Diese Dateien müssen sich auf der Stammebene ihres jeweiligen Ordners befinden (z. B. app/my-app-hsmeta.json, cards/my-card-hsmeta.json).
Die folgende Beispielverzeichnisstruktur zeigt alle verfügbaren Funktionen. Einzelheiten zum Konfigurieren der app-hsmeta.json-App-Schemadatei der obersten Ebene finden Sie unten im Abschnitt App-Schema. Um App-Funktionen hinzuzufügen, lesen Sie bitte den Abschnitt Hinzufügen von App-Funktionen.
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

Beispiel auf GitHub anzeigen

Die HubSpot Visual Studio Code-Erweiterung bietet eine Typüberprüfung für jede Eigenschaft in Ihren *-hsmeta.json-Konfigurationsdateien.

Angeben von UIDs

Das uid-Feld ist eine intern eindeutige ID für Ihre spezifische App und muss auch innerhalb des Projekts global eindeutig sein. Für alle App-Funktionen ist jeweils eine eigene uid-Datei in ihren jeweiligen *-hsmeta.json-Dateien definiert, die sich von der entsprechenden uid der obersten Ebene unterscheiden muss, welche Sie in der app-hsmeta.json-Datei Ihrer App auswählen.

App-Schema

Die Konfiguration der obersten Ebene für Ihre App wird in einer app-hsmeta.json-Konfigurationsdatei im app-Verzeichnis angegeben.
my-project-folder/
└── src
    └── app/
        └── app-hsmeta.json/
Nachfolgend finden Sie die Konfigurationsoptionen für 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"
    }
  }
}

Beispiel auf GitHub anzeigen

Die einzelnen Konfigurationsoptionen sind in der folgenden Tabelle aufgeführt. Weitere Informationen zum Verteilen Ihrer App, zum Konfigurieren der Authentifizierung und zum Angeben von Bereichen finden Sie in den Abschnitten unterhalb der Tabelle.

Mit * markierte Felder sind Pflichtfelder.

FeldTypBeschreibung
uid*ZeichenfolgeEine interne eindeutige ID für die App. Sie muss innerhalb des Projekts global eindeutig und kann eine beliebige Zeichenfolge mit bis zu 64 Zeichen sein. Zeichen können in Groß- oder Kleinbuchstaben geschrieben werden und Ziffern, Unterstriche (_), Bindestriche (-) und Punkte (.) enthalten.
type*ZeichenfolgeDer Typ der Komponente. Muss mit dem Namen des übergeordneten Ordners (app) übereinstimmen.
description*ZeichenfolgeEine Beschreibung, was die App für den installierenden Benutzer tut. Kann eine beliebige Zeichenfolge mit bis zu 8.192 Zeichen sein.
name*ZeichenfolgeDies ist der Name der App, der in HubSpot angezeigt wird. Kann eine beliebige Zeichenfolge mit bis zu 200 Zeichen sein. Darf nicht mit einem Leerzeichen beginnen oder enden.
distribution*ZeichenfolgeDie Methode der App-Verteilung, die auf eine der folgenden Optionen festgelegt werden kann:
  • marketplace: wird verwendet, wenn die App für ein Listing im HubSpot App Marketplace in Frage kommen soll.
  • private: wird verwendet, wenn Sie Ihre App nur in einer bestimmten Gruppe von Accounts der Zulassungsliste oder jeweils in einem einzelnen Account installieren möchten.

Weitere Informationen finden Sie im Abschnitt Verteilung weiter unten.

auth*ObjektEin Objekt, das die Details der Authentifizierungsmethode der App enthält. Weitere Informationen finden Sie im Abschnitt zur Authentifizierung weiter unten.
permittedUrlsObjektEin Array, das die URLs enthält, die die App aufrufen darf. URLs müssen dem HTTPS-Schema folgen und eine Autorität enthalten, ggf. gefolgt von einem optionalen Pfadpräfix.
supportEmailZeichenfolgeEine gültige E-Mail-Adresse, an die sich Benutzer wenden können, wenn sie Support benötigen.
documentationUrlZeichenfolgeDie externe URL, zu der Benutzer navigieren können, um die Begleitdokumentation zu erhalten. Muss HTTPS verwenden.
supportUrlZeichenfolgeDie externe URL, zu der Benutzer navigieren können, um zusätzlichen Support zu erhalten. Muss HTTPS verwenden.
supportPhoneZeichenfolgeDie Telefonnummer, die Benutzer kontaktieren können, wenn sie Support benötigen. Muss mit einem Pluszeichen (+) beginnen.

Verteilung

Mit dem distribution-Feld in Ihrem App-Schema können Sie konfigurieren, wie Sie Ihre App verteilen möchten:
  • Wenn Sie Ihre App im HubSpot App Marketplace listen wollen, legen Sie das distribution-Feld auf "marketplace" fest. Ein Beispiel für ein App-Schema für diese Option finden Sie hier. Wenn Sie diese Option wählen, stellen Sie sicher, dass Sie innerhalb dem type der auth-Eigenschaft den Wert auf oauthsetzen, wie im Abschnitt Authentifizierung weiter unten beschrieben.
  • Wenn Sie zulassen möchten, dass Ihre App in einer bestimmten Gruppe von Accounts der Zulassungsliste installiert werden darf, oder falls Sie die Installation jeweils auf einen einzelnen Account beschränken möchten, wählen Sie für den distribution-Wert "private". Stellen Sie sicher, dass Sie den type innerhalb der auth-Eigenschaft genauso bestimmen:
    • Wenn Sie Ihre App basierend auf einer Zulassungsliste, die Sie in Ihren Projekteinstellungen konfiguriert haben, und somit in mehreren Accounts installieren möchten, muss der type der Authentifizierung oauth lauten. Ein Beispiel für dieses App-Schema-Option finden Sie hier.
    • Um die Installation auf einen einzelnen Account zu beschränken (entweder auf den Account, den Sie für die Entwicklung verwenden, oder auf einen anderen, auf den der installierende Benutzer Zugriff hat), setzen Sie den type der Authentifizierung auf static. Ein Beispiel für ein App-Schema für statische Authentifizierung finden Sie hier.

Authentifizierung

Die Authentifizierung für Ihre App wird über die auth-Eigenschaft in Ihrem App-Schema konfiguriert. Sie können dabei die Bereichsanforderungen Ihrer App, Weiterleitungs-URLs und den Authentifizierungstyp angeben.

Mit * markierte Felder sind Pflichtfelder.

FeldTypBeschreibung
type*ZeichenfolgeDie Art der Authentifizierung, für die folgende Optionen infrage kommen:
  • oauth: Installation über OAuth zulassen, entweder für eine bestimmte Gruppe von Accounts der Zulassungsliste oder als im HubSpot App Marketplace gelistet.
  • static: Beschränkte Installation Ihrer App auf einen einzigen Account, auf den der installierende Benutzer Zugriff hat.
redirectUrls*ArrayEine Liste von URLs, zu denen der OAuth-Prozess zurückleiten darf. Jede App muss über mindestens eine derartige URL verfügen und HTTPS verwenden. Die einzige Ausnahme ist, dass für http://localhost das Testen erlaubt ist.
requiredScopes*ArrayEine Liste der erforderlichen Bereiche Ihrer App. Jede App muss mindestens einen Bereich enthalten, wobei es erforderlich ist, dass der installierende Benutzer diese Bereiche zulässt, wenn die App erfolgreich installiert werden soll. Erfahren Sie im Folgenden mehr über Bereiche.
optionalScopesArrayEine Liste der optionalen Bereiche Ihrer App. Diese Bereiche können bei der Installation von der Autorisierung ausgeschlossen werden, wenn der Account oder der Benutzer, der die App installiert, nicht über entsprechende Berechtigungen verfügt. In diesem Fall wird der Bereich nicht in das resultierende Aktualisierungs- oder Zugriffs-Token aufgenommen. Erfahren Sie im Folgenden mehr über Bereiche.
conditionallyRequiredScopesArrayEine Liste von Bereichen, die nur erforderlich sind, wenn sie im scope-Abfrageparameter der Installations-URL enthalten sind. Erfahren Sie im Folgenden mehr über Bereiche.

Bereiche

Im auth-Feld einer App-Konfigurationsdatei können Sie drei Arten von Bereichen angeben: erforderliche Bereiche, bedingt erforderliche Bereiche und optionale Bereiche. Ihre App muss mindestens den read-Bereich enthalten, damit Kunden auf den zugehörigen CRM-Objekttyp zugreifen können.
"auth": {
      "type" : "oauth",
      "redirectUrls": ["http://localhost:3000/oauth-callback"],
      "requiredScopes": [
        "crm.objects.contacts.read",
        "crm.objects.contacts.write"
      ],
      "optionalScopes": [],
      "conditionallyRequiredScopes": []
    },

Eine vollständige Liste der verfügbaren Bereiche finden Sie in der Referenz zu Bereichen.

App-Features hinzufügen

Um App-Funktionen wie Webhook-Abonnements, benutzerdefinierte Workflow-Aktionen und App-Karten zu konfigurieren, lesen Sie bitte die folgenden Anleitungen, um Näheres zum Hinzufügen der zugehörigen *-hsmeta.json-Dateien zu Ihrem Projekt zu erfahren: