O que você vai aprender

Como controlar o Klaviyo Customer Hub — ou o chat web do Klaviyo independente — a partir do seu próprio código da loja usando a API JavaScript window.customerHubApi. Você vai abrir e fechar a experiência, navegar até uma tela específica, enviar uma mensagem no chat em nome do cliente e monitorar eventos como adicionar ao carrinho.

Antes de começar

Você precisará de:

  • Klaviyo Customer Hub ou chat web independente do Klaviyo configurado e carregado na sua loja. Se você estiver usando uma vitrine headless da Shopify, siga primeiro Como configurar o Klaviyo Customer Hub com a Shopify Headless. Ela cobre a adição do carregador no site que disponibiliza essa API.
  • Capacidade de editar e implementar o código da sua loja.

O que é a API do Customer Hub

Sempre que o Klaviyo Customer Hub — ou o chat web standalone da Klaviyo — é carregado na sua loja, a Klaviyo anexa uma pequena API JavaScript ao objeto global window como window.customerHubApi. Você pode usá-la para abrir, fechar e interagir com a experiência a partir do seu próprio código — por exemplo, a partir de um botão, banner ou página de produto personalizados.

Também funciona com chat web. A mesma API está disponível, seja você usando o Klaviyo Customer Hub completo ou o chat web da Klaviyo independente. O chat web independente abre a tela de Chat; solicitações de telas do Klaviyo Customer Hub, como Pedidos, são redirecionadas para o Chat. O Klaviyo Customer Hub completo oferece telas adicionais com base no tipo da sua vitrine, no seu plano e nos recursos ativados.

Dica: O Klaviyo Customer Hub carrega de forma assíncrona. Sempre verifique se window.customerHubApi existe antes de chamar um método, para que seu código não gere erro caso ele seja executado antes que o Hub esteja pronto. Para configurações que precisam ser executadas quando a API estiver disponível, como registrar um ouvinte de eventos, escute o evento klaviyo-customer-hub-loaded em document se a API ainda não existir. Uma verificação por si só pula essa configuração quando a API ainda está carregando.

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

Métodos

open(route?)

Abre a gaveta do Customer Hub.

  • route (string, opcional) — um caminho para navegar ao abrir. Se omitido, o Hub abre na tela que estava sendo exibida por último.
javascript
// Open the Hub on its current screen (or its initial screen on first open)
window.customerHubApi.open();

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

Rotas disponíveis

Rota

Tela

/

Início

/chat

Chat

/orders

Pedidos

/cart

Carrinho

/faq

Perguntas frequentes

/profile

Perfil

/coupons

Cupons

/rewards

Recompensas / Fidelidade

/wishlist (ou /favorites)

Lista de desejos

/recently-viewed

Produtos visualizados recentemente

/recommended-products

Produtos recomendados

Escolha uma rota compatível com o tipo da sua loja, seu plano e os recursos ativados. Chamar open() não ativa um recurso nem ignora as configurações de visibilidade dele. No chat web independente, use /chat; as solicitações para outras telas do Klaviyo Customer Hub são redirecionadas para o Chat.

close()

Fecha a gaveta do Klaviyo Customer Hub. O Hub permanece na tela atual; assim, ao reabrir com open() (sem rota), o cliente volta para onde parou.

javascript
window.customerHubApi.close();

sendChatMessage(message)

Abre o Klaviyo Customer Hub na tela Chat e envia uma mensagem em nome do cliente, o que é útil para botões como “Conversar sobre este produto” ou “Obter ajuda”. O chat web precisa estar visível para o comprador para que a mensagem seja enviada.

  • message (string) — a mensagem a ser enviada.
javascript
window.customerHubApi.sendChatMessage('I have a question about my order.');

Quando o login é obrigatório: se sua loja exige que os clientes façam login antes de conversar (e o AI Agent não estiver habilitado), o cliente é levado à tela do chat para fazer login primeiro. A mensagem é salva temporariamente e enviada automaticamente quando o usuário termina de fazer login. A mensagem salva expira após cerca de 10 minutos se o login não for concluído.

