最終更新日: 2025年8月28日

Run in Postman

アプリで電話拡張SDK(英語)を使用すると、 HubSpotが提供する通話ツールと同様に、CRM内のレコードから直接、HubSpotユーザーに対してカスタムの通話オプションを提供できます。ユーザーがアプリを使用して電話をかけると、HubSpotはCRMレコードのアクティビティータイムライン上にエンゲージメントを作成し、アプリとデータをやり取りして詳細を入力します。 電話拡張は、次の3つのコンポーネントで構成されています。
  1. 電話拡張SDK。貴社のアプリとHubSpot間の通信を可能にするJavaScript SDK。
  2. コール設定エンドポイント。貴社のアプリのコール設定のために使用するAPIエンドポイント。この設定は、アプリに接続する各HubSpotアカウントで使用されます。
  3. コールiframe。貴社のアプリをHubSpotユーザーに対して表示する場所。コール設定APIエンドポイントを使用して設定されます。
アプリをまだ用意していない場合は、HubSpot開発者アカウントを使用してアプリを作成できます。HubSpot開発者アカウントをまだお持ちでない場合は、こちらから登録してください。

注:

以下のドキュメントでは、SDKを使用したアウトバウンドコールについて説明します。SDKを使用した着信通話の受信(ベータ版)の詳細をご確認ください。

デモ用コールアプリを実行する

2つの異なるデモ用アプリで電話拡張SDKをテストするオプションがあります。
  • Demo-minimal-jsでは、JavaScript、HTML、CSSを使用して必要最小限のSDKが実装されています。Index.jsでSDKをインスタンス化する方法を確認できます。
  • Demo-react-tsでは、アプリのブループリントとしての役割を果たす、React、TypeScript、Styled Componentsを使用した実用的なSDKが実装されています。useCti.tsでSDKをインスタンス化する方法を確認できます。

注:

これらのデモ用アプリは完全に機能するコールアプリではありませんが、モックデータを使用してより現実に近いエクスペリエンスを実現します。

デモ用コールアプリをインストールする

インストールの有無にかかわらず、デモ用アプリを実行できます。ローカル環境にデモをインストールするには:
  1. お使いの環境にNode.jsをインストールします。
  2. このリポジトリーのZIPをダウンロード、複製、またはフォークします。
  3. ターミナルを開き、プロジェクトのルートディレクトリーに移動します。
  4. 次のコマンドのいずれかを実行します。
    • demo-minimal-jsの場合:
cd demos/demo-minimal-js && npm i && npm start
  • demo-react-tsの場合:
cd demos/demo-react-ts && npm i && npm start
これによって、目的のデモディレクトリーに切り替わり、npm CLIを使用してプロジェクトに必要なNode.js(英語)の依存関係がインストールされ、アプリが起動します。

注:

npm startコマンドを実行すると、https://localhost:9025/に接続された新しいブラウザータブが自動的に開きます。アプリケーションにアクセスするには、「接続がセキュリティーで保護されていない」ことを通知するメッセージをバイパスする必要があります。

HubSpotからデモ用コールアプリを起動する

  1. 次のようにしてレコードに移動します。
    • コンタクト: HubSpotアカウントで、[コンタクト]>[コンタクト]に移動します。
    • 会社: HubSpotアカウントで、[コンタクト]>[会社]に移動します。
  2. ブラウザーの開発者コンソールを開き、次のコマンドを実行します。
    • demo-minimal-jsまたはdemo-react-tsのインストール手順が完了している場合:
localStorage.setItem('LocalSettings:Calling:installDemoWidget', 'local');
インストール手順をスキップした場合:
  • demo-minimal-jsの場合:
localStorage.setItem('LocalSettings:Calling:installDemoWidget', 'app:js');
  • demo-react-tsの場合:
localStorage.setItem('LocalSettings:Calling:installDemoWidget', 'app');
  1. ページの表示を更新し、左のサイドバーでコールアイコンをクリックします**。[発信元]ドロップダウンメニューをクリックして、その中からデモ用アプリの名前**を選択します(例:Demo App Local、Demo App JS、Demo App React)。
レコード内のコールアプリ
  1. [コール]をクリックして、デモ用アプリが電話拡張SDKを介してHubSpotとどのように連携しているかを確認します。また、ブラウザーの開発者コンソールに記録されたイベントも表示できます。
電話拡張SDKアプリ

電話拡張SDKをコールアプリにインストールする

電話拡張SDKをNode.jsの依存関係としてコールアプリに追加するには:
  • Npmの場合は次を実行します。
npm i --save @hubspot/calling-extensions-sdk
  • Yarnの場合は次を実行します。
