Letzte Änderung: 7. Oktober 2025
Mit der Videokonferenz-API können Sie eine öffentliche App konfigurieren, um HubSpot-Benutzern die Möglichkeit zu geben, beim Erstellen eines Meetings einen Videokonferenzlink hinzuzufügen, ähnlich der Google Meet- und Zoom-Integration. Die Verwendung dieser API umfasst:
- Einrichten Ihrer öffentlichen App mit Videokonferenz-Erweiterung-Webhooks. Sie konfigurieren Ihre App mit den URIs, die HubSpot verwendet, um Sie zu benachrichtigen, wenn Meetings erstellt, aktualisiert oder gelöscht werden.
- Einrichten eines benutzerdefinierten Backends, um die Erstellung von Meetings und die Aktualisierung von Webhooks zu verarbeiten.
- Bei Bedarf Einrichten Ihres Backends für die Verarbeitung von Webhooks zur Verifizierung der Benutzeridentifikation ein.
Alle Anfragen an die Videokonferenz-API müssen mit dem Entwickler-API-Schlüssel Ihres Entwickler-Accounts authentifiziert werden. Sie können den Schlüssel in einen hapikey
-Abfrageparameter am Ende der Anfrage-URL einfügen. Sie finden Ihren Entwickler-API-Schlüssel in Ihrem Entwickler-Account.
Voraussetzungen
Bevor Sie loslegen, stellen Sie sicher, dass Sie einen Entwickler-Account und eine öffentliche App darin erstellt haben.
Webhook-URLs konfigurieren
Damit HubSpot weiß, wohin Benachrichtigungen gesendet werden sollen, wenn Meetings erstellt, aktualisiert oder gelöscht werden, müssen Sie zunächst die Webhook-URLs der Erweiterung konfigurieren.
Führen Sie dazu eine PUT
-Anfrage an /crm/v3/extensions/videoconferencing/settings/{appId}?hapikey=YOUR_HUBSPOT_DEVELOPER_API_KEY
durch.
Im Anfragetext müssen Sie das createMeetingUrl
-Feld zum Festlegen der URL einfügen, an die HubSpot Meeting-Erstellung-Webhook-Payloads sendet. Sie können optional zusätzliche Webhook-URLs hinzufügen. Diese Werte können später mithilfe derselben Anfrage-URL aktualisiert werden.
// Example request
{
"createMeetingUrl": "https://example.com/create-meeting",
"updateMeetingUrl": "https://example.com/update-meeting",
"deleteMeetingUrl": "https://example.com/delete-meeting"
}
Feld | Typ | Beschreibung |
---|
createMeetingUrl | Zeichenfolge | Die URL, die HubSpot benachrichtigt, wenn ein neues Meeting erstellt wurde. Dies enthält eine JSON-Payload mit den Meeting-Details. Die URL muss das https -Protokoll verwenden. |
updateMeetingUrl | Zeichenfolge | Die URL, die HubSpot benachrichtigt, wenn ein vorhandenes Meeting aktualisiert wurde. Dies enthält eine JSON-Payload mit den aktualisierten Meeting-Details. Die URL muss das https -Protokoll verwenden. |
deleteMeetingUrl | Zeichenfolge | Die URL, die HubSpot benachrichtigt, wenn ein vorhandenes Meeting gelöscht wurde. Dazu gehört auch eine conferenceId des gelöschten Meetings. Die URL muss das https -Protokoll verwenden. |
userVerifyUrl | Zeichenfolge | Die URL, mit der HubSpot überprüft, ob der Benutzer im externen Videokonferenzsystem anwesend ist. |
Beispielantwort:
// Example 200 response
{
"createMeetingUrl": "https://example.com/create-meeting",
"updateMeetingUrl": "https://example.com/update-meeting",
"deleteMeetingUrl": "https://example.com/delete-meeting"
}
Webhook-URLs abrufen
Um Webhook-URLs abzurufen, die für eine vorhandene App konfiguriert sind, führen Sie eine GET
-Anfrage an /crm/v3/extensions/videoconferencing/settings/{appId}
durch.
Die Antwort enthält die aktuell konfigurierten Webhook-URLs.
// Example 200 response
{
"createMeetingUrl": "https://example.com/create-meeting",
"updateMeetingUrl": "https://example.com/update- meeting",
"deleteMeetingUrl": "https://example.com/delete-meeting",
"userVerifyUrl": "https://example.com/user-verify"
}
Webhook-Payloads
Sobald die Webhook-URLs konfiguriert sind, sendet HubSpot Payloads an diese URLs, wenn ein Event zum Erstellen, Aktualisieren oder Löschen eines Meetings stattfindet.
Alle von HubSpot gesendeten Webhooks sind mit HMAC unter Verwendung des Geheimnisses Ihrer App signiert. Weitere Informationen hierzu finden Sie in der Webhooks-Sicherheitsdokumentation (der Rest der Seite gilt nicht für Webhooks für diese Videokonferenz-Erweiterung).
„Meeting erstellen“-Webhook
Wenn ein Meeting erstellt wird, sendet HubSpot eine Anfrage an die URL, die im createMeetingUrl
-Feld angegeben ist. Die Anfrage-Payload enthält Informationen über den HubSpot-Account, zugeordnete HubSpot-Benutzer und Meeting-Details.
// Example payload
{
"portalId": 123123,
"userId": 123,
"userEmail": "test.user@example.com",
"topic": "A Test Meeting",
"source": "MEETINGS",
"startTime": 1534197600000,
"endTime": 1534201200000
}
Feld | Typ | Beschreibung |
---|
portalId | Zahl | Die ID der HubSpot-Account, von der die Anfrage kommt. |
userId | Zahl | Die ID des HubSpot-Benutzers, der dem Meeting zugewiesen ist. |
userEmail | Zeichenfolge | Die E-Mail-Adresse des HubSpot-Benutzers, der dem Meeting zugewiesen ist. |
topic | Zeichenfolge | Der Titel des Meetings. |
source | Zeichenfolge | Gibt an, wo das Meeting erstellt wurde. Kann eines sein von:MEETINGS : Das Meeting wurde über eine Terminplanungsseite erstellt.MANUAL : Das Meeting wurde manuell von einem CRM-Datensatz aus erstellt.
|
startTime | Zahl | Die Startzeit des Meetings in Epoche-Millisekunden. |
endTime | Zahl | Die Endzeit des Meetings in Epoche-Millisekunden. |
Um diesen Webhook erfolgreich zu verarbeiten, sollten Sie eine Videokonferenz für dieses Meeting erstellen (oder es mit einer bestehenden Konferenz verlinken) und mit Informationen zu dieser Konferenz antworten. Die in der Antwort erwarteten Felder sind:
conferenceId
: eine eindeutige ID, die der Konferenz in diesem Event zugeordnet ist.
Diese ID muss in Ihrem gesamten System eindeutig sein. HubSpot gibt diese ID zurück
im Aktualisieren-Webhook an Sie zurück.
conferenceUrl:
die URL, über die Benutzer der Konferenz beitreten können.
conferenceDetails
: Einladungsinformationen, nur Text. Sollte beschreiben,
wie Teilnehmer des Ereignisses auf die Videokonferenz
für dieses Ereignis zugreifen können. Neue Zeilen werden in Darstellungen dieses Texts beibehalten, andere Formatierungen werden jedoch nicht unterstützt.
Ihre Antwort könnte zum Beispiel wie folgt aussehen:
//example response
{
"conferenceId": "some-unique-id",
"conferenceUrl": "https://example.com/join",
"conferenceDetails": "Click here to join: https://example.com/join"
}
„Meeting aktualisieren“-Webhook
Wenn Sie updateMeetingUrl
spezifiziert haben, sendet HubSpot dieser URI immer dann ein Anfrage, wenn sich meetingrelevante Details geändert haben. Diese Benachrichtigung ist notwendig, wenn Sie das aktuelle Thema oder die aktuellen Zeiten für eine Videokonferenz pflegen müssen. Die Anfrage-Payload enthält Informationen über den HubSpot-Account, zugeordnete HubSpot-Benutzer und Meeting-Details.
//example request
{
"conferenceId": "some-unique-id",
"userId": 123,
"userEmail": "test.user@example.com",
"portalId": 123123,
"topic": "A Test Meeting (updated)",
"startTime": 1534197600000,
"endTime": 1534201200000
}
Feld | Typ | Beschreibung |
---|
conferenceId | Zeichenfolge | Die eindeutige ID für die Konferenz, die von Ihrer Integration in der Antwort auf den „Meeting erstellen“-Webhook bereitgestellt wird. |
userId | Zahl | Die ID des HubSpot-Benutzers, der dem Meeting zugewiesen ist. Dies ist immer derselbe Benutzer wie der in der Meeting-Erstellung-Payload. |
userEmail | Zeichenfolge | Die E-Mail-Adresse des HubSpot-Benutzers, der dem Meeting zugewiesen ist. Dies ist immer derselbe Benutzer wie der in der Meeting-Erstellung-Payload. |
portalId | Zahl | Die ID der HubSpot-Account, von der die Anfrage kommt. |
topic | Zeichenfolge | Der Titel des Meetings. |
startTime | Zahl | Die Startzeit des Meetings in Epoche-Millisekunden. |
endTime | Zahl | Die Endzeit des Meetings in Epoche-Millisekunden. |
Wenn Sie auf diese Anfragen antworten, ist ein „No response“-Text erforderlich. Es ist nur ein 200
- oder 204
-Antwortcode notwendig, damit HubSpot weiß, dass dieser Webhook erfolgreich empfangen wurde.
„Meeting gelöscht“-Webhook
Wenn ein Meeting in HubSpot gelöscht wird, wird eine Anfrage an die im deleteMeetingUrl
-Feld angegebene URL gesendet. Die Payload enthält die conferenceId
des gelöschten Meetings.
// Example payload
{
"conferenceId": "some-unique-id"
}
Wenn Sie auf diese Anfragen antworten, ist ein „No response“-Text erforderlich. Es ist nur ein 200
- oder 204
-Antwortcode notwendig, damit HubSpot weiß, dass dieser Webhook erfolgreich empfangen wurde.
Benutzerverifizierung-Webhook
Die Systeme von HubSpot kommunizieren ständig Informationen über die Benutzer, z. B. die HubSpot-ID und die E-Mail-Adresse des HubSpot-Accounts. Es besteht die Möglichkeit, dass ein Benutzer im System von HubSpot in Ihrem System mit einer anderen E-Mail-Adresse oder einer anderen ID vorhanden ist.
Bevor HubSpot einen Aufruf an Ihr System startet, um einen Videokonferenzlink zu erstellen, zu aktualisieren oder zu löschen, werden zunächst die Einstellungen der App für ein userVerifyUrl
-Feld überprüft. Wenn diese URL festgelegt wurde, nimmt HubSpot eine Aufruf vor, um Ihre native Benutzer-ID abzurufen. Anschließend sendet sie diese ID als E-Mail-Adresse des Benutzers im nachfolgenden Aufruf. Wenn Sie diese URL nicht konfigurieren, gehen HubSpot immer davon aus, dass die Identität des Benutzers verifiziert ist.
Diese Einstellung ist optional und Sie können selbst entscheiden, ob sie erforderlich ist. Wenn Sie eine Benutzerzuordnung in Ihrem System beibehalten möchten, können Sie möglicherweise die HubSpot-Benutzer-ID oder E-Mail an Ihre interne Benutzer-ID in jedem Aufruf zuordnen.
Die Payload für diese Webhook enthält die HubSpot-Account-ID und die E-Mail-Adresse des Benutzers.
//example request
{
"portalId": 123123,
"userEmail": "test.user@example.com"
}
Sie können eine 200
-Antwort oder einen beliebigen Fehlercode (z. B. wäre 404
passend) zurückgeben. Bei einem 200
-Fehlercode sollten Sie eine Payload mit der neuen ID zurückgeben, die wir anstelle der E-Mail-Adresse verwenden sollen:
//example response
{
"id": "any-string-id"
}