Letzte Änderung: 28. August 2025
Mit dem SDK für Calling-Erweiterungen können Apps HubSpot-Benutzern direkt von einem CRM-Datensatz aus eine benutzerdefinierte Calling-Option zur Verfügung stellen, ähnlich wie bei dem von HubSpot bereitgestellten Tool Calling. Wenn ein Benutzer mit Ihrer App eine Anruf vornimmt, erstellt HubSpot eine Interaktion auf der Aktivitätenchronik des CRM-Datensatzes und tauscht dann Daten mit Ihrer App aus, um die Details einzupflegen.
Eine Calling-Erweiterung besteht aus drei Hauptelementen:
- Das SDK für Calling-Erweiterungen, ein JavaScript-SDK, das die Kommunikation zwischen Ihrer App und HubSpot ermöglicht.
- Die Anrufeinstellungen-Endpunkte, die verwendet werden, um die Anrufeinstellungen für Ihre App festzulegen. Jeder HubSpot-Account, der mit Ihrer App verknüpft wird, verwendet diese Einstellungen.
- Das Calling-iframe, in dem Ihre App für HubSpot-Benutzer angezeigt und mit den Anrufeinstellungen konfiguriert wird.
Hinweis:
Die folgende Dokumentation behandelt ausgehende Anrufe über das SDK. Erfahren Sie mehr über die Verwendung des SDK zum Empfangen eingehender Anrufe (BETA-Version).Die Demo-Anruf-App ausführen
Sie können das SDK für Calling-Erweiterungen mit zwei verschiedenen Demo-Apps testen:- Die demo-minimal-js bietet eine minimale Implementierung des SDK mit JavaScript, HTML und CSS. Zeigen Sie an, wie das SDK in index.js instanziiert wird.
- Die demo-react-ts bietet eine praktische Implementierung des SDK mit React, TypeScript und Styled Components, um als Blaupause für Ihre App zu fungieren. Zeigen Sie an, wie das SDK in useCti.ts instanziiert wird.
Hinweis:
Diese Demo-Apps sind keine voll funktionsfähigen Anruf-Apps und verwenden Scheindaten, um ein realistischeres Erlebnis zu bieten.Die Demo-Anruf-App installieren
Sie können die Demo-Apps mit oder ohne Installation ausführen. So installieren Sie die Demo in Ihrer lokalen Umgebung:- Installieren Sie Node.js in Ihrer Umgebung.
- Klonen Sie die ZIP-Datei dieses Repositorys, spalten Sie sie ab oder laden Sie sie herunter.
- Öffnen Sie Ihren Terminal und wechseln Sie zum Stammverzeichnis des Projekts.
-
Führen Sie einen der folgenden Befehle aus:
- Für
demo-minimal-js
:
- Für
- Für
demo-react-ts
:
Hinweis:
Der Befehlnpm start
öffnet automatisch eine neue Registerkarte in Ihrem Browser unter https://localhost:9025/, und Sie müssen möglicherweise eine Warnung vom Typ „Ihre Verbindung ist nicht sicher“ umgehen, um auf die Anwendung zugreifen zu können.Die Demo-Anruf-App von HubSpot aus starten
- Gehen Sie zu Ihren Datensätzen:
- Kontakte: Gehen Sie in Ihrem HubSpot-Account zu Kontakte > Kontakte.
- Unternehmen: Gehen Sie in Ihrem HubSpot-Account zu Kontakte > Unternehmen.
- Öffnen Sie die Entwicklerkonsole Ihres Browsers und führen Sie den folgenden Befehl aus:
- Wenn Sie die Installationsschritte abgeschlossen haben, für
demo-minimal-js
oderdemo-react-ts
:
- Wenn Sie die Installationsschritte abgeschlossen haben, für
- Wenn Sie die Installationsschritte übersprungen haben:
- Für
demo-minimal-js
:
- Für
- Für
demo-react-ts
:
- Aktualisieren Sie die Seite und klicken Sie auf das Telefon-Symbol in der linken Seitenleiste. Klicken Sie auf das Dropdown-Menü Anrufen über und wählen Sie den Namen der Demo-App aus Schritt 2 aus (z. B. Demo-App Local, Demo-App JS, Demo-App React).