yarn add @hubspot/calling-extensions-sdk

電話拡張SDKを使用する

電話拡張SDKは、メッセージを交換するために、HubSpot対応のシンプルなAPIとコールアプリを公開します。メッセージは、SDKで公開されるメソッドを介して送信され、eventHandlersを介して受信されます。利用可能なイベントを網羅したリストが、「イベント」セクションに記載されています。 イベントの説明は次のとおりです。
  1. 番号をダイヤルする: HubSpotが番号のダイヤルイベントを送信します。
  2. 発信通話が開始された: 通話が開始されると、アプリがHubSpotに通知します。
  3. エンゲージメントを作成する: HubSpotは、アプリから要求された場合、最小限の情報でコールエンゲージメントを作成します。
  4. エンゲージメントが作成された: HubSpotがエンゲージメントを作成しました。
  5. EngagementIdがアプリに送信された: HubSpotがengagementIdをアプリに送信します。
  6. 通話が終了した: 通話が終了するとアプリが通知します。
  7. 通話が完了した: ユーザーがアプリの利用を完了するとアプリが通知します。
  8. エンゲージメントを更新する: アプリはengagementIdによってエンゲージメントをフェッチ(取得)し、その他の通話の詳細とエンゲージメントをマージして更新します。APIを介したコールエンゲージメントの更新、またはSDKを介したコールエンゲージメントの更新について詳細をご確認ください。
まず、CallingExtensionsオブジェクトのインスタンスを作成します。拡張機能インスタンスを作成するときにオプションのオブジェクトを指定することで、拡張機能の動作を定義できます。このオプションのオブジェクトは、拡張機能の動作を指定できるeventHandlersフィールドを提供します。次のコードブロックは、使用可能なオプションと定義可能なイベントハンドラーを示しています。
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);

アプリをテストする

エンドユーザー向けの電話拡張iFrameを起動するには、HubSpotに次のiFrameパラメーターが必要です。
{
   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 */
}

コール設定APIエンドポイントを使用する

APIツール(Postmanなど)を使用して、次のペイロードをHubSpotの設定APIに送信します。必ずコールアプリのAPP_IDとアプリのDEVELOPER_ACCOUNT_API_KEYを取得してください。

注:

isReadyフラグは、アプリが本番環境用に準備できているかどうかを示します。テスト中は、このフラグをfalseに設定する必要があります。
# 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

localStorageを使用して拡張機能の設定を上書きする

テスト目的で、拡張機能の設定を上書きできます。HubSpotタブからブラウザーの開発者コンソールを開き、以下の設定を編集して、コマンドを実行します。
const myExtensionSettings = {
  isReady: true,
  name: 'My app name',
  url: 'My local/qa/prod URL',
};

localStorage.setItem(
  'LocalSettings:Calling:CallingExtensions',
  JSON.stringify(myExtensionSettings)
);

アプリを本番環境に向けて準備する

コール設定エンドポイントを使用してアプリを設定したら、PATCHエンドポイントを使用してisReadyをtrueに変更します。
# 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}'

コールアプリをHubSpotマーケットプレイスに公開する

アプリをセットアップしたら、ユーザーはアプリのインストールURLを使用してアカウントにアプリをインストールできます。他のHubSpotユーザーが見つけられるように公開する場合は、 HubSpotアプリマーケットプレイス に掲載することもできます。アプリが内部使用のみを目的としている場合は、これは必要ありません。

イベント

使用可能な通話イベント:

HubSpotにメッセージを送信する

extensionsオブジェクトは、HubSpotにメッセージを送信したり、他の動作を指定して関連付けたりするために呼び出すことができる、次のイベントハンドラーを提供します。以下の例を参照してください。

initialized:必須

ソフトフォンがインタラクションに対応できる状態であることを通知するメッセージを送信します。
const payload = {
  isLoggedIn: boolean,
  engagementId: number,
  isAvailable: boolean,
};

extensions.initialized(payload);
プロパティー説明
isLoggedInブール値ユーザーがログインしているかどうかをチェックします。
engagementId数値HubSpotによって作成されるエンゲージメントID。
isAvailable数値ユーザーが対応可能かどうかをチェックします。

userAvailable

ユーザーが対応可能であることを通知するメッセージを送信します。
extensions.userAvailable();

userUnavailable

ユーザーが対応不可であることを通知するメッセージを送信します。
extensions.userUnavailable();

userLoggedIn

ユーザーがログインしたことを通知するメッセージを送信します。
// This message is only needed when user isn't logged in when initialized
extensions.userLoggedIn();

userLoggedOut

