コミュニケーションSDK
HubSpotのコミュニケーションの受信トレイを使用してウェブサイトで顧客やリードとチャットするには、ライブ チャット ウィジェットを設定できます。コミュニケーションSDKを使用してチャットウィジェットの動作をカスタマイズすることで、1人ひとりの訪問者に合わせた最適な顧客体験を提供できます。
コミュニケーションSDKを使用すると、主に次の操作を実行できます。
APIはwindow.HubSpotConversations
オブジェクトに実装されており、使用可能な全てのメソッドへのアクセスを提供します。オブジェクトはHubSpotトラッキングコードによって作成されますが、ページの読み込み時にすぐには使用できない場合があります。初期化の完了までの間、APIへのアクセスを遅延させるには、window.hsConversationsOnReady
ヘルパーを使用できます。
window.hsConversationsOnReady
はwindow
オブジェクトに定義できるオプションのフィールドで、このフィールドを使用すると、ウィジェットの利用が可能になった際に起動されるコードを指定できます。このフィールドは、APIが初期化されると実行される配列関数を取ります。
hsConversationsSettings
このオプションのオブジェクトを使用して、ウィジェットの初期化が行われる前に、設定オプションを提供できます。
Field | Type | Default | Description |
---|---|---|---|
loadImmediately |
Boolean | true |
Whether the widget should implicitly load or wait until the widget.load method is called. |
inlineEmbedSelector |
String | "" |
Specify a selector (#some-id ) to embed the chat widget in a specific location on the page. Widget will be embedded inline within that DOM node and will remain open until it is removed with widget.remove . Learn more about styling embedded chat widgets. |
enableWidgetCookieBanner |
Enumeration | false |
Control behavior of the cookie banner for all chat widgets on the page. Options include:
|
disableAttachment |
Boolean | false |
Whether to hide the upload attachment button in the chat widget. |
disableInitialInputFocus |
Boolean | false |
Whether to automatically prevent focusing on the widget's input field after an inline embedded widget is initially loaded. |
inlineEmbedSelector
を使用して具体的な場所を指定してウィジェットを埋め込むと、複数のDOM要素が追加されるため、スタイル(高さ、幅、境界線など)を設定できます。
例えば、#some-id
セレクターを使用してチャットウィジェットを埋め込むと、次のコンテナーとIDが読み込まれます。
You can then customize the chat widget using those selectors, such as:
HubSpotConversations.widget
The widget object contains a number of methods that allow you to manipulate the chat widget on your page, including:
Below, learn more about each method.
The widget.load
method handles the initial load on the page. This method is only necessary if you set loadImmediately
to false
. Otherwise, the widget will load itself automatically.
This method is throttled to one call per second.
フィールド | 型 | 既定 | 説明 |
---|---|---|---|
widgetOpen |
ブール値 | false |
ウィジェットを開いた状態で読み込むかどうかを指定します。 |
widget.refresh
メソッドは、現在のページURLを基に、ウィジェットの情報を再度読み込んでレンダリングし直す処理を行います。単一ページのアプリにチャットウィジェットを埋め込んでいる場合、このメソッドはルート変更に基づくウィジェットの再読み込みが必要なときに役立ちます。このメソッドを使用すると、ページルートごとに異なるチャットウィジェットを指定することもできます。
チャットウィジェットがないルートに対してwidget.refresh
を呼び出し、ユーザーがチャットを利用していない場合は、ウィジェットは取り除かれます。現在アクティブなチャットがある場合、ウィジェットは削除されません。
このメソッドの呼び出し頻度は1秒につき1回です。
フィールド | 型 | 既定 | 説明 |
---|---|---|---|
openToNewThread |
ブール値 | false |
新しいスレッドを作成するかどうかを指定します。 |
このメソッドを使用すると、ページURLにクエリーパラメーターを追加することで、ページ上の特定のチャットフローを開くためのボタンとリンクを作成できます。
例えば、次のコードをページに追加してボタンを生成できます。
次に、各チャットのターゲット設定で、クエリーパラメーターがボタンコードで設定したものと一致したときに表示されるようにチャットを設定します。
widget.close
メソッドは、ウィジェットがまだ閉じられていない場合、ウィジェットを閉じます。
widget.remove
メソッドは、ページからウィジェットを取り除きます。ページ上にウィジェットが存在しない場合は、このメソッドは何も行いません。ウィジェットは、ページの更新時、またはwidget.load
が呼び出された場合に再び表示されます。
widget.status
メソッドは、ウィジェットの現在のステータスに関連するプロパティーを含むオブジェクトを返します。
フィールド | 型 | 既定 | 説明 |
---|---|---|---|
loaded |
ブール値 | false |
ウィジェットのiframeが読み込まれているかどうかを示します。 |
clear
メソッドは、チャットウィジェットに関連するCookieを削除し、その後の読み込みで既定の状態に戻します。
チャットウィジェットでは、サイト訪問やページの再読み込みが繰り返されても状態を維持できるように、複数のCookieが作成されます。このようなCookieはウィジェットのホスティング先ページのドメインを対象に、以下の機能を有効にするために使用されます。
- 過去のコミュニケーションを参照する。
- ページ読み込みが繰り返されてもチャットウィジェットを開いた状態に維持する。
- ページ読み込みが繰り返されても歓迎メッセージを開いた状態に維持する。
このメソッドにより、以下のCookieが消去されます。
messagesUtk
hs-messages-is-open
hs-messages-hide-welcome-message
これらのCookieの詳細については、HubSpotのナレッジベースをご覧ください。
さらに、{resetWidget:true}
をclear()
関数に渡すことで、チャット関連の全てのCookieを消去し、ページからウィジェットを取り除いた上で、チャットウィジェットの新しいインスタンスを作成できます。
チャットウィジェットからは、ライフサイクル全体にわたって各種のイベントが送信されます。このイベントを検知し、応答することができます。次のようなイベントがあります。
- conversationStarted
- conversationClosed
- unreadConversationCountChanged
- contactAssociated
- userInteractedWithWidget
- widgetLoaded
- quickReplyButtonClick
- widgetClosed
イベントリスナーを登録および削除するには、以下に示すようにon
とoff
を使用します。
各イベントの詳細については、以下をご覧ください。
フィールド | 型 | 説明 |
---|---|---|
conversation |
スレッドID | 開始されたコミュニケーションのスレッドID。このIDは、コミュニケーションAPIへの呼び出し時に使用できます。 |
conversationClosed
イベントは、新しいコミュニケーションがコミュニケーションの受信トレイでクローズ済みとしてマークされたときにトリガーされます。
チャットウィジェットを最小化するか閉じるサイト訪問者は、このイベントをトリガーしません。この場合のイベントには、代わりにwidgetClosedを使用します。
フィールド | 型 | 説明 |
---|---|---|
conversation |
スレッドID | 開始されたコミュニケーションのスレッドID。このIDは、コミュニケーションAPIへの呼び出し時に使用できます。 |
unreadConversationCountChanged
イベントは、未読メッセージを含むコミュニケーションの数が増加または減少するとトリガーされます。
フィールド | 型 | 説明 |
---|---|---|
unreadCount |
数値 | 少なくとも1つの未読メッセージを含むコミュニケーションの合計数。 |
contactAssociated
イベントは、訪問者がCRM内のコンタクトと関連付けられるとトリガーされます。
フィールド | 型 | 説明 |
---|---|---|
message |
文字列 | 訪問者がコンタクトと関連付けられたことに関する確認メッセージ。 |
userInteractedWithWidget
イベントは、訪問者がクリックしてウィジェットを開いたり、最初のウェルカムメッセージを閉じたりするなど、ウィジェットとやり取りしたときにトリガーされます。
フィールド | 型 | 説明 |
---|---|---|
message |
文字列 | 訪問者がウィジェットとやり取りしたことに関する確認メッセージ。 |
widgetLoaded
イベントは、ウィジェットのiframeが読み込まれたときにトリガーされます。
フィールド | 型 | 説明 |
---|---|---|
message |
文字列 | ウィジェットのiframeが読み込まれたことに関する確認メッセージ。 |
quickReplyButtonClick
イベントは、訪問者がボットのコミュニケーションで簡単な返信をクリックしたときにトリガーされます。
フィールド | 型 | 説明 |
---|---|---|
value |
配列 | クリックされたクイック返信オプションのテキストを含む配列。 |
上記のスクリーンショットの例では、3つのクイック返信オプションがボットチャットフローに含まれています。ユーザーが[もっと詳しく]を選択した場合、結果のイベントペイロードは次のようになります。
widgetClosed
イベントは、訪問者がチャットウィジェットを閉じたときにトリガーされます。
フィールド | 型 | 説明 |
---|---|---|
message |
文字列 | 訪問者がチャットウィジェットを閉じたことに関する確認メッセージ。 |
貴重なご意見をありがとうございました。