Czego się dowiesz?

Jak kontrolować Klaviyo Customer Hub — lub samodzielny czat online Klaviyo — z poziomu własnego kodu sklepu internetowego za pomocą interfejsu JavaScript API window.customerHubApi. Otworzysz i zamkniesz to środowisko, przejdziesz do konkretnego ekranu, wyślesz wiadomość na czacie w imieniu kupującego i będziesz nasłuchiwać zdarzeń, takich jak dodanie do koszyka.

Kilka słów na początek

Potrzebne będą:

  • Klaviyo Customer Hub skonfigurowany i załadowany w Twoim sklepie. Jeśli korzystasz ze sklepu typu headless lub niestandardowego, najpierw postępuj zgodnie z instrukcjami w artykule Jak skonfigurować Klaviyo Customer Hub z Headless Shopify — zawiera informacje o dodaniu modułu ładującego na stronie, który udostępnia to API.
  • Możliwość edytowania i wdrażania kodu sklepu.

Czym jest interfejs API Klaviyo Customer Hub

Za każdym razem, gdy na Twoim sklepie wczytuje się Klaviyo Customer Hub — lub samodzielny czat online Klaviyo — Klaviyo dołącza małe API JavaScript do globalnego obiektu window jako window.customerHubApi. Możesz go użyć do otwierania, zamykania i interakcji z tym doświadczeniem z własnego kodu — na przykład z niestandardowego przycisku, banera lub strony produktu.

Działa również z internetem – Mozaika. To samo interfejs API jest dostępne online bez względu na to, czy uruchomisz pełną wersję Klaviyo Customer Hub, czy samodzielny Klaviyo Customer Hub. tajne online obsługuje mniej funkcji niż Klaviyo Customer Hub, w związku z czym niektóre z opisanych poniżej ekranów i zdarzeń nie są tam dostępne. Co do zasady, to, to, jaki ekran będzie dostępny, zależy od funkcji włączoną dla Twojego sklepu – przejście do takiego, który nie jest włączony, powoduje powrót na ekran główny.

Wskazówka: Klaviyo Customer Hub ładuje się asynchronicznie. Zawsze sprawdzaj, czy window.customerHubApi istnieje, zanim wywołasz metodę, aby Twój kod nie zgłosił błędu, jeśli uruchomi się, zanim Hub będzie gotowy.

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

Metody

open(route?)

Otwiera szufladę Klaviyo Customer Hub.

  • route (ciąg znaków, opcjonalnie) — ścieżka, do której ma przejść podczas otwierania. Jeśli zostanie pominięta, Hub otworzy się na ekranie, który był wyświetlany jako ostatni.
javascript
// Open the Hub on its default screen
window.customerHubApi.open();

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

Dostępne trasy

Trasa

Ekran

/

Strona główna

/chat

Czat

/orders

Zamówienia

/cart

Koszyk

/faq

Najczęściej zadawane pytania

/profile

Profil

/coupons

Kupony

/rewards

Nagrody/lojalność

/wishlist (lub /favorites)

Lista życzeń

/recently-viewed

Ostatnio oglądane produkty

/recommended-products

Polecane produkty

To, które ekrany będą dostępne, zależy od funkcji włączonych dla Twojego sklepu. Przejście do ekranu, który nie jest włączony, powoduje powrót do ekranu głównego.

close()

Zamyka panel wysuwany Klaviyo Customer Hub. Hub pozostaje na bieżącym ekranie, więc ponowne otwarcie za pomocą open() (bez trasy) przenosi klienta z powrotem do miejsca, w którym skończył.

javascript
window.customerHubApi.close();

sendChatMessage(message)

Otwiera Klaviyo Customer Hub na ekranie czatu i przesyła wiadomość w imieniu klienta. Jest to przydatne w przypadku przycisków „Czat na temat tego produktu” lub „Uzyskaj pomoc”.

  • message (string) — wiadomość do wysłania.
javascript
window.customerHubApi.sendChatMessage('I have a question about my order.');

Gdy logowanie jest wymagane: jeśli Twój sklep wymaga, aby klienci się zalogowali przed rozpoczęciem czatu (a Agent AI jest wyłączony), klient zostanie przeniesiony do ekranu Czatu, aby się zalogować. Wiadomość zostanie tymczasowo zapisana i wysłana automatycznie po zakończeniu logowania. Zapisana wiadomość wygasa po około 10 minutach, jeśli logowanie nie zostało ukończone.

sendConversationContext(context)

Kolejkuje kontekst zebrany poza rozmową na czacie — np. odpowiedzi z ankiety przed czatem — aby wysłać go wraz z następną wiadomością czatu od klienta. Klaviyo następnie zapisuje ten kontekst i odwołuje się do niego przez resztę tej rozmowy.

  • context (object) — obiekt odpowiedzi na ankietę zawierający tablicę entries. Każdy wpis musi zawierać question i answer.
javascript
window.customerHubApi.sendConversationContext({
  type: 'survey-response',
  entries: [
    { question: 'What color are you interested in?', answer: 'Red' },
  ],
});

Co to robi — a czego nie robi. Wywołaj to przed pierwszą wiadomością na czacie od klienta. Kontekst jest kolejkowany w przeglądarce i wysyłany wraz z następną wiadomością; odświeżenie strony usuwa wszystko, co nadal czeka w kolejce. Ta metoda nie otwiera Klaviyo Customer Hub, nie prosi klienta o zalogowanie się ani nie generuje samodzielnie odpowiedzi. Obecnie survey-response jest jedynym obsługiwanym typem kontekstu.

getActiveConversationId()

Zwraca conversationId dla aktywnej konwersacji prowadzonej w wysuwanym panelu. Zwraca null, jeśli nie trwa żadna konwersacja.

javascript
window.customerHubApi.getActiveConversationId();

Nasłuchuj zdarzeń

window.customerHubApi.events umożliwia subskrybowanie zdarzeń, które dzieją się w Klaviyo Customer Hub.

addtocart

Uruchamiany, gdy klient dodaje do koszyka produkt z poziomu Hubu. Użyj go, aby zsynchronizować koszyk w sklepie.

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);
  });
});

Właściwość

Typ

Opis

event.detail.type

'addtocart'

Typ zdarzenia.

event.detail.items

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

Wariant dodany do koszyka produktu

Pełny przykład

Przycisk „Czat na temat tego produktu”, który otwiera Hub i przesyła wiadomość, oraz detektor, który synchronizuje koszyk w sklepie, gdy kupujący doda produkt z Centrum:

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>

Dodatkowe źródła

Set up and extend Customer Hub on your storefront.

  • How to set up Customer Hub with Headless Shopify

    Connect Klaviyo Customer Hub to your headless Shopify storefront. Enable login, surface widgets (Favorites, FAQs), and power Active/Recently Viewed product experiences to lift engagement and conversion.

  • Getting started with Customer Hub on Shopify

    Learn about Customer Hub, a unique personalized experience for online store visitors that guides them from product discovery through purchase and post-purchase support.

  • How to create FAQs for your Customer Hub and product pages

    Learn how to create and manage Frequently Asked Questions (FAQs) to display in your site’s Customer Hub interface and on product detail pages. Highlighting FAQs helps you proactively address common customer questions while reducing repetitive inquiries for your support team.

Czy ten artykuł był pomocny?
Ten formularz służy tylko do przesyłania opinii na temat artykułów. Dowiedz się, jak skontaktować się z zespołem ds. pomocy.

Dowiedz się od Klaviyo więcej

Społeczność
Nawiązuj kontakty z osobami na podobnych stanowiskach, partnerami oraz ekspertami i ekspertkami Klaviyo – inspirujcie się nawzajem, wymieniajcie spostrzeżeniami i pomagajcie szukać odpowiedzi na nurtujące Was pytania.
Partnerzy
Zatrudnij certyfikowanego eksperta Klaviyo, który pomoże Ci w konkretnym zadaniu lub w ciągłym zarządzaniu marketingiem.
Pomoc

Uzyskaj wsparcie za pośrednictwem konta.

E-mail do zespołu ds. pomocy (konta w bezpłatnym okresie próbnym oraz konta płatne) Całodobowa dostępność

Czat/wirtualna pomoc
Dostępność różni się w–zależności od lokalizacji i typu planu.