- Klicken Sie auf Anrufen, um zu sehen, wie sich die Demo-App über das SDK für Calling-Erweiterungen in HubSpot integrieren lässt. Sie können auch die Events anzeigen, die in der Entwicklerkonsole Ihres Browsers protokolliert werden.

Das SDK für Calling-Erweiterungen in Ihrer Anruf-App installieren
So fügen Sie das SDK für Calling-Erweiterungen als Node.js-Abhängigkeit zu Ihrer Anruf-App hinzu:- Führen Sie für npm Folgendes aus:
- Führen Sie für yarn Folgendes aus:
SDK für Calling-Erweiterungen verwenden
Das SDK für Calling-Erweiterungen stellt eine einfache API für HubSpot und eine Anruf-App zum Austausch von Nachrichten bereit. Die Nachrichten werden über Methoden gesendet, die vom SDK bereitgestellt werden, und übereventHandlers
empfangen. Eine vollständige Liste der verfügbaren Events finden Sie im Abschnitt „Events“.
Im Folgenden werden die Events beschrieben:
- Nummer wählen: HubSpot sendet das Nummer-wählen-Event.
- Ausgehender Anruf gestartet: Die App benachrichtigt HubSpot, wenn der Anruf gestartet wird.
- Interaktion erstellen: HubSpot erstellt eine Anrufinteraktion mit minimalen Informationen, wenn dies von der App angefordert wird.
- Interaktion erstellt: HubSpot hat eine Interaktion erstellt.
- Interaktions-ID an App gesendet: HubSpot sendet die
engagementId
an die App. - Anruf beendet: Die App benachrichtigt, wenn der Anruf beendet ist.
- Anruf abgeschlossen: Die App benachrichtigt, wenn der Benutzer mit dem App-Nutzerlebnis fertig ist.
- Interaktion aktualisieren: Die App ruft die Interaktion anhand der
engagementId
ab und führt dann eine Zusammenführung durch und aktualisiert die Interaktion mit zusätzlichen Anrufdetails. Erfahren Sie mehr über das Aktualisieren einer Anrufinteraktion über die APIoder über das SDK.
CallingExtensions
-Objekts. Sie können das Verhalten Ihrer Erweiterung definieren, indem Sie das Objekt einer Option angeben, wenn Sie Ihre Erweiterungeninstanz erstellen. Das Objekt dieser Option stellt ein eventHandlers
-Feld bereit, in dem Sie das Verhalten Ihrer Erweiterung angeben können. Der folgende Code-Block veranschaulicht die verfügbaren Optionen und Event-Handler, die Sie definieren können:
Ihre App testen
Um den Calling-Erweiterungen-iFrame für Endbenutzer zu starten, benötigt HubSpot die folgenden iFrame-Parameter.Mithilfe des Anrufeinstellungen-Endpunkts
Senden Sie mit Ihrem API-Tool (z. B. Postman) die folgende Payload an die Einstellungen-API von HubSpot. Stellen Sie sicher, dass Sie die APP_ID Ihrer Anruf-App und Ihrer App abrufen DEVELOPER_ACCOUNT_API_KEY.Hinweis:
DasisReady
-Flag zeigt an, ob die App für die Produktion bereit ist. Dieses Flag sollte während des Testens auf false
festlegt sein.Ihre Erweiterungseinstellungen mit localStorage überschreiben
Sie können jede Ihrer Erweiterungseinstellungen zu Testzwecken außer Kraft setzen. Öffnen Sie Ihre Browser-Entwicklerkonsole über eine HubSpot-Registerkarte, bearbeiten Sie die folgenden Einstellungen und führen Sie den Befehl aus:Ihre App für die Produktion vorbereiten
Nachdem Sie Ihre App-Einstellungen mithilfe des Endpunkts der Calling-Einstellungen festgelegt haben, verwenden Sie den PATCH-Endpunkt, umisReady
in „true“ zu ändern.
Ihre Anruf-App im HubSpot Marketplace veröffentlichen
Sobald Ihre App eingerichtet ist, können Benutzer sie über die Installations-URL der App in ihrem Account installieren. Wenn Sie sie öffentlich auflisten möchten, damit andere HubSpot-Benutzer in der Lage sind, sie zu finden, können Sie sie auch auf dem HubSpot App-Marketplace anbieten. Dies ist nicht notwendig, wenn die App nur für den internen Gebrauch bestimmt ist.Events
Verfügbare Anruf-Events:Senden von Nachrichten an HubSpot
Dasextensions
-Objekt stellt die folgenden Event-Handler bereit, die Sie aufrufen können, um Nachrichten an HubSpot zu senden oder ein anderes zugeordnetes Verhalten anzugeben. Siehe folgende Beispiele.
Erforderlich: initialized
Sendet eine Nachricht, die anzeigt, dass das Softphone für die Interaktion bereit ist.Eigenschaft | Typ | Beschreibung |
---|---|---|
isLoggedIn | Boolescher Wert | Überprüft, ob ein Benutzer angemeldet ist oder nicht. |
engagementId | Zahl | Eine von HubSpot erstellte Interaktion-ID |
isAvailable | Anzahl | Prüft, ob ein Benutzer verfügbar ist oder nicht. |
userAvailable
Sendet eine Nachricht, dass der Benutzer verfügbar ist.userUnavailable
Sendet eine Nachricht, dass der Benutzer nicht verfügbar ist.userLoggedIn
Sendet eine Nachricht, dass sich der Benutzer angemeldet hat.userLoggedOut
Sendet eine Meldung, dass sich der Benutzer abgemeldet hat.incomingCall
Sendet eine Nachricht, um HubSpot zu informieren, dass ein eingehender Anruf gestartet wurde.Eigenschaft | Typ | Beschreibung |
---|---|---|
externalCallId | Zeichenfolge | Eine Anruf-App hat eine Anruf-ID erstellt; Wird verwendet, um Anrufe im Helpdesk zu aktivieren. |
callStartTime | Zahl | Startzeit des Aufrufs in Millisekunden. |
createEngagement | Boolescher Wert | Ob HubSpot eine Interaktion für diesen Anruf erstellen soll oder nicht. Wenn true, antwortet HubSpot mit onCreateEngagementSucceeded oder onCreateEngagementFailed. |
fromNumber | Zeichenfolge | Die Nummer des Anrufers. Erforderlicher Parameter |
toNumber | Zeichenfolge | Die Telefonnummer des Empfängers. |
outgoingCall
Sendet eine Nachricht, um HubSpot zu informieren, dass ein ausgehender Anruf gestartet wurde.Eigenschaft | Typ | Beschreibung |
---|---|---|
callStartTime | Zahl | Startzeit des Aufrufs in Millisekunden. |
createEngagement | Boolescher Wert | Ob HubSpot eine Interaktion für diesen Anruf erstellen soll oder nicht. Wenn true, antwortet HubSpot mit onCreateEngagementSucceeded oder onCreateEngagementFailed. |
toNumber | Zeichenfolge | Die Telefonnummer des Empfängers. |
fromNumber | Zeichenfolge | Die Nummer des Anrufers. Erforderlicher Parameter |
dialingContext | Objekt: | Der Wählkontext wird ggf. für die Erstellung von Tickets und/oder Interaktionen verwendet. Das Objekt enthält alle Eigenschaften der onDialNumber -Payload. Diese Eigenschaft trägt zur Gewährleistung der Datenkonsistenz bei, indem der vollständige Wählkontext zwischen HubSpot und Ihrer Drittanbieter-App zurückgegeben wird. |
callAnswered
Sendet eine Nachricht, um HubSpot zu informieren, dass ein ausgehender Anruf angenommen wird.Eigenschaft | Typ | Beschreibung |
---|---|---|
externalCallId | Zeichenfolge | Eine Anruf-App hat eine Anruf-ID erstellt; Wird verwendet, um Anrufe im Helpdesk zu aktivieren. |
callEnded
Sendet eine Nachricht, um HubSpot zu informieren, dass der Anruf beendet ist.Eigenschaft | Typ | Beschreibung |
---|---|---|
externalCallId | Zeichenfolge | Eine Anruf-App hat eine Anruf-ID erstellt; Wird verwendet, um Anrufe im Helpdesk zu aktivieren. |
engagementId | Zahl | Eine von HubSpot erstellte Interaktion-ID |
callEndStatus | Aufzählung | Der Status des Anrufs nach Beendigung des Anrufs. Verfügbare Status:
|
callCompleted
Sendet eine Nachricht, um HubSpot zu informieren, dass der Anruf abgeschlossen ist. Für Interaktionseigenschaften ist HubSpot zuständig, d h., sie müssen nicht mehr manuell erstellt oder aktualisiert werden (siehe Hervorhebung).Hinweis:
DiehideWidget
-Eigenschaft wird ignoriert, wenn sich der Benutzer in einer Aufgabenwarteschlange mit dem Aufgabentyp Call
befindet.Eigenschaft | Typ | Beschreibung |
---|---|---|
engagementId | Zahl | Eine von HubSpot erstellte Interaktion-ID |
hideWidget | Boolescher Wert | Gibt an, ob das Widget ausgeblendet werden soll, wenn der Anruf beendet wird. Optionaler Parameter. Die Standardeinstellung ist true. |
engagementProperties | Zeichenfolge | Melden Sie sich per Opt-in für HubSpot-Interaktionen an, indem Sie Eigenschaften hinzufügen. Bewirkt, dass HubSpot mit onUpdateEngagementSucceeded oder onUpdateEngagementFailed antwortet. |
externalCallId | Zeichenfolge | Eine Anruf-App hat eine Anruf-ID erstellt; Wird verwendet, um Anrufe im Helpdesk zu aktivieren. |
publishToChannel
Veröffentlicht den Anruf in einem verknüpften Kanal. Dies ist nicht für HubSpot-eigene Interaktionen erforderlich.Eigenschaft | Typ | Beschreibung |
---|---|---|
externalCallId | Zeichenfolge | Eine Anruf-App hat eine Anruf-ID erstellt; Wird verwendet, um Anrufe im Helpdesk zu aktivieren. |
engagementId | Zahl | Eine von HubSpot erstellte Interaktion-ID |
navigateToRecord
Dieses Event wird beim Navigieren zu einem Eintrag aufgerufen.Eigenschaft | Typ | Beschreibung |
---|---|---|
engagementId | Zahl | Eine von HubSpot erstellte Interaktion-ID |
objectCoordinates | Objektkoordinaten | verweisen auf portalId , objectId und objectTypeID . |
sendError
Sendet eine Nachricht, um HubSpot zu informieren, dass in der Anruf-App ein Fehler aufgetreten ist.Eigenschaft | Typ | Beschreibung |
---|---|---|
message | Zeichenfolge | Fehlermeldung, die im Warnungs-Pop-up angezeigt wird. |
resizeWidget
Sendet eine Nachricht, um HubSpot darüber zu informieren, dass die Größe der Anruf-App geändert werden muss.Eigenschaft | Typ | Beschreibung |
---|---|---|
height | Zahl | Gewünschte Höhe des Anruf-Widgets. |
width | Zahl | Gewünschte Breite der Anruf-Widgets. |
Nachrichten von HubSpot empfangen
Dasextensions
-Objekt stellt die folgenden Event-Handler bereit, die Sie aufrufen können, um Nachrichten in HubSpot zu empfangen oder um ein anderes zugeordnetes Verhalten anzugeben. Siehe folgende Beispiele.
onReady
Nachricht, die angibt, dass HubSpot bereit ist, Nachrichten zu empfangen.Eigenschaft | Typ | Beschreibung |
---|---|---|
engagementId | Zahl | Eine von HubSpot erstellte Interaktion-ID |
iframeLocation | Aufzählung | widget : Das Drag-&-Drop-Widget wird auf Eintrag-Seiten angezeigt, wenn die Calling-App Inbound-Calling nicht unterstützt.remote : Rahmen in der Navigationsleiste erscheint, wenn die Calling-App Inbound-Calling unterstützt.window : iframe im Calling-Fenster wird angezeigt, wenn die Calling-App Inbound-Calling unterstützt. |
ownerId | Zeichenfolge oder Nummer | Die ID des angemeldeten Benutzers in HubSpot |
PortalId | Zahl | Die ID des HubSpot-Accounts |
userId | Zahl | Die ID des HubSpot-Nutzers |
onDialNumber
Dieses Event wird ausgelöst, wenn ein Benutzer in HubSpot einen ausgehenden Anruf auslöst. DasonDialNumber
-Event stellt eine Payload bereit, die alle relevanten Felder enthält, die dem Anruf zugeordnet sind. Diese Felder sind in der folgenden Tabelle aufgeführt:
Eigenschaft | Typ | Beschreibung |
---|---|---|
phoneNumber | Zeichenfolge | Die Telefonnummer der Person, die der HubSpot-Benutzer angerufen hat |
ownerId | Zeichenfolge oder Nummer | Die ID des angemeldeten Benutzers (in HubSpot) |
subjectId | Zahl | Die ID des Betreffs |
objectId | Zahl | Objekttyp der Telefonnummer |
objectType | Zeichenfolge | Der Objekttyp, der der gewählten Telefonnummer zugeordnet ist (z. B. die Telefonnummer des Kontakts oder Unternehmens); Die möglichen Werte hier sind "CONTACT" oder "COMPANY" . |
portalId | Zahl | Die ID des HubSpot-Portals |
countryCode | Zeichenfolge | Die Landesvorwahl der Telefonnummer |
calleeInfo | Array | Informationen über den Angerufenen; Diese sollten Folgendes enthalten:
|
startTimestamp | Zahl | Zeitstempel des Beginns des Anrufs |
toPhoneNumberSrc | Zeichenfolge | Der Name der Telefonnummern’ -Eigenschaf in HubSpot. Bei der Eigenschaft kann es sich um einen Standardwert für eine Eigenschaft oder eine benutzerdefinierte Eigenschaft handeln. Ein Kontakt kann beispielsweise über drei Kontakttelefonnummern verfügen, von denen eine mit Büro, eine mit Privat und die andere mit Mobil gekennzeichnet ist. |
onEngagementCreated
Veraltet. Verwenden Sie stattdessen onCreateEngagementSucceeded.Eigenschaft | Typ | Beschreibung |
---|---|---|
engagementId | Zahl | Eine von HubSpot erstellte Interaktion-ID |
onCreateEngagementSucceeded
HubSpot sendet eine Nachricht, um den Calling-App-Partner zu informieren, dass die Aktualisierung der Interaktion erfolgreich war.onCreateEngagementFailed
HubSpot sendet eine Nachricht, um den Anruf-App-Partner zu benachrichtigen, dass die Erstellung der Interaktion fehlgeschlagen ist.onNavigateToRecordFailed
Dieses Event wird aufgerufen, wenn beim Navigieren zu einem Eintrag ein Fehler auftritt.Eigenschaft | Typ | Beschreibung |
---|---|---|
engagementId | Zahl | Eine von HubSpot erstellte Interaktion-ID |
objectCoordinates | Objektkoordinaten | verweisen auf portalId , objectId und objectTypeID . |
onPublishToChannelSucceeded
Dieses Event wird aufgerufen, wenn die Veröffentlichung auf einem Kanal erfolgreich ist.Eigenschaft | Typ | Beschreibung |
---|---|---|
engagementId | Zahl | Eine von HubSpot erstellte Interaktion-ID |
externalCallId | Zeichenfolge | Eine Anruf-App hat eine Anruf-ID erstellt; Wird verwendet, um Anrufe im Helpdesk zu aktivieren. |
onPublishToChannelFailed
Dieses Event wird aufgerufen, wenn die Veröffentlichung auf einem Kanal fehlschlägt.Eigenschaft | Typ | Beschreibung |
---|---|---|
engagementId | Zahl | Eine von HubSpot erstellte Interaktion-ID |
externalCallId | Zeichenfolge | Eine Anruf-App hat eine Anruf-ID erstellt; Wird verwendet, um Anrufe im Helpdesk zu aktivieren. |
onCallerIdMatchSucceeded
Dieses Event wird aufgerufen, wenn die Anrufer-ID erfolgreich abgeglichen werden konnte.onCallerIdMatchFailed
Dieses Event wird aufgerufen, wenn der Abgleich der Anrufer-ID fehlschlägt.onVisibilityChanged
Nachricht, die angibt, ob der Benutzer die Anruf-App minimiert oder ausgeblendet hat.defaultEventHandler
Standard-Handler für Events.Anruf-SDK | Häufig gestellte Fragen
Wie wird die Benutzerauthentifizierung gehandhabt?
Die Anruf-App sollte die Authentifizierung handhaben.Werden Calling-Erweiterungen in einem CDN gehostet?
Ja. Sie können das SDK für Calling-Erweiterungen über jsDeliver installieren. Um beispielsweise calling-extensions-sdk @0.2.2 zu installieren, können Sie https://cdn.jsdelivr.net/npm/@hubspot/calling-extensions-sdk@0.2.2/dist/main.js verwenden.Wann sollte eine Interaktion erstellt und wann aktualisiert werden?
Ein Benutzer kann einen Anruf innerhalb der HubSpot-Benutzeroberfläche und außerhalb der HubSpot-Benutzeroberfläche initiieren (z. B. Mobile-App, weitergeleitete Nummer usw.). Wenn ein Anruf von der HubSpot-Benutzeroberfläche aus initiiert wird, erstellt HubSpot eine Anrufinteraktion und sendet die Interaktion an die Anruf-App. Sobald der Anruf beendet ist, kann die Anruf-App diese Interaktion mit zusätzlichen Anrufdetails aktualisieren. Wenn ein Anruf außerhalb der HubSpot-Benutzeroberfläche initiiert wird, sollte die App die Anrufinteraktion erstellen.Welche Bereiche sind als Teil der Integration erforderlich?
Kontakte-hinzufügen- und Chronik-Bereiche sind erforderlich. Diese Bereiche stellen sicher, dass Ihre Anwendung Zugriff auf Kontakte hat und Anrufinteraktionen im CRM erstellen und aktualisieren kann.Kann diese Funktionalität zu einer bereits bestehenden Anwendung im Marketplace hinzugefügt werden oder muss ich eine neue App erstellen?
Wenn Sie bereits über eine bestehende App verfügen, die den Anwendungsfall „Anrufe“ bedient, können Sie diese Funktion direkt zu Ihrer bestehenden App hinzufügen. Alle Kunden, die Ihre App bereits installiert haben, erhalten Zugriff auf diese neue Funktion, ohne die App erneut installieren zu müssen.Kann ich meine vorhandene Softphone-Anwendung in das SDK integrieren?
Ja, die Integration Ihrer vorhandenen Softphone-Anwendung sollte sehr einfach sein. Befolgen Sie einfach die Schritte in der obigen Dokumentation, um Ihre Anwendung einsatzbereit zu machen.Können Benutzer mehrere Integrationen gleichzeitig verwenden?
Ja, Benutzer können mehrere Anrufintegrationen von Drittanbietern gleichzeitig verwenden. Sie können mit dem Provider-Switcher, der nach dem Klicken auf die Anruftaste angezeigt wird, nahtlos zwischen den Anbietern wechseln.Können Benutzer kostenloser Versionen App-Integrationen installieren?
Ja, alle Benutzer können die App installieren.Wenn ein Benutzer meine App bereits installiert hat, wird die Integration automatisch angezeigt?
Ja, wenn ein Benutzer Ihre App bereits installiert hat und Sie dieselbe App mit den Calling-Erweiterungen aktualisieren, wird die Integration automatisch angezeigt. Derzeit gibt es keine Möglichkeit für den Entwickler, die Anruf-App nur für eine Teilmenge von Kunden zu aktivieren.Kann jeder Benutzer eine App installieren oder deinstallieren?
Nein, nur Benutzer mit den erforderlichen Berechtigungen können eine App installieren und deinstallieren. Erfahren Sie mehr darüber, wie Sie die Berechtigungen eines Benutzers überprüfen.Kann ich eine benutzerdefinierte Anrufeigenschaft erstellen?
Ja, Sie können eine benutzerdefinierte Anrufeigenschaft mit der Eigenschaften-API erstellen.Kann ich einen Anruf von einem benutzerdefinierten Objekt aus tätigen?
Ja, Anrufintegrationen können Anrufe von benutzerdefinierten Objekten aus tätigen, solange sie nur das SDK zum Erstellen des Anrufs verwenden. Bei jeder Integration muss überprüft werden, ob sie nur das Anruf-SDK zum Erstellen von Anrufen und zum Benachrichtigen von HubSpot imoutgoingCall
-Event verwenden.
Stellen Sie zunächst sicher, dass die Integration das Anruf-SDK verwendet, um Interaktionen im outgoingCall-Event zu erstellen:
createEngagement
true ist, erfahren Sie hier, wie Sie Ihre App-Informationen aktualisieren.
Hier ist das Beispiel für das gesamte outgoingCall
-Event: