Zum Hauptinhalt springen
Letzte Änderung: 7. Oktober 2025
Im Folgenden finden Sie Referenzinformationen für das Erstellen von App-Karten

Projektstruktur

Im Kontext eines Projekts werden App-Kartenkomponenten in einem cards-Verzeichnis innerhalb von app/definiert. Das cards-Verzeichnis sollte Folgendes enthalten:
  • Eine JSON-Schemadefinitionsdatei für jeden Kartentyp (*-hsmeta.json).
  • Eine React-Datei, die das Frontend der Karte darstellt. Dies kann eine .jsx- oder .tsx-Datei sein.
  • Eine package.json-Datei zur Handhabung aller erforderlichen Abhängigkeiten.
project-folder/
└── src/
    └── app/
        ├── app-hsmeta.json
        └── cards/
            └── my-app-card-hsmeta.json
            └── my-app-card.jsx
            └── package.json

Schema der App-Karte

Fügen Sie in der *-hsmeta.json-Konfigurationsdatei für Ihre App-Karte die folgenden Eigenschaften hinzu.
{
  "uid": "example-card",
  "type": "card",
  "config": {
    "name": "Hello Example App",
    "description": "A description of the card's purpose.",
    "location": "crm.record.tab",
    "entrypoint": "/app/cards/ExampleCard.jsx",
    "objectTypes": [
      "contacts"
    ]
  }
}

Mit * markierte Felder sind Pflichtfelder.

FeldTypBeschreibung
uid*ZeichenfolgeDie eindeutige ID der Karte. Sie kann eine beliebige Zeichenfolge sein, sollte aber die Karte sinnvoll identifizieren. HubSpot identifiziert die Karte anhand dieser ID, sodass Sie den Titel der Karte ändern können, ohne historische oder zustandsbehaftete Daten, wie z. B. die Position im CRM-Datensatz, zu entfernen.
typeZeichenfolgeDer Typ der Komponente, die in diesem Fall card sein sollte.
configObjektEin Objekt, das Konfigurationsdetails enthält.
name*ZeichenfolgeDer Titel der Karte, wie auf der Benutzeroberfläche von HubSpot angezeigt.
descriptionZeichenfolgeEine Beschreibung der Karte.
previewImageObjekt:Ein Objekt, das die file- und altText-Felder enthält. Das file-Feld ist der relative Pfad zum Vorschaubild. Gültige Dateierweiterungen sind png, jpeg, jpg oder gif. Die maximale Dateigröße beträgt 5.0 MB. Das altText-Feld ist eine Kurzbeschreibung des Bildes.
entrypoint*ZeichenfolgeDer Dateipfad des Front-End-React-Codes der Karte.
location*crm.record.tab | crm.record.sidebar | crm.preview |helpdesk.sidebarWo die Karte auf der Benutzeroberfläche von HubSpot angezeigt wird. Sie können nur einen Ortswert angeben, aber einige location- und objectTypes-Kombinationen führen zu einer Unterstützung mehrerer Speicherorte. Weitere Informationen finden Sie im Abschnitt Unterstützte Speicherorte weiter unten.
objectTypes*ArrayDie Typen von CRM-Datensätzen, in denen die Karte angezeigt wird. Weitere Informationen finden Sie im Abschnitt Unterstützte Objekte weiter unten.

Unterstützte Objekte

Geben Sie im objectTypes-Array der *-hsmeta.json-Konfigurationsdatei der Karte an, in welchen Arten von CRM-Datensätzen, die Karte angezeigt werden soll. Nachfolgend finden Sie die derzeit unterstützten CRM-Objekte, deren objectType-Wert und den Mindestbereich, der Ihrer App hinzugefügt werden soll.
Bei Standardobjekten von HubSpot wird in Hinblick auf objectType nicht zwischen Groß- und Kleinschreibung unterschieden und sowohl der Singular als auch der Plural unterstützt. Zum Beispiel: "CONTACT" und "contacts" sind beide gültig.
CRM-ObjektobjectType-WertVerwandter Bereich
KontakteCONTACTcrm.objects.contacts.read
UnternehmenCOMPANYcrm.objects.companies.read
DealsDEALScrm.objects.deals.read
TicketsTICKETStickets
Benutzerdefinierte Objektep_objectName (Groß-/Kleinschreibung beachten)crm.objects.custom.read
App-Objekteapp_object_uidSiehe App-Objekt-Bereiche
Darüber hinaus werden die folgenden CRM-Objekte unterstützt, wenn sie in der Objektbibliothek aktiviert wurden:
CRM-ObjektobjectType WertZugehörige Bereiche
VerabredungenAPPOINTMENTScrm.objects.appointments.read
KurseCOURSEScrm.objects.courses.read
ListingsLISTINGScrm.objects.listings.read
DienstleistungenSERVICEScrm.objects.services.read

Unterstützte Speicherorte

Geben Sie im location-Feld der *-hsmeta.json-Konfigurationsdatei der Karte an, wo die sie in HubSpot angezeigt werden soll. Nachfolgend finden Sie die derzeit unterstützten Speicherorte.
  • crm.record.tab: Platziert die Erweiterung in der mittleren Spalte von CRM-Datensatzseiten, entweder in einer der Standardregisterkarten von HubSpot oder in einer benutzerdefinierten Registerkarte. Wenn objectType auf COMPANIES festgelegt ist, ist die Karte auch im Vorschaubereich des Sales-Workspace für Zielaccounts verfügbar.
Falls Sie die mittlere Spalte zuvor angepasst haben, müssen Sie die Ansicht der mittleren Spalte anpassen, um alle neu erstellten Erweiterungen sichtbar zu machen.
  • crm.record.sidebar: Zeigt die Erweiterung in der rechten Seitenleiste von CRM-Datensatzseiten an. Erweiterungen in der Seitenleiste können keine CRM-Datenkomponenten verwenden. Wenn objectType auf DEALS festgelegt wurde, ist die Karte auch in der Deal-Seitenleiste des Sales-Workspace verfügbar.
  • crm.preview: Zeigt die App-Karte im Vorschaubereich an, auf den Sie im gesamten CRM zugreifen können. Falls Sie diesen Speicherort verwenden, ist die Erweiterung in der objectTypes-Vorschau, wie in der JSON-Konfigurationsdatei angegeben, verfügbar. Dazu gehört die Vorschau von Datensätzen innerhalb von CRM-Datensatzseiten, Indexseiten, Board-Ansichten und dem Listentool. Erfahren Sie mehr über das Anpassen von Dashboards.
  • helpdesk.sidebar: Zeigt die Karte in den Ticket-Seitenleisten innerhalb des Helpdesk an. Dazu gehören sowohl die Ticket-Vorschau auf der Startseite des Helpdesks als auch die dortige rechte Seitenleiste der Ticket-Ansicht. Um eine Karte zu diesem Ort hinzuzufügen, müssen Sie Ihre Helpdesk-Einstellungen so konfigurieren, dass die Karte enthalten ist.
Wenn Sie eine Erweiterung für diesen Speicherort erstellen, müssen Sie auch sicherstellen, dass die JSON-Konfigurationsdatei der App tickets im scopes-Array und die JSON-Konfigurationsdatei der Karte tickets im objectTypes-Feld enthält.

Erstellen des React-Frontends

Die Benutzeroberfläche einer App-Karte wird durch eine React-Komponentendatei erstellt, entweder durch .jsx oder .tsx. Diese Datei befindet sich in dem cards/-neben der JSON-Datei für die Kartenkonfiguration (*-hsmeta.json). In der Kartenkonfigurationsdatei geben Sie den Pfad der React-Datei im entrypoint Feld an. Nachfolgend finden Sie ein Beispiel für eine einfache App-Karte, die und Button UI-Komponenten zum Rendern des Karteninhalts sowie eine Flex Komponente zum Verwalten des Layouts enthält Text .
import React from 'react';
import { Text, Button, Flex, hubspot } from '@hubspot/ui-extensions';

// Define the extension to be run within the Hubspot CRM
hubspot.extend(() => <Extension />);

// Define the Extension component
const Extension = () => {
  return (
    <Flex direction="column" gap="medium">
      <Text>
        This is a simple getting started UI extension with static text.
      </Text>
      <Button onClick={() => console.log('Button clicked!')}>Click me!</Button>
    </Flex>
  );
};
Die folgende Referenzdokumentation wird bereitgestellt, um das Erscheinungsbild und die Funktionalität von Karten zu verbessern:

E-Mail-Abhängigkeiten

Sie können Abhängigkeiten für Ihre App-Karte in einer package.json-Datei innerhalb des cards/ Verzeichnisses aufnehmen. Wenn Sie eine App-Karte den hs project add-Befehl hinzufügen, wird standardmäßig eine package.json Datei mit den folgenden Abhängigkeiten für Sie erstellt:
  • @hubspot/ui-extensions
  • react
  • typescript
Um Abhängigkeiten für Projektkomponenten mit einer package.json–Datei zu installieren, können Sie den hs project install-deps-Befehl in Ihrem Projektverzeichnis verwenden.
{
  "name": "hubspot-example-extension",
  "version": "0.1.0",
  "license": "MIT",
  "dependencies": {
    "@hubspot/ui-extensions": "latest",
    "react": "^18.2.0"
  },
  "devDependencies": {
    "typescript": "^5.3.3"
  }
}
I