Übersicht für die Webhooks-API, die es Ihnen ermöglicht, Events zu abonnieren, die in einem HubSpot-Account auftreten, in dem Ihre Integration installiert ist.
crm.objects.contacts.read
anfragen.
POST
-Anfrage an den Endpunkt /webhooks/v3/{appId}/subscriptions
durchfü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.GET
-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:
Feld | Description |
---|---|
webhookUrl | Die URL, an die HubSpot Webhook-Benachrichtigungen sendet. Diese URL muss über HTTPS bereitgestellt werden. |
maxConcurrentRequests | Das Gleichzeitigkeitsbeschränkung für die Webhook-URL. Dieser Wert muss eine Zahl größer als fünf sein. |
PUT
-Anfrage an webhooks/v3/{appId}/settings
durch und fügen Sie die folgenden Felder in den Anfragetext ein:
Feld | Description |
---|---|
targetUrl | Die öffentlich verfügbare URL für HubSpot zum Aufrufen und an die Event-Payloads geliefert werden. |
throttling | Konfigurieren Sie Webhook-Steuerungsdetails in diesem Objekt. Das Steuerungsobjekt enthält die Felder period und maxConcurrentRequests . |
period | Zeitskala für diese Einstellung. Kann entweder SECONDLY (pro Sekunde) oder ROLLING_MINUTE (pro Minute) sein. |
maxConcurrentRequests | Die maximale Anzahl von HTTP-Anfragen, die HubSpot innerhalb eines durch period festgelegten Zeitraums an Ihre App zu senden versucht. |
associationChange
-Webhook-Abonnements löst der Webhook zwei Events für beide Seiten der Zuordnung aus.
contact.associationChange
zwei Events aus, die contact 1 to contact 2
und contact 2 to contact 1
darstellen.contact.associationChange
und company.associationChange
haben, erhalten Sie zwei Events. Diese stellen contact 1 to company 1
und company 1 to contact 1
dar.eventType
-Feld beim Erstellen von Abonnements über API verwendet werden:
Abonnementtyp | Erforderlicher Bereich | Beschreibung |
---|---|---|
contact.creation | crm.objects.contacts.read | Sie erhalten eine Benachrichtigung, wenn ein Kontakt im Account eines Kunden erstellt wird. |
contact.deletion | Sie erhalten eine Benachrichtigung, wenn ein Kontakt im Account eines Kunden gelöscht wird. | |
contact.merge | Sie erhalten eine Benachrichtigung, wenn ein Kontakt mit einem anderen zusammengeführt wird. | |
contact.associationChange | Sie erhalten eine Benachrichtigung, wenn bei einem Kontakt eine Zuordnung zwischen sich und einem anderen unterstützten Webhook-Objekt (Kontakt, Unternehmen, Deal, Ticket, Einzelposten oder Produkt) hinzugefügt oder entfernt wurde. | |
contact.restore | Sie erhalten eine Benachrichtigung, wenn ein gelöschter Kontakt wiederhergestellt wird. | |
contact.privacyDeletion | Sie erhalten eine Benachrichtigung, wenn ein Kontakt aus Datenschutzschutzgründen gelöscht wird. | |
contact.propertyChange | Sie erhalten eine Benachrichtigung, wenn eine bestimmte Eigenschaft für einen Kontakt im Account eines Kunden geändert wird. | |
company.creation | crm.objects.companies.read | Sie erhalten eine Benachrichtigung, wenn ein Unternehmen im Account eines Kunden erstellt wird. |
company.deletion | Sie erhalten eine Benachrichtigung, wenn ein Unternehmen im Account eines Kunden gelöscht wird. | |
company.propertyChange | Sie erhalten eine Benachrichtigung, wenn eine bestimmte Eigenschaft für ein Unternehmen im Account eines Kunden geändert wird. | |
company.associationChange | Sie erhalten eine Benachrichtigung, wenn bei einem Unternehmen eine Zuordnung zwischen sich und einem anderen unterstützten Webhook-Objekt (Kontakt, Unternehmen, Deal, Ticket, Einzelposten oder Produkt) hinzugefügt oder entfernt wurde. | |
company.restore | Sie erhalten eine Benachrichtigung, wenn ein gelöschtes Unternehmen wiederhergestellt wird. | |
company.merge | Sie erhalten eine Benachrichtigung, wenn ein Unternehmen mit einem anderen zusammengeführt wird. | |
deal.creation | crm.objects.deals.read | Sie erhalten eine Benachrichtigung, wenn ein Deal im Account eines Kunden erstellt wird. |
deal.deletion | Sie erhalten eine Benachrichtigung, wenn ein Deal im Account eines Kunden gelöscht wird. | |
deal.associationChange | Sie erhalten eine Benachrichtigung, wenn bei einem Deal eine Zuordnung zwischen sich und einem anderen unterstützten Webhook-Objekt (Kontakt, Unternehmen, Deal, Ticket, Einzelposten oder Produkt) hinzugefügt oder entfernt wurde. | |
deal.restore | Sie erhalten eine Benachrichtigung, wenn ein gelöschter Deal wiederhergestellt wird. | |
deal.merge | Sie erhalten eine Benachrichtigung, wenn ein Deal mit einem anderen zusammengeführt wird. | |
deal.propertyChange | Sie erhalten eine Benachrichtigung, wenn eine bestimmte Eigenschaft für einen Deal im Account eines Kunden geändert wird. | |
ticket.creation | tickets | Sie erhalten eine Benachrichtigung, wenn ein Ticket im Account eines Kunden erstellt wird. |
ticket.deletion | Sie erhalten eine Benachrichtigung, wenn ein Ticket im Account eines Kunden gelöscht wird. | |
ticket.propertyChange | Sie erhalten eine Benachrichtigung, wenn eine bestimmte Eigenschaft für ein Ticket im Account eines Kunden geändert wird. | |
ticket.associationChange | Sie erhalten eine Benachrichtigung, wenn bei einem Ticket eine Zuordnung zwischen sich und einem anderen unterstützten Webhook-Objekt (Kontakt, Unternehmen, Deal, Ticket, Einzelposten oder Produkt) hinzugefügt oder entfernt wurde. | |
ticket.restore | Sie erhalten eine Benachrichtigung, wenn ein gelöschtes Ticket wiederhergestellt wird. | |
ticket.merge | Sie erhalten eine Benachrichtigung, wenn ein Ticket mit einem anderen zusammengeführt wird. | |
product.creation | e-commerce | Sie erhalten eine Benachrichtigung, wenn ein Produkt im Account eines Kunden erstellt wird. |
product.deletion | Sie erhalten eine Benachrichtigung, wenn ein Produkt im Account eines Kunden gelöscht wird. | |
product.restore | Sie erhalten eine Benachrichtigung, wenn ein gelöschtes Produkt wiederhergestellt wird. | |
product.merge | Sie erhalten eine Benachrichtigung, wenn ein Produkt mit einem anderen zusammengeführt wird. | |
product.propertyChange | Sie erhalten eine Benachrichtigung, wenn ein bestimmtes Produkt für ein beliebiges Produkt im Account eines Kunden geändert wird. | |
line_item.creation | Sie erhalten eine Benachrichtigung, wenn ein Artikel im Account eines Kunden erstellt wird. | |
line_item.deletion | Sie erhalten eine Benachrichtigung, wenn ein Artikel im Account eines Kunden gelöscht wird. | |
line_item.associationChange | Sie erhalten eine Benachrichtigung, wenn bei einem Produkt/Artikel eine Zuordnung zwischen sich und einem anderen unterstützten Webhook-Objekt (Kontakt, Unternehmen, Deal, Ticket, Einzelposten oder Produkt) hinzugefügt oder entfernt wurde. | |
line_item.restore | Sie erhalten eine Benachrichtigung, wenn ein gelöschter Artikel wiederhergestellt wird. | |
line_item.merge | Sie erhalten eine Benachrichtigung, wenn ein Artikel mit einem anderen zusammengeführt wird. | |
line_item.propertyChange | Sie erhalten eine Benachrichtigung, wenn eine bestimmte Eigenschaft für einen Artikel im Account eines Kunden geändert wird. |
Abonnementtyp | Bereich | Beschreibung |
---|---|---|
conversation.creation | conversations.read | Sie erhalten eine Benachrichtigung, wenn ein neuer Thread in einem Account erstellt wird. |
conversation.deletion | Sie erhalten eine Benachrichtigung, wenn ein Thread in einem Account archiviert oder vorläufig gelöscht wird. | |
conversation.privacyDeletion | Sie erhalten eine Benachrichtigung, wenn ein Thread in einem Account dauerhaft gelöscht wird. | |
conversation.propertyChange | Sie erhalten eine Benachrichtigung, wenn eine Eigenschaft in einem Thread geändert wurde. | |
conversation.newMessage | Sie erhalten eine Benachrichtigung, wenn eine neue Nachricht in einem Thread empfangen wurde. |
num_unique_conversion_events
hs_lastmodifieddate
assignedTo
: Der Konversationsthread wurde neu zugewiesen oder nicht zugewiesen. Wenn der Thread neu zugewiesen wurde, ist der propertyValue
eine 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 der propertyValue
entweder OPEN
oder CLOSED
.isArchived
: Der Konversationsthread wurde wiederhergestellt. Der propertyValue
in der Webhooks-Payload ist immer FALSE
.Feld | Description |
---|---|
id | Eine Nummer, die die eindeutige ID eines Abonnements darstellt. |
createdAt | Der Zeitpunkt in Millisekunden, zu dem dieses Abonnement erstellt wurde. |
createdBy | Die Benutzer-ID, die dem Benutzer zugeordnet ist, der das Abonnement erstellt hat. |
active | Dies zeigt an, ob das Abonnement aktiviert ist und aktiv Benachrichtigungen auslöst. Der Wert kann true oder false sein. |
eventType | Der Typ des Abonnements. Die Tabelle am Anfang dieses Abschnitts enthält die verfügbaren Abonnementtypen. |
propertyName | Der Name der Eigenschaft, für die das Abonnement auf Änderungen überwacht. Dies wird nur für Abonnementtypen für Eigenschaftsänderungen benötigt. |
GET
-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:
POST
-Anfrage an webhooks/v3/{appId}/subscriptions
durch.
Im Anfragetext können Sie die folgenden Felder einfügen:
Feld | Description |
---|---|
eventType | Der Typ des Abonnements. |
propertyName | Der Name der Eigenschaft, für die das Abonnement auf Änderungen überwacht. Dies wird nur für Abonnementtypen für Eigenschaftsänderungen benötigt. |
active | Dies zeigt an, ob das Abonnement aktiviert ist und aktiv Benachrichtigungen auslöst. Der Wert kann true oder false sein. |
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.
PUT
-Anfrage an webhooks/v3/{appId}/subscriptions/{subscriptionId}
durch.
Schließen Sie im Anfragetext Folgendes ein:
Feld | Description |
---|---|
active | Dies zeigt an, ob das Abonnement aktiviert ist und aktiv Benachrichtigungen auslöst. Der Wert kann true oder false sein. |
DELETE
-Anfrage an webhooks/v3/{appId}/subscriptions/{subscriptionId}
durch.
POST
-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.
Feld | Description |
---|---|
objectId | Die ID des Objekts, das erstellt, geändert oder gelöscht wurde. Bei Kontakten ist das die Kontakt-ID, bei Unternehmen die Unternehmens-ID, bei Deals die Deal-ID, und bei Konversationen die Thread-ID. |
propertyName | Dies wird nur für Eigenschaftsänderungsabonnements gesendet und ist der Name der Eigenschaft, die geändert wurde. |
propertyValue | Dies wird nur für Eigenschaftsänderungsabonnements gesendet und stellt den neuen Wert dar, der für die Eigenschaft festgelegt ist, die die Benachrichtigung ausgelöst hat. |
changeSource | Die Quelle der Änderung. Dies kann eine der Änderungsquellen sein, die in Verläufen von Kontakteigenschaften angezeigt werden. |
eventId | Die ID des Events, das diese Benachrichtigung ausgelöst hat. Es ist nicht gewährleistet, dass dieser Wert eindeutig ist. |
subscriptionId | Die ID des Abonnements, das eine Benachrichtigung über das Event ausgelöst hat. |
portalId | Die HubSpot-Account-ID des Kunden, in der das Event aufgetreten ist. |
appId | Die ID Ihrer Anwendung. Dies wird in Fällen verwendet, wenn Sie mehrere Anwendungen haben, die auf dieselbe Webhook-URL verwiesen. |
occurredAt | Wann dieses Event aufgetreten ist, als Millisekunden-Zeitstempel. |
eventType | Der Typ des Events, für das diese Benachrichtigung ist. Überprüfen Sie dazu die Liste der unterstützten Abonnementtypen oben im Abschnitt zu Webhooks-Abonnements. |
attemptNumber | Beginnend mit 0, der wievielte Versuch dies ist, Ihren Service über dieses Event zu benachrichtigen. Wenn Ihr Service eine Zeitüberschreitung oder wie unter Erneute Versuche unten beschriebenen eine Fehlermeldung verursacht, versucht HubSpot, die Benachrichtigung erneut zu senden. |
messageId | Dies wird nur angezeigt, wenn ein Webhook auf neue Nachrichten zu einem Thread überwacht. Es ist die ID der neuen Nachricht. |
messageType | Dies wird nur angezeigt, wenn ein Webhook auf neue Nachrichten zu einem Thread überwacht. Es stellt den Typ der Nachricht dar, die Sie senden. Dieser Wert kann entweder MESSAGE oder COMMENT sein. |
Feld | Description |
---|---|
primaryObjectId | Die ID des Gewinners der Zusammenführung, also des Datensatzes, der nach der Zusammenführung verbleibt. Auf der HubSpot-Benutzeroberfläche für das Zusammenführen ist dies der Datensatz auf der rechten Seite. |
mergedObjectIds | Ein Array von IDs, die die Datensätze darstellen, die mit dem Zusammenführungsgewinner zusammengeführt werden. Auf der HubSpot-Benutzeroberfläche für das Zusammenführen ist dies der Datensatz auf der linken Seite. |
newObjectId | Die ID des Datensatzes, der als Ergebnis der Zusammenführung erstellt wird. Dies ist getrennt von primaryObjectId , da in einigen Fällen aufgrund der Zusammenführung ein neuer Datensatz erstellt wird. |
numberOfPropertiesMoved | Eine Ganzzahl, die angibt, wie viele Eigenschaften während der Zusammenführung übertragen wurden. |
Feld | Description |
---|---|
associationType | Der Typ der Zuordnung. Folgende Typen gibt es:
|
fromObjectId | Die ID des Datensatzes, von dem aus die Zuordnungsänderung vorgenommen wurde. |
toObjectId | Die ID des sekundären Datensatzes im Zuordnungs-Event. |
associationRemoved | Ein boolescher Wert, der Folgendes darstellt:
|
isPrimaryAssociation | Ein boolescher Wert, der Folgendes darstellt:
|
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.
contact.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:
X-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.
POST
Anfragen, 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: