Letzte Änderung: 7. Oktober 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.
Wenn Sie über keine App verfügen, können Sie eine über Ihren HubSpot-Entwickler-Account erstellen. Wenn Sie noch keinen HubSpot-Entwickler-Account haben, können Sie sich hier für einen Account registrieren.
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:
cd demos/demo-minimal-js && npm i && npm start
cd demos/demo-react-ts && npm i && npm start
Diese wechseln zum gewünschten Demo-Verzeichnis, installieren die für das Projekt erforderlichen Node.js-Abhängigkeiten mithilfe des npm CLI und starten die App.
Hinweis:
Der Befehl npm 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
oder demo-react-ts
:
localStorage.setItem('LocalSettings:Calling:installDemoWidget', 'local');
- Wenn Sie die Installationsschritte übersprungen haben:
localStorage.setItem('LocalSettings:Calling:installDemoWidget', 'app:js');
localStorage.setItem('LocalSettings:Calling:installDemoWidget', 'app');
- 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:
npm i --save @hubspot/calling-extensions-sdk
- Führen Sie für yarn Folgendes aus:
yarn add @hubspot/calling-extensions-sdk
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 über eventHandlers
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.
Erstellen Sie zunächst eine Instanz des 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:
import CallingExtensions from "@hubspot/calling-extensions-sdk";
const options = {
/** @property {boolean} debugMode - Whether to log various inbound/outbound debug messages to the console. If false, console.debug will be used instead of console.log */
debugMode: boolean,
// eventHandlers handle inbound messages
eventHandlers: {
onReady: () => {
/* HubSpot is ready to receive messages. */
},
onDialNumber: event => {
/* HubSpot sends a dial number from the contact */
},
onCreateEngagementSucceeded: event => {
/* HubSpot has created an engagement for this call. */
}
onEngagementCreatedFailed: event => {
/* HubSpot has failed to create an engagement for this call. */
}
onUpdateEngagementSucceeded: event => {
/* HubSpot has updated an engagement for this call. */
},
onUpdateEngagementFailed: event => {
/* HubSpot has failed to update an engagement for this call. */
}
onVisibilityChanged: event => {
/* Call widget's visibility is changed. */
}
}
};
const extensions = new CallingExtensions(options);
Ihre App testen
Um den Calling-Erweiterungen-iFrame für Endbenutzer zu starten, benötigt HubSpot die folgenden iFrame-Parameter.
{
name: string /* The name of your calling app to display to users. */,
url: string /* The URL of your calling app, built with the Calling Extensions SDK */,
width: number /* The iFrame's width */,
height: number /* The iFrame's height */,
isReady: boolean /* Whether the widget is ready for production (defaults to true) */,
supportsCustomObjects : true /* Whether calls can be placed from a custom object */
}
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:
Das isReady
-Flag zeigt an, ob die App für die Produktion bereit ist. Dieses Flag sollte während des Testens auf false
festlegt sein.
# Example payload to add the call widget app settings
curl --request POST \
--url 'https://api.hubapi.com/crm/v3/extensions/calling/APP_ID/settings?hapikey=DEVELOPER_ACCOUNT_API_KEY' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{"name":"demo widget","url":"https://mywidget.com/widget","height":600,"width":400,"isReady":false}'
# Note that this endpoint also supports PATCH, GET and DELETE
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:
const myExtensionSettings = {
isReady: true,
name: 'My app name',
url: 'My local/qa/prod URL',
};
localStorage.setItem(
'LocalSettings:Calling:CallingExtensions',
JSON.stringify(myExtensionSettings)
);
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, um isReady
in „true“ zu ändern.
# Example payload to add the call widget app settings
curl --request PATCH \
--url 'https://api.hubapi.com/crm/v3/extensions/calling/APP_ID/settings?hapikey=DEVELOPER_ACCOUNT_API_KEY' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{"isReady":true}'
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
-
Nachrichten von HubSpot empfangen:
Senden von Nachrichten an HubSpot
Das extensions
-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.
const payload = {
isLoggedIn: boolean,
engagementId: number,
isAvailable: boolean,
};
extensions.initialized(payload);
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.
extensions.userAvailable();
userUnavailable
Sendet eine Nachricht, dass der Benutzer nicht verfügbar ist.
extensions.userUnavailable();
userLoggedIn
Sendet eine Nachricht, dass sich der Benutzer angemeldet hat.
// This message is only needed when user isn't logged in when initialized
extensions.userLoggedIn();
userLoggedOut
Sendet eine Meldung, dass sich der Benutzer abgemeldet hat.
extensions.userLoggedOut();
incomingCall
Sendet eine Nachricht, um HubSpot zu informieren, dass ein eingehender Anruf gestartet wurde.
const callInfo = {
externalCallId: string,
callStartTime: number,
createEngagement: boolean,
fromNumber: string,
tonumber: string,
};
extensions.incomingCall(callInfo);
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.
const callInfo = {
phoneNumber: string /** @deprecated Use toNumber instead **/,
callStartTime: number,
createEngagement: true,
toNumber: string,
fromNumber: string,
dialingContext: onDialEventPayload,
};
extensions.outgoingCall(callInfo);
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.
const payload = {
externalCallId: string,
};
extensions.callAnswered();
callEnded
Sendet eine Nachricht, um HubSpot zu informieren, dass der Anruf beendet ist.
// After receiving the call ended event, the user can navigate away, can close the call widget.
extensions.callEnded({
externalCallId: string,
engagementId: number,
callEndStatus: EndStatus,
});
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:COMPLETED FAILED CANCELED BUSY NO_ANSWER REJECTED MISSED
|
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:
Die hideWidget
-Eigenschaft wird ignoriert, wenn sich der Benutzer in einer Aufgabenwarteschlange mit dem Aufgabentyp Call
befindet.
// After receiving the call completed event, HubSpot will
// 1) insert the engagement into the timeline
// 2) set the default associations on the engagement
// 3) closes the widget unless `hideWidget` is set to false.
// 4) update the engagement with any engagement properties
const data = {
engagementId: number,
hideWidget: boolean,
engagementProperties: { [key: string]: string },
externalCallId: string,
}
extensions.callCompleted(data);
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.
const payload = {
externalCallId,
engagementId,
};
extensions.publishToChannel(payload);
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.
onNavigateToRecord {
const {
engagementId: number,
objectCoordinates: object coordinates
} = data;
...
}
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.
// After receiving the sendError event, HubSpot will display an alert popup to the user with the error message provided.
const data = {
message: string,
};
extensions.sendError(data);
Eigenschaft | Typ | Beschreibung |
---|
message | Zeichenfolge | Fehlermeldung, die im Warnungs-Pop-up angezeigt wird. |
Sendet eine Nachricht, um HubSpot darüber zu informieren, dass die Größe der Anruf-App geändert werden muss.
// After receiving the resizeWidget event, HubSpot will use the provided height and width to resize the call widget.
const data = {
height: number,
width: number,
};
extensions.resizeWidget(data);
Eigenschaft | Typ | Beschreibung |
---|
height | Zahl | Gewünschte Höhe des Anruf-Widgets. |
width | Zahl | Gewünschte Breite der Anruf-Widgets. |
Nachrichten von HubSpot empfangen
Das extensions
-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.
// Example snippet for handling onReady event
onReady() {
extensions.initialized(payload);
}
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. Das onDialNumber
-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:
onDialNumber(data) {
const {
phoneNumber: string,
ownerId: number,
subjectId: number,
objectId: number,
objectType: CONTACT | COMPANY,
portalId: number,
countryCode: string,
calleeInfo {
calleeId: number,
calleeObjectTypeId: string,
},
startTimestamp: number,
toPhoneNumberSrc: string,
} = data;
...
}
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:calleeID: number calleeObjectTypeId: string
|
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.
/** @deprecated Use onCreateEngagementSucceeded instead **/
onEngagementCreated(data) {
const {
engagementId: number,
} = data;
...
}
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.
onCreateEngagementSucceeded: (event) => {};
onCreateEngagementFailed
HubSpot sendet eine Nachricht, um den Anruf-App-Partner zu benachrichtigen, dass die Erstellung der Interaktion fehlgeschlagen ist.
onCreateEngagementFailed: (event) => {};
onNavigateToRecordFailed
Dieses Event wird aufgerufen, wenn beim Navigieren zu einem Eintrag ein Fehler auftritt.
onNavigateToRecordFailed {
const {
engagementId: number,
objectCoordinates: object coordinates
} = data;
...
}
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.
onPublishToChannelSucceeded{
const {
engagementId: number,
externalCallId: string
} = data;
...
}
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.
onPublishToChannelFailed{
const {
engagementId: number,
externalCallId: string
} = data;
...
}
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.
onCallerIdMatchSucceeded: (event) => {};
onCallerIdMatchFailed
Dieses Event wird aufgerufen, wenn der Abgleich der Anrufer-ID fehlschlägt.
onCallerIDMatchFailed: (event) => {};
onVisibilityChanged
Nachricht, die angibt, ob der Benutzer die Anruf-App minimiert oder ausgeblendet hat.
onVisibilityChanged(data) {
const { isMinimized, isHidden } = data;
...
}
defaultEventHandler
Standard-Handler für Events.
defaultEventHandler(event) {
console.info("Event received. Do you need to handle it?", event);
}
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 im outgoingCall
-Event verwenden.
Stellen Sie zunächst sicher, dass die Integration das Anruf-SDK verwendet, um Interaktionen im outgoingCall-Event zu erstellen:
outgoingCall({ createEngagement: true });
Wenn createEngagement
true ist, erfahren Sie hier, wie Sie Ihre App-Informationen aktualisieren.
Hier ist das Beispiel für das gesamte outgoingCall
-Event:
const callInfo = {
phoneNumber: string, // optional unless call is initiated by the widget
createEngagement: true // whether HubSpot should create an engagement for this call
callStartTime: number // optional unless call is initiated by the widget
};
extensions.outgoingCall(callInfo);