Letzte Änderung: 28. August 2025

Run in Postman

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:
  1. Das SDK für Calling-Erweiterungen, ein JavaScript-SDK, das die Kommunikation zwischen Ihrer App und HubSpot ermöglicht.
  2. 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.
  3. 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.

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:
  1. Installieren Sie Node.js in Ihrer Umgebung.
  2. Klonen Sie die ZIP-Datei dieses Repositorys, spalten Sie sie ab oder laden Sie sie herunter.
  3. Öffnen Sie Ihren Terminal und wechseln Sie zum Stammverzeichnis des Projekts.
  4. Führen Sie einen der folgenden Befehle aus:
    • Für demo-minimal-js:
cd demos/demo-minimal-js && npm i && npm start
  • Für demo-react-ts:
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

  1. 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.
  2. Ö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:
    • Für demo-minimal-js:
localStorage.setItem('LocalSettings:Calling:installDemoWidget', 'app:js');
  • Für demo-react-ts:
localStorage.setItem('LocalSettings:Calling:installDemoWidget', 'app');
  1. 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).
call-app-in-record
  1. 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.
calling-sdk-in-app

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:
  1. Nummer wählen: HubSpot sendet das Nummer-wählen-Event.
  2. Ausgehender Anruf gestartet: Die App benachrichtigt HubSpot, wenn der Anruf gestartet wird.
  3. Interaktion erstellen: HubSpot erstellt eine Anrufinteraktion mit minimalen Informationen, wenn dies von der App angefordert wird.
  4. Interaktion erstellt: HubSpot hat eine Interaktion erstellt.
  5. Interaktions-ID an App gesendet: HubSpot sendet die engagementId an die App.
  6. Anruf beendet: Die App benachrichtigt, wenn der Anruf beendet ist.
  7. Anruf abgeschlossen: Die App benachrichtigt, wenn der Benutzer mit dem App-Nutzerlebnis fertig ist.
  8. 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

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);
EigenschaftTypBeschreibung
isLoggedInBoolescher WertÜberprüft, ob ein Benutzer angemeldet ist oder nicht.
engagementIdZahlEine von HubSpot erstellte Interaktion-ID
isAvailableAnzahlPrü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);
EigenschaftTypBeschreibung
externalCallIdZeichenfolgeEine Anruf-App hat eine Anruf-ID erstellt; Wird verwendet, um Anrufe im Helpdesk zu aktivieren.
callStartTimeZahlStartzeit des Aufrufs in Millisekunden.
createEngagementBoolescher WertOb HubSpot eine Interaktion für diesen Anruf erstellen soll oder nicht. Wenn true, antwortet HubSpot mit onCreateEngagementSucceeded oder onCreateEngagementFailed.
fromNumberZeichenfolgeDie Nummer des Anrufers. Erforderlicher Parameter
toNumberZeichenfolgeDie 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);
EigenschaftTypBeschreibung
callStartTimeZahlStartzeit des Aufrufs in Millisekunden.
createEngagementBoolescher WertOb HubSpot eine Interaktion für diesen Anruf erstellen soll oder nicht. Wenn true, antwortet HubSpot mit onCreateEngagementSucceeded oder onCreateEngagementFailed.
toNumberZeichenfolgeDie Telefonnummer des Empfängers.
fromNumberZeichenfolgeDie Nummer des Anrufers. Erforderlicher Parameter
dialingContextObjekt: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();
EigenschaftTypBeschreibung
externalCallIdZeichenfolgeEine 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.
// After receiving the call ended event, the user can navigate away, can close the call widget.
extensions.callEnded({
  externalCallId: string,
  engagementId: number,
  callEndStatus: EndStatus,
});
EigenschaftTypBeschreibung
externalCallIdZeichenfolgeEine Anruf-App hat eine Anruf-ID erstellt; Wird verwendet, um Anrufe im Helpdesk zu aktivieren.
engagementIdZahlEine von HubSpot erstellte Interaktion-ID
callEndStatusAufzählungDer 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);
EigenschaftTypBeschreibung
engagementIdZahlEine von HubSpot erstellte Interaktion-ID
hideWidgetBoolescher WertGibt an, ob das Widget ausgeblendet werden soll, wenn der Anruf beendet wird. Optionaler Parameter. Die Standardeinstellung ist true.
engagementPropertiesZeichenfolgeMelden Sie sich per Opt-in für HubSpot-Interaktionen an, indem Sie Eigenschaften hinzufügen. Bewirkt, dass HubSpot mit onUpdateEngagementSucceeded oder onUpdateEngagementFailed antwortet.
externalCallIdZeichenfolgeEine 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);
EigenschaftTypBeschreibung
externalCallIdZeichenfolgeEine Anruf-App hat eine Anruf-ID erstellt; Wird verwendet, um Anrufe im Helpdesk zu aktivieren.
engagementIdZahlEine von HubSpot erstellte Interaktion-ID
Dieses Event wird beim Navigieren zu einem Eintrag aufgerufen.
onNavigateToRecord {
    const {
      engagementId: number,
      objectCoordinates: object coordinates
    } = data;
      ...
}
EigenschaftTypBeschreibung
engagementIdZahlEine von HubSpot erstellte Interaktion-ID
objectCoordinatesObjektkoordinatenverweisen 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);
EigenschaftTypBeschreibung
messageZeichenfolgeFehlermeldung, 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.
// 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);
EigenschaftTypBeschreibung
heightZahlGewünschte Höhe des Anruf-Widgets.
widthZahlGewü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);
}
EigenschaftTypBeschreibung
engagementIdZahlEine von HubSpot erstellte Interaktion-ID
iframeLocationAufzählungwidget: 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.
ownerIdZeichenfolge oder NummerDie ID des angemeldeten Benutzers in HubSpot
PortalIdZahlDie ID des HubSpot-Accounts
userIdZahlDie 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;
    ...
}
EigenschaftTypBeschreibung
phoneNumberZeichenfolgeDie Telefonnummer der Person, die der HubSpot-Benutzer angerufen hat
ownerIdZeichenfolge oder NummerDie ID des angemeldeten Benutzers (in HubSpot)
subjectIdZahlDie ID des Betreffs
objectIdZahlObjekttyp der Telefonnummer
objectTypeZeichenfolgeDer 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".
portalIdZahlDie ID des HubSpot-Portals
countryCodeZeichenfolgeDie Landesvorwahl der Telefonnummer
calleeInfoArrayInformationen über den Angerufenen; Diese sollten Folgendes enthalten:
  • calleeID: number
  • calleeObjectTypeId: string
startTimestampZahlZeitstempel des Beginns des Anrufs
toPhoneNumberSrcZeichenfolgeDer 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;
      ...
}
EigenschaftTypBeschreibung
engagementIdZahlEine 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;
      ...
}
EigenschaftTypBeschreibung
engagementIdZahlEine von HubSpot erstellte Interaktion-ID
objectCoordinatesObjektkoordinatenverweisen 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;
      ...
}
EigenschaftTypBeschreibung
engagementIdZahlEine von HubSpot erstellte Interaktion-ID
externalCallIdZeichenfolgeEine 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;
      ...
}
EigenschaftTypBeschreibung
engagementIdZahlEine von HubSpot erstellte Interaktion-ID
externalCallIdZeichenfolgeEine 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);