このページで学べること

window.customerHubApi JavaScript API を使用して、自社のストアフロント コードから Customer Hub(またはスタンドアロンの Klaviyo ウェブチャット)を制御する方法。エクスペリエンスの開始と終了、特定の画面への移動、買い物客に代わってチャットメッセージを送信、カート追加などのイベントをリッスンできます。

始める前に

必要なもの:

  • Klaviyo Customer Hub がストアフロントに設定され、読み込まれています。ヘッドレスまたはカスタムのストアフロントを使用している場合は、まず ヘッドレス Shopify で Klaviyo Customer Hub を設定する方法 に従ってください。ここでは、この API を使用可能にするオンサイト ローダーの追加について説明しています。
  • ストアフロントのコードを編集してデプロイできる機能。

Klaviyo Customer Hub API とは

ストアフロントで Klaviyo Customer Hub、または単独の Klaviyo ウェブチャットが読み込まれるたびに、Klaviyo はグローバル window オブジェクトに小さな JavaScript API を window.customerHubApi としてアタッチします。これを使用して、独自のコードからエクスペリエンスを開く、閉じる、または操作できます。たとえば、カスタムボタン、バナー、または商品ページから操作できます。

ウェブチャットでも利用できます。フルの Klaviyo Customer Hub を実行している場合でも、スタンドアロンの Klaviyo ウェブチャットのみを使用している場合でも、同じ API を利用できます。ウェブチャットは Klaviyo Customer Hub よりも対応している機能が少ないため、以下で説明している画面やイベントの一部は利用できません。原則として、利用できる画面はストアで有効になっている機能によって異なります。有効になっていない画面に移動すると、ホーム画面に戻ります。

ヒント:Klaviyo Customer Hub は非同期で読み込まれます。Hub の準備が整う前にコードが実行されてもエラーにならないように、メソッドを呼び出す前に常に window.customerHubApi が存在することを確認してください。

javascript
if (window.customerHubApi) {
  window.customerHubApi.open();
}

方法

open(route?)

Klaviyo Customer Hub ドロワーを開きます。

  • route (string, optional) — 開くときに移動するパスです。省略すると、Hub は最後に表示していた画面で開きます。
javascript
// Open the Hub on its default screen
window.customerHubApi.open();

// Open the Hub directly to a specific screen
window.customerHubApi.open('/orders');

利用可能なルート

ルート

画面

/

ホーム

/chat

チャット

/orders

注文

/cart

カート

/faq

FAQ

/profile

プロファイル

/coupons

クーポン

/rewards

報酬 / ロイヤルティ

/wishlist (または /favorites)

ウィッシュリスト

/recently-viewed

最近閲覧された商品

/recommended-products

おすすめ商品

利用可能な画面は、ストアで有効になっている機能によって異なります。有効になっていない画面に移動すると、ホーム画面に戻ります。

close()

Klaviyo Customer Hub のドロワーを閉じます。ハブは現在の画面に留まるため、open()(ルートなし)で再度開くと、顧客は離れた場所に戻ります。

javascript
window.customerHubApi.close();

sendChatMessage(message)

[チャット] 画面で Klaviyo Customer Hub を開き、お客様に代わってメッセージを送信します。これは、「この商品についてチャットする」や「ヘルプを受ける」ボタンに便利です。

  • message (string) — 送信するメッセージ。
javascript
window.customerHubApi.sendChatMessage('I have a question about my order.');

ログインが必要な場合:ストアでチャット前に顧客のログインが必須(かつ AI エージェントが有効でない)場合、顧客は最初にログインするためにチャット画面へ移動します。メッセージは一時的に保存され、ログインが完了すると自動的に送信されます。ログインが完了しない場合、保存されたメッセージは約 10 分後に期限切れになります。

sendConversationContext(context)

チャット会話の外部で収集されたバックグラウンドコンテキスト(チャット前アンケートの回答など)をキューに入れ、お客様の次のチャットメッセージとともに送信します。Klaviyoはその後、このコンテキストを保存し、その会話の残りの間参照します。

  • context(オブジェクト) — entries 配列を含むアンケート回答オブジェクト。各エントリには question と answer を必ず含める必要があります。
javascript
window.customerHubApi.sendConversationContext({
  type: 'survey-response',
  entries: [
    { question: 'What color are you interested in?', answer: 'Red' },
  ],
});

これでできること、できないこと。お客様が最初のチャットメッセージを送信する前にこれを呼び出してください。コンテキストはブラウザでキューに追加され、次のメッセージと一緒に送信されます。ページを更新すると、キューに残っているものはすべてクリアされます。このメソッドでは、Klaviyo カスタマーハブは開かれず、お客様にログインを求めず、また、それ自体で返信を生成することもありません。現在、survey-responseがサポートされている唯一のコンテキストタイプです。

getActiveConversationId()

ドロワーで行われているアクティブな会話の conversationId を返します。会話が進行中でない場合は null を返します。

javascript
window.customerHubApi.getActiveConversationId();

イベントをリッスンする

window.customerHubApi.events Klaviyo Customer Hub 内で発生するイベントを購読できます。

addtocart

Hub 内でお客様が商品をカートに追加したときに起動します。ストアフロントのカートを同期した状態に保つために使用します。

javascript
window.customerHubApi.events.addEventListener('addtocart', (event) => {
  // event.detail.items is an array of { variantId, quantity }
  event.detail.items.forEach((item) => {
    console.log('Added to cart:', item.variantId, 'x', item.quantity);
  });
});

プロパティ

データ型

説明

event.detail.type

'addtocart'

イベントタイプ。

event.detail.items

Array<{ variantId: string; quantity: number }>

カートに追加された商品のバリエーション。

完全な例

Hub を開いてメッセージを送信する [この商品についてチャット] ボタンに加え、Hub から購入者がアイテムを追加したときにストアフロントのカートを同期するリスナー:

html
<button id="ask-about-product">Ask us about this product</button>

<script>
  document
    .getElementById('ask-about-product')
    .addEventListener('click', () => {
      if (window.customerHubApi) {
        window.customerHubApi.sendChatMessage(
          'I have a question about this product.'
        );
      }
    });

  // Sync the storefront cart when a customer adds an item from the Hub
  if (window.customerHubApi) {
    window.customerHubApi.events.addEventListener('addtocart', (event) => {
      refreshStorefrontCart(event.detail.items);
    });
  }
</script>

その他のリソース

Set up and extend Customer Hub on your storefront.

  • Headless Shopify でカスタマーハブを設定する方法

    カスタマーハブをヘッドレス Shopify ストアフロントに接続します。ログインを有効にし、ウィジェット(お気に入り、FAQ)を表示し、アクティブ/最近閲覧した商品エクスペリエンスを強化して、エンゲージメントとコンバージョンを向上させます。

  • Shopify で Klaviyo Customer Hub を使い始める

    オンラインストアの訪問者に向けて、商品発見から購入、さらにポストパーチェスのサポートまでをガイドする、独自のパーソナライズ体験である Klaviyo Customer Hub について詳しく説明します。

  • カスタマーハブと商品ページ向け FAQ の作成方法

    サイトのカスタマーハブインターフェイスと商品詳細ページに表示する「よくあるご質問(FAQ)」を作成して管理する方法をご確認ください。FAQ を目立たせることで、よくあるお客様の質問に先回りして対応でき、サポートチームへの繰り返しの問い合わせを減らせます。

この記事は役に立ちましたか?
この記事へのフィードバックは、上記のボタン・記入欄よりご提供ください。 サポートへの連絡方法.

Klaviyo の詳細を見る

コミュニティ
同業者、パートナー、Klaviyo のエキスパートとつながり、インスピレーションを得たり、インサイトを共有したり、あらゆる質問への回答を得たりできます。
パートナー
特定のタスクや継続的なマーケティング管理のためのサポートを、Klaviyo 認定エキスパートに依頼しましょう。
サポート

アカウントからサポートにアクセスしてください。

メールサポート (無料トライアルと有料アカウント) 24 時間 365 日利用可能

チャット/バーチャル アシスタント
利用可否は地域およびプランタイプによって異なります