Run in Postman
- Sie müssen eine HubSpot-App für die Verwendung von Webhooks einrichten, indem Sie die Events abonnieren, über die Sie informiert werden möchten, und eine URL angeben, um diese Benachrichtigungen zu senden. Weitere Informationen zur Erstellung einer App finden Sie in der Dokumentation der Voraussetzungen.
- Sie müssen einen öffentlich verfügbaren und sicheren (HTTPS)-Endpunkt für diese URL bereitstellen, der die in dieser Dokumentation angegebenen Webhook-Payloads verarbeiten kann.
Bereiche
Um Webhooks zum Abonnieren von CRM-Events verwenden zu können, muss Ihre App so konfiguriert werden, dass sie den zugeordneten Bereich erfordert, der dem CRM-Objekttyp entspricht, den Sie abonnieren möchten. Wenn Sie beispielsweise Kontakt-Events abonnieren möchten, müssen Sie den Bereichcrm.objects.contacts.read anfragen.
- Wenn Sie Abonnements in den Einstellungen Ihrer öffentlichen App erstellen, werden Sie aufgefordert, den erforderlichen Bereich im Bereich Neue Webhook-Abonnements erstellen hinzuzufügen, bevor Sie die Erstellung Ihres Abonnements abschließen.
- Wenn Sie ein Abonnement erstellen, indem Sie eine
POST-Anfrage an den Endpunkt/webhooks/v3/{appId}/subscriptionsdurchführen, enthält die Antwort einen Fehler, der den Namen des Bereichs angibt, den Sie in den Einstellungen der Benutzeroberfläche Ihrer öffentlichen App konfigurieren müssen. - Wenn Ihre App bereits Webhooks verwendet, können Sie keine Bereiche entfernen, die für aktive Webhook-Abonnements erforderlich sind, ohne die Abonnements zuvor zu pausieren und zu entfernen.
- Sie können die erforderlichen Bereiche für jeden Webhook-Abonnementtyp in der folgenden Tabelle überprüfen.
Webhook-Einstellungen
Bevor Sie Ihre Webhook-Abonnements einrichten, müssen Sie eine URL angeben, an die diese Benachrichtigungen gesendet werden. Befolgen Sie die Anweisungen in den folgenden Abschnitten, um zu erfahren, wie Sie vollständig Abonnements für Ihre App konfigurieren.Einstellungen in Ihrem Entwickler-Account verwalten
Sie können Ihre URL und Ihre Event-Steuerungsbeschränkung über die Konfigurationsseite Ihrer App in Ihrem Entwickler-Account verwalten:- Gehen Sie in Ihrem Entwickler-Account zu Ihrem App-Dashboard.
- Klicken Sie auf den Namen der App, für die Sie Webhooks einrichten möchten.

- Gehen Sie im Menü der Seitenleiste links zu Webhooks.
- Geben Sie im Feld Ziel-URL die URL ein, an die HubSpot eine POST-Anfrage sendet, wenn Events ausgelöst werden.
- Verwenden Sie die Einstellung Event-Steuerung, um die maximale Anzahl von Evenrts festzulegen, die HubSpot zu senden versucht.