ユーザーがログアウトしたことを通知するメッセージを送信します。
extensions.userLoggedOut();

incomingCall

着信通話が開始されたことをHubSpotに通知するメッセージを送信します。
const callInfo = {
  externalCallId: string,
  callStartTime: number,
  createEngagement: boolean,
  fromNumber: string,
  tonumber: string,
};
extensions.incomingCall(callInfo);
プロパティー説明
externalCallId文字列コールアプリによって作成されるコールID。ヘルプデスクでの通話を有効にするために使用されます。
callStartTime数値コールの開始時刻(ミリ秒単位)。
createEngagementブール値HubSpotにコールのエンゲージメントを作成させるかどうかを指定します。Trueの場合、HubSpotはonCreateEngagementSucceededまたはonCreateEngagementFailedを返します。
fromNumber文字列発信者の電話番号。必須パラメーター
toNumber文字列受信者の電話番号。

outgoingCall

発信通話が開始されたことをHubSpotに通知するメッセージを送信します。
const callInfo = {
  phoneNumber: string /** @deprecated Use toNumber instead **/,
  callStartTime: number,
  createEngagement: true,
  toNumber: string,
  fromNumber: string,
  dialingContext: onDialEventPayload,
};
extensions.outgoingCall(callInfo);
プロパティー説明
callStartTime数値コールの開始時刻(ミリ秒単位)。
createEngagementブール値HubSpotにコールのエンゲージメントを作成させるかどうかを指定します。Trueの場合、HubSpotはonCreateEngagementSucceededまたはonCreateEngagementFailedを返します。
toNumber文字列受信者の電話番号。
fromNumber文字列発信者の電話番号。必須パラメーター
dialingContextオブジェクト該当する場合、チケットやエンゲージメントの作成にダイヤルコンテキストが使用されます。このオブジェクトには、onDialNumberペイロードのすべてのプロパティーが含まれます。このプロパティーにより、HubSpotとサード パーティー アプリの間で完全なダイヤルコンテキストが戻され、データの一貫性が確保されます。

callAnswered

発信通話に応答中であることをHubSpotに通知するメッセージを送信します。
const payload = {
  externalCallId: string,
};
extensions.callAnswered();
プロパティー説明
externalCallId文字列コールアプリによって作成されるコールID。ヘルプデスクでの通話を有効にするために使用されます。

callEnded

通話が終了したことをHubSpotに通知するメッセージを送信します。
// After receiving the call ended event, the user can navigate away, can close the call widget.
extensions.callEnded({
  externalCallId: string,
  engagementId: number,
  callEndStatus: EndStatus,
});
プロパティー説明
externalCallId文字列コールアプリによって作成されるコールID。ヘルプデスクでの通話を有効にするために使用されます。
engagementId数値HubSpotによって作成されるエンゲージメントID。
callEndStatus列挙終了時のコールのステータス。有効なステータス:
  • COMPLETED
  • FAILED
  • CANCELED
  • BUSY
  • NO_ANSWER
  • REJECTED
  • MISSED

callCompleted

コールが完了したことをHubSpotに通知するメッセージを送信します。エンゲージメントのプロパティーはHubSpotが所有するため、手動で作成または更新する必要がなくなりました(強調表示されている箇所を参照)。

注:

ユーザーがCallタスクタイプのタスクキューに入っている場合、hideWidgetプロパティーは無視されます。
// 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);
プロパティー説明
engagementId数値HubSpotによって作成されるエンゲージメントID。
hideWidgetブール値通話の終了時にウィジェットを非表示にするかどうかを指定します。任意指定のパラメーターです。デフォルトではtrueに設定されます。
engagementProperties文字列プロパティーを追加して、HubSpot所有のエンゲージメントにオプトインします。これにより、HubSpotはonUpdateEngagementSucceededまたはonUpdateEngagementFailedを返するようになります。
externalCallId文字列コールアプリによって作成されるコールID。ヘルプデスクでの通話を有効にするために使用されます。

publishToChannel

接続されたチャネルにコールを公開します。これはHubSpotが所有するエンゲージメントには必要ありません。
const payload = {
  externalCallId,
  engagementId,
};
extensions.publishToChannel(payload);
プロパティー説明
externalCallId文字列コールアプリによって作成されるコールID。ヘルプデスクでの通話を有効にするために使用されます。
engagementId数値HubSpotによって作成されるエンゲージメントID。
このイベントは、レコードに移動するときに呼び出されます。
onNavigateToRecord {
    const {
      engagementId: number,
      objectCoordinates: object coordinates
    } = data;
      ...
}
プロパティー説明
engagementId数値HubSpotによって作成されるエンゲージメントID。
objectCoordinatesオブジェクト座標portalIdobjectIdobjectTypeIDを参照します。

sendError

コールアプリでエラーが発生したことをHubSpotに通知するメッセージを送信します。
// 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);
プロパティー説明
message文字列アラートポップアップに表示されるエラーメッセージ。

resizeWidget

コールアプリのサイズを変更する必要があることをHubSpotに通知するメッセージを送信します。
// 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);
プロパティー説明
height数値望ましいコールウィジェットの高さ。
width数値望ましいコールウィジェットの幅。

HubSpotからメッセージを受信する

extensionsオブジェクトは、HubSpotでメッセージを受信した際や、または他の関連する動作を指定するために呼び出すことができる、次のイベントハンドラーを提供します。以下の例を参照してください。

onReady

HubSpotがメッセージを受信できる状態であることを通知するメッセージ。
// Example snippet for handling onReady event
onReady() {
    extensions.initialized(payload);
}
プロパティー説明
engagementId数値HubSpotによって作成されるエンゲージメントID。
iframeLocation列挙widget:コールアプリが インバウンドコールをサポートしていない場合コールレコードページに表示されるドラッグ&ドロップウィジット。
remote:コールアプリがインバウンドコールをサポートしている場合にナビゲーション バーの枠に表示されるフレーム。
window:コールアプリがインバウンドをサポートしている場合にコールウィンドウに表示されるフレーム。
ownerId文字列または数値HubSpotにログインしているユーザーのID。
PortalId数値HubSpotアカウントのID。
userId数値HubSpotユーザーのID。

onDialNumber

このイベントは、HubSpotでユーザーが発信通話を開始するとトリガーされます。onDialNumberイベントのペイロードには、コールに関連付けられている全てのフィールドが含まれます。これらのフィールドについて、以下の表で詳しく説明します。
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;
    ...
}
プロパティー説明
phoneNumber文字列HubSpotユーザーが電話をかけた相手の電話番号。
ownerId文字列または数値(HubSpotに)ログインしているユーザーのID。
subjectId数値件名のID。
objectId数値電話番号のオブジェクトタイプ。
objectType文字列ダイヤルされた電話番号(コンタクトまたは会社の電話番号など)に関連付けられているオブジェクトタイプ。ここで考えられる値は、"CONTACT"または"COMPANY"です。
portalId数値HubSpotポータルのID。
countryCode文字列電話番号の国コード。
calleeInfo配列着信者に関する情報。以下を含める必要があります。
  • calleeID: number
  • calleeObjectTypeId: string
startTimestamp数値通話開始時のタイムスタンプ。
toPhoneNumberSrc文字列HubSpotでの電話番号のプロパティー名。プロパティーには、標準のプロパティー値またはカスタムプロパティーを指定できます。例えば、コンタクトに3つの連絡先電話番号がある場合、それぞれ「Office」、「Personal」、「Mobile」という関連付けラベルを設定できます。

onEngagementCreated

非推奨。代わりにonCreateEngagementSucceededを使用してください。
/** @deprecated Use onCreateEngagementSucceeded instead **/
onEngagementCreated(data) {
    const {
      engagementId: number,
    } = data;
      ...
}
プロパティー説明
engagementId数値HubSpotによって作成されるエンゲージメントID。

onCreateEngagementSucceeded

HubSpotにより、エンゲージメントが正常に更新されたことを通知するメッセージがコール アプリ パートナーに送信されます。
onCreateEngagementSucceeded: (event) => {};

onCreateEngagementFailed

HubSpotにより、エンゲージメントを作成できなかったことを通知するメッセージがコール アプリ パートナーに送信されます。
onCreateEngagementFailed: (event) => {};

onNavigateToRecordFailed

このイベントは、レコードへの移動が失敗したときに呼び出されます。
onNavigateToRecordFailed {
    const {
      engagementId: number,
      objectCoordinates: object coordinates
    } = data;
      ...
}
プロパティー説明
engagementId数値HubSpotによって作成されるエンゲージメントID。
objectCoordinatesオブジェクト座標portalIdobjectIdobjectTypeIDを参照します。

onPublishToChannelSucceeded

このイベントは、チャネルへの公開が成功すると呼び出されます。
onPublishToChannelSucceeded{
    const {
      engagementId: number,
      externalCallId: string
    } = data;
      ...
}
プロパティー説明
engagementId数値HubSpotによって作成されるエンゲージメントID。
externalCallId文字列コールアプリによって作成されるコールID。ヘルプデスクでの通話を有効にするために使用されます。

onPublishToChannelFailed

このイベントは、チャネルへの公開に失敗したときに呼び出されます。
onPublishToChannelFailed{
    const {
      engagementId: number,
      externalCallId: string
    } = data;
      ...
}
プロパティー説明
engagementId数値HubSpotによって作成されるエンゲージメントID。
externalCallId文字列コールアプリによって作成されるコールID。ヘルプデスクでの通話を有効にするために使用されます。

onCallerIdMatchSucceeded

このイベントは、発信者IDの照合が成功すると呼び出されます。
onCallerIdMatchSucceeded: (event) => {};

onCallerIdMatchFailed

このイベントは、発信者IDの照合に失敗したときに呼び出されます。
onCallerIDMatchFailed: (event) => {};

onVisibilityChanged

ユーザーがコールアプリを最小化または非表示にしたかどうかを通知するメッセージ。
onVisibilityChanged(data) {
    const { isMinimized, isHidden } = data;
    ...
}

defaultEventHandler

イベントのデフォルトのハンドラー。
defaultEventHandler(event) {
   console.info("Event received. Do you need to handle it?", event);
}

電話拡張SDK | よくある質問

ユーザー認証はどのように処理されますか?

コールアプリが認証を処理します。

電話拡張はCDNでホスティングされるのですか?

はい。電話拡張SDKはjsDeliver経由でインストールできます。例えば、calling-extensions-sdk@0.2.2をインストールするには、https://cdn.jsdelivr.net/npm/@hubspot/calling-extensions-sdk@0.2.2/dist/main.jsを使用できます。

エンゲージメントはどのタイミングで作成または更新されるのですか?

ユーザーは、HubSpot UI内からもHubSpot UI外(モバイルアプリ、リダイレクトされた番号など)からも通話を開始できます。コールがHubSpot UI内から開始された場合、HubSpotはコールエンゲージメントを作成し、コールアプリにエンゲージメントを送信します。通話が終了すると、コールアプリはコールのその他の詳細を追加し、このエンゲージメントを更新できます。通話がHubSpot UIの外部で開始された場合、アプリは通話エンゲージメントを作成します。

連携の一部として必要なスコープは何ですか?

連絡先とタイムラインのスコープを追加する必要があります。これらのスコープにより、アプリケーションは連絡先にアクセスでき、CRMでコールエンゲージメントを作成および更新することができます。

この機能をマーケットプレイスの既存のアプリケーションに追加することはできますか?それとも新しいアプリを作成して追加するのですか?

コール ユース ケースに対応する既存のアプリを既に持っている場合は、この機能を既存のアプリに直接追加できます。既にアプリをインストールしている全てのお客さまは、アプリを再度インストールしなくても、この新しい機能を利用できます。

既存のソフト フォン アプリケーションをSDKで連携させることはできますか?

はい。既存のソフト フォン アプリケーションとの連携は非常に簡単です。上記のドキュメントの手順に従って、アプリケーションを起動して利用を開始してください。

ユーザーは複数の連携を同時に使用できますか?

はい。ユーザーは複数のサードパーティーのコール連携を同時に使用できます。コールボタンをクリックした後に表示されるサービスプロバイダーを切り替える機能を使用して、サービスプロバイダーをシームレスに切り替えることができます。

無料ユーザーはアプリ連携をインストールできますか?

はい。全てのユーザーがアプリをインストールできます。

ユーザーが既にアプリをインストールしている場合、連携は自動的に表示されますか?

はい。ユーザーが既にアプリをインストールしており、電話拡張機能で同じアプリを更新している場合、連携が自動的に表示されます。現在、開発者がコールアプリを一部の顧客のみに有効にする方法はありません。

どのユーザーでもアプリをインストールまたはアンインストールできますか?

いいえ。必要な権限を持つユーザーのみ、アプリをインストールおよびアンインストールできます。ユーザーの権限を確認する方法について詳細をご確認ください。

カスタムのコールプロパティーを作成することはできますか?

はい。プロパティーAPIを使用してカスタムのコールプロパティーを作成できます。

カスタムオブジェクトから電話をかけることはできますか?

はい。コール連携がSDKのみを使用してコールを行っている限り、カスタムオブジェクトから電話を発信できます。各連携では、通話拡張SDKのみを使用してコールが行われていること、outgoingCallイベントでHubSpotに通知されることを確認する必要があります。 まず、outgoingCallイベントでエンゲージメントを作成するのに、連携で電話拡張SDKが使用されていることを確認します。
outgoingCall({ createEngagement: true });
createEngagementがtrueの場合、こちらからアプリ情報を更新する方法をご覧ください。 outgoingCallイベント全体の例を以下に示します。
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);