Limitações de dados do chat

A API JavaScript não inclui métodos para anexar respostas de pesquisa pré-chat nem recuperar o ID da conversa com atividade.

Escutar eventos

window.customerHubApi.events permite que você se inscreva em eventos que acontecem dentro do Klaviyo Customer Hub.

addtocart e addtocart_v2

Após uma adição ao carrinho bem-sucedida no Klaviyo Customer Hub, o addtocart é disparado quando a exibição do carrinho da sua vitrine ainda precisa ser atualizada. Atualize a exibição sem adicionar os itens novamente. No Shopify, em vez disso, o addtocart_v2 é disparado quando a Klaviyo já atualizou a contagem do carrinho do tema; a gaveta do carrinho do tema permanece fechada. Use o addtocart_v2 para rastreamento ou outras ações de acompanhamento sem repetir a atualização do carrinho.

javascript
window.customerHubApi.events.addEventListener('addtocart', (event) => {
  // The items are already in the cart. Refresh your storefront cart display.
  // event.detail.items is an array of { variantId, quantity }
  console.log('Cart display needs refreshing:', event.detail.items);
});

window.customerHubApi.events.addEventListener('addtocart_v2', (event) => {
  // Klaviyo has already updated the Shopify cart count.
  // Use this listener for tracking or other follow-up actions.
  console.log('Cart display updated:', event.detail.items);
});

Propriedade

Tipo

Descrição

event.detail.type

'addtocart' | 'addtocart_v2'

O tipo de evento.

event.detail.items

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

As variantes de produtos adicionadas ao carrinho.

Exemplo completo

Este exemplo habilita um botão “Conversar sobre este produto” e registra listeners do carrinho depois que a API é carregada. Antes de implantar, substitua o corpo de refreshStorefrontCart pelo código de atualização do carrinho da sua vitrine. O exemplo registra as alterações no carrinho até você adicionar esse código; ele não atualiza a exibição do carrinho por conta própria. Os itens já estão no carrinho, portanto, seu código de atualização não deve adicioná-los novamente.

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

<script>
  (() => {
    const button = document.getElementById('ask-about-product');

    function refreshStorefrontCart(items) {
      // TODO: Replace this log with your storefront's cart-refresh code.
      // Re-fetch and render the existing cart. Do not add these items again.
      console.log('Cart display needs refreshing:', items);
    }

    function initializeCustomerHub() {
      const api = window.customerHubApi;
      if (!api) return;

      button.disabled = false;
      button.addEventListener('click', () => {
        api.sendChatMessage('I have a question about this product.');
      });

      api.events.addEventListener('addtocart', (event) => {
        refreshStorefrontCart(event.detail.items);
      });

      api.events.addEventListener('addtocart_v2', (event) => {
        // The Shopify cart count is already updated. Add tracking here.
        console.log('Cart display updated:', event.detail.items);
      });
    }

    if (window.customerHubApi) {
      initializeCustomerHub();
    } else {
      document.addEventListener(
        'klaviyo-customer-hub-loaded',
        initializeCustomerHub,
        { once: true }
      );
    }
  })();
</script>

Recursos adicionais

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.

Esse artigo foi útil?
Use esse formulário somente para dar feedback sobre os artigos. Saiba como entrar em contato com o suporte.

Saiba mais sobre a Klaviyo

Community
Conecte-se com colegas, parceiros e especialistas da Klaviyo para ter ideias, compartilhar insights e tirar dúvidas.
Parceiros
Contrate um especialista certificado pela Klaviyo para ajudá-lo com uma tarefa específica ou para gerenciamento contínuo de marketing.
Suporte

Acesse o suporte na sua conta.

Suporte por e-mail (teste gratuito e contas pagas) Disponível 24 horas

Chat/assistência virtual
A disponibilidade varia conforme o local e o tipo de plano