- Klicken Sie auf Speichern.
Einstellungen über API verwalten
Sie können die folgenden Endpunkte und Ihren Entwickler-API-Schlüssel verwenden, um die Webhook-Einstellungen für eine App programmgesteuert zu konfigurieren. Um alle Webhook-Einstellungen anzuzeigen, die derzeit für eine App konfiguriert sind, führen Sie eineGET-Anfrage an webhooks/v3/{appId}/settings durch.
Sie müssen die App-ID in der Anfrage angeben, die Sie unter dem Namen der App in Ihrem App-Dashboard oder auf der Registerkarte Authentifizierung in den Einstellungen Ihrer App finden.
Das Einstellungen-Objekt enthält die folgenden Felder:
Um Änderungen an diesen Einstellungen vorzunehmen, führen Sie eine
PUT-Anfrage an webhooks/v3/{appId}/settings durch und fügen Sie die folgenden Felder in den Anfragetext ein:
Ihre Anfrage kann beispielsweise wie folgt aussehen:
Webhook-Abonnements
Nachdem Sie Ihre Webhook-URL und Ihre Event-Steuerungsbeschränkung eingerichtet haben, müssen Sie ein oder mehrere Abonnements erstellen. Webhook-Abonnements teilen HubSpot mit, welche Events Ihre spezifische App erhalten möchten. Abonnements gelten für alle Kunden, die Ihre Integration installiert haben. Dies bedeutet, dass Sie nur einmal festlegen müssen, welche Abonnements Sie benötigen. Nachdem Sie ein Abonnement für eine Anwendung aktiviert haben, beginnt sie automatisch, Webhooks für alle Kunden abzurufen, die Ihre Anwendung installiert haben, und Ihre Integration beginnt, Webhook-Trigger von allen neuen Kunden zu empfangen. Bei allenassociationChange-Webhook-Abonnements löst der Webhook zwei Events für beide Seiten der Zuordnung aus.
- Wenn Sie zwei Kontakte zuordnen, löst ein Abonnement für
contact.associationChangezwei Events aus, diecontact 1 to contact 2undcontact 2 to contact 1darstellen. - Wenn Sie beim Zuordnen eines Unternehmens die zwei Webhook-Abonnements
contact.associationChangeundcompany.associationChangehaben, erhalten Sie zwei Events. Diese stellencontact 1 to company 1undcompany 1 to contact 1dar.
eventType-Feld beim Erstellen von Abonnements über API verwendet werden:
Die folgenden Konversationen-Abonnementtypen stehen Ihnen zum Abonnieren zur Verfügung, wenn Sie die Conversations-Postfach- und Nachrichten-API verwenden, die sich derzeit in der Beta-Phase befindet:
Für Abonnements von Eigenschaftsänderungen müssen Sie angeben, für welche Eigenschaft Sie benachrichtigt werden möchten: Sie können mehrere Abonnements von Eigenschaftsänderungen angeben. Wenn der Account eines Kunden nicht über die Eigenschaft verfügt, die Sie in einem Abonnement angeben, erhalten Sie keine Webhooks von diesem Kunden für diese Eigenschaft.
Bestimmte Eigenschaften sind für Abonnements von CRN-Eigenschaftsänderungen nicht verfügbar. Diese Eigenschaften sind:
num_unique_conversion_eventshs_lastmodifieddate
assignedTo: Der Konversationsthread wurde neu zugewiesen oder nicht zugewiesen. Wenn der Thread neu zugewiesen wurde, ist derpropertyValueeine Akteur-ID in der Webhooks-Payload. Wenn er nicht zugewiesen wird, ist er leer.status: Der Status des Konversationsthreads hat sich geändert. In den Webhooks-Payload ist derpropertyValueentwederOPENoderCLOSED.isArchived: Der Konversationsthread wurde wiederhergestellt. DerpropertyValuein der Webhooks-Payload ist immerFALSE.
Abonnements in Ihrem Entwickler-Account erstellen
Sie können Webhook-Abonnements in Ihrem HubSpot-Entwickler-Account erstellen.- Gehen Sie in Ihrem HubSpot-Entwickler-Account zum Apps-Dashboard.
- Klicken Sie auf den Namen einer App.
- Gehen Sie im Menü der Seitenleiste links zu Webhooks.
- Klicken Sie auf Abonnement erstellen.
- Klicken Sie im rechten Bereich auf das Dropdown-Menü Welche Objekttypen und wählen Sie die Objekte aus, für die Sie ein Abonnement erstellen möchten.
- Klicken Sie auf das Dropdown-Menü Welche Events beobachten? und wählen Sie die Event-Typen aus.

- Wenn Sie ein Abonnement für Eigenschaftsänderungs-Events erstellen, klicken Sie auf das Dropdown-Menü Welche Eigenschaften? und wählen Sie die Eigenschaften aus, auf die überwacht werden soll.

- Klicken Sie auf Abonnieren.
- Bewegen Sie den Mauszeiger im Abschnitt Event-Abonnements über den Objekttyp und klicken Sie auf Abonnements anzeigen.
- Aktivieren Sie das Kontrollkästchen neben dem Event und klicken Sie dann im Tabellen-Header auf Aktivieren.

Abonnements über API erstellen
Sie können mithilfe der folgenden Endpunkte programmgesteuert Abonnements erstellen. Sie müssen Ihren Entwickler-API-Schlüssel verwenden, wenn Sie Anfragen an diese Endpunkte stellen. Ein Abonnementobjekt kann die folgenden Felder enthalten:Abonnements abrufen
Um die Liste der Abonnements abzurufen, führen Sie eineGET-Anfrage an webhooks/v3/{appId}/subscriptions durch.
Die Antwort ist ein Array von Objekten, die Ihre Abonnements darstellen. Jedes Objekt enthält Informationen zum Abonnement wie die ID, Erstellungsdatum, Typ und Angabe, ob es derzeit aktiv ist oder nicht. Eine Antwort könnte beispielsweise so aussehen:
Ein neues Abonnement erstellen
Um ein neues Abonnement zu erstellen, führen Sie einePOST-Anfrage an webhooks/v3/{appId}/subscriptions durch.
Im Anfragetext können Sie die folgenden Felder einfügen:
Sie müssen nicht
id, createdAt oder createdBy einschließen, da diese Felder automatisch festgelegt werden.
Ihr Anfragetext kann beispielsweise wie folgt aussehen:
eventType muss ein gültiger Abonnementtyp wie im Abschnitt oben definiert sein und der propertyName muss ein gültiger Eigenschaftsname sein. Wenn ein Kunde keine Eigenschaft definiert hat, die diesem Wert entspricht, erhalten Sie bei diesem Abonnement keine Benachrichtigungen.
Ein Abonnement aktualisieren
Um ein Abonnement zu aktivieren oder zu pausieren, führen Sie einePUT-Anfrage an webhooks/v3/{appId}/subscriptions/{subscriptionId} durch.
Schließen Sie im Anfragetext Folgendes ein:
Ein Abonnement löschen
Um ein Abonnement zu löschen, führen Sie eineDELETE-Anfrage an webhooks/v3/{appId}/subscriptions/{subscriptionId} durch.
Webhook-Payloads
Der Endpunkt unter der Ziel-URL, die Sie in den Webhooks Ihrer App angeben, erhältPOST-Anfragen, die JSON-formatierte Daten von HubSpot enthalten.
Um sicherzustellen, dass die Anfragen, die Sie auf Ihrem Webhook-Endpunkt erhalten, tatsächlich von HubSpot stammen, füllt HubSpot einen X-HubSpot-Signatur-Header mit einem SSHA-256-Hash aus, der mithilfe des Client-Geheimnisses Ihrer App in Kombination mit Details der Anfrage erstellt wurde. Erfahren Sie mehr über die Validierung von Anfragesignaturen.
Verwenden Sie die folgenden Tabellen, um Details zu Feldern anzuzeigen, die in der Payload enthalten sein können.
ccurredAt-Eigenschaft für jede Benachrichtigung, um zu ermitteln, wann das Event aufgetreten ist, das die Benachrichtigung ausgelöst hat.
HubSpot gibt ebenfalls keine Gewährleistung, dass Sie nur eine einzelne Benachrichtigung für ein Event erhalten. Obwohl dies nur selten vorkommen sollte, ist es möglich, dass HubSpot Ihnen ein und dieselbe Benachrichtigung mehrmals sendet.
Datenschutzkonforme Kontaktlöschungen
HubSpot-Benutzer haben die Möglichkeit, einen Kontaktdatensatz dauerhaft zu löschen, um Datenschutzgesetze einzuhalten. Erfahren Sie mehr über die Durchführung einer DSGVO-konformen Löschung. Sie können den Abonnementtypcontact.privacyDeletion abonnieren, um Webhook-Benachrichtigungen zu erhalten, wenn ein Benutzer eine datenschutzkonforme Kontaktlöschung durchführt.
Benachrichtigungen zu Löschungen aus Datenschutzgründen weisen einige spezielle Verhaltensweisen auf:
- Eine Löschung aus Datenschutzgründen löst auch das Event der Kontaktlöschung aus, sodass Sie zwei Benachrichtigungen erhalten, wenn Sie beide Events abonniert haben.
- Diese Benachrichtigungen werden nicht unbedingt in einer bestimmten Reihenfolge oder im selben Batch von Nachrichten gesendet. Sie müssen die Objekt-ID verwenden, um die separaten Nachrichten abzugleichen.
Sicherheit
Um sicherzustellen, dass die Anfragen, die Sie auf Ihrem Webhook-Endpunkt erhalten, tatsächlich von HubSpot stammen, füllt HubSpot einenX-HubSpot-Signatur-Header mit einem SSHA-256-Hash der Verkettung des App-Geheimnisses für Ihre Anwendung und dem Anfragetext, den HubSpot sendet.
Um diese Signatur zu verifizieren, verketten Sie das App-Geheimnis Ihrer Anwendung und den nicht-geparsten Anfragetext der Anfrage, die Sie verarbeiten, und rufen Sie einen SHA-256-Hash des Ergebnisses ab. Vergleichen Sie resultierenden Hash mit dem Wert der X-HubSpot-Signature. Wenn diese Werte übereinstimmen, wird dadurch verifiziert, dass diese Anforderung von HubSpot stammt. Oder die Anfrage kam von jemand anderem, der Ihr App-Geheimnis kennt. Es ist wichtig, diesen Wert geheim zu halten.
Wenn diese Werte nicht übereinstimmen, wurde diese Anfrage möglicherweise während des Transfers manipuliert, oder jemand spooft Webhook-Benachrichtigungen an Ihren Endpunkt.
Erfahren Sie mehr über die Validierung von Signaturanfragen.
Erneute Versuche
Wenn bei Ihrem Service Probleme bei der Datenverarbeitung zu irgendeinem Zeitpunkt auftreten, versucht HubSpot, diese Benachrichtigungen bis zu 10 Mal erneut zu senden. HubSpot versucht es in den folgenden Fällen erneut:- Verbindung fehlgeschlagen: HubSpot kann eine http-Verbindung mit der angegebenen Webhook-URL nicht öffnen.
- Timeout: Ihr Service benötigt länger als fünf Sekunden, um eine Antwort zurück an einen Batch an Benachrichtigungen zu senden.
- Fehlercodes: Ihr Service antwortet mit einem beliebigen HTTP-Statuscode (4xx oder 5xx).
Beschränkungen
POSTAnfragen, die HubSpot über Ihre Webhook-Abonnements an Ihren Dienst sendet, werden nicht auf die API-Ratenbeschränkungen Ihrer App angerechnet.
Sie können maximal 1000 Abonnements pro Anwendung erstellen. Wenn Sie versuchen, mehr Sie zu erstellen, erhalten Sie einen Statuscode 400 Bad Request mit dem folgenden Text: