Cómo integrar BigCommerce con Klaviyo: app, eventos y flujos clave
Guía práctica para conectar BigCommerce con Klaviyo: instalación de la app, sync de productos y pedidos, eventos de carrito abandonado, flujos clave y verificación SPF/DKIM.
BigCommerce es la opción SaaS para tiendas medianas y grandes que valoran un panel todoterreno (B2B, multi-storefront, headless con BigCommerce + Stencil/Catalyst) sin la rigidez de Shopify. Klaviyo se conecta a BigCommerce mediante una app oficial bien mantenida, con sync de catálogo y eventos similares a los de Shopify. La integración funciona muy bien si entiendes los detalles: cómo BigCommerce trackea checkouts, dónde inyectar el snippet en Stencil y cómo desambiguar perfiles guest. Esta guía cubre la configuración real y los problemas que aparecen.
Para qué sirve la integración BigCommerce ↔ Klaviyo
Una vez conectadas, Klaviyo dispone de:
- Sync histórico de clientes, pedidos y productos.
- Tracking onsite mediante el snippet de Klaviyo cargado en el theme Stencil.
- Eventos en tiempo real: vistas de producto, adiciones al carrito, inicios de checkout, pedidos.
- Catálogo dinámico para bloques de email con imágenes y precios.
Para B2B o headless con BigCommerce GraphQL, la integración requiere algo más de trabajo: el web pixel oficial cubre Stencil pero no necesariamente Catalyst o frontends Next.js custom.
Requisitos previos
- Tienda BigCommerce activa (Standard, Plus, Pro o Enterprise).
- Acceso de propietario o staff con permisos sobre Apps y Settings.
- Cuenta de Klaviyo con Public y Private API Key.
- Theme Stencil moderno (la integración asume Stencil 3+).
- Subdominio de envío con configurar SPF y firma DKIM configurados.
Instalación de la app oficial
- Desde el panel de BigCommerce, ve a Apps → Marketplace → busca “Klaviyo”.
- Instala la app Klaviyo: Email & SMS Marketing.
- Acepta los permisos.
- Conecta tu cuenta Klaviyo (OAuth).
- Selecciona la audiencia destino. Si es nueva, crea
BigCommerce Customers. - Activa Web Tracking, Catalog Sync y Order Sync.
Tras la conexión, Klaviyo:
- Importa histórico de clientes y pedidos (12 meses por defecto).
- Sincroniza productos con metadata.
- Inyecta el web pixel en el frontend de Stencil.
Verificación del web pixel
Inspecciona la tienda con DevTools, busca klaviyo en Network. Deberías ver:
GET https://static.klaviyo.com/onsite/js/PUBLIC_KEY/klaviyo.js
Si no aparece, ve a Klaviyo → Integrations → BigCommerce y reactiva el toggle de Web Tracking. En Stencil custom puede ser necesario añadirlo manualmente al templates/components/common/header.html:
<script async src="https://static.klaviyo.com/onsite/js/{{settings.klaviyo_public_key}}/klaviyo.js"></script>
Configuración mínima recomendada
Listas y consent
Crea listas dedicadas:
Newsletter BCcon doble opt-in.Customers BC(sync, no marketing por defecto).
En BigCommerce → Settings → Email → Customer email settings, asegura que el opt-in del checkout está activado y sin marcar por defecto (RGPD).
Mapeo de campos
| Klaviyo | BigCommerce |
|---|---|
$email | customer.email |
$first_name, $last_name | customer.first_name, customer.last_name |
$phone_number | customer.phone (E.164) |
$organization | customer.company |
$country | address.country_iso2 |
Para B2B, mapea customer_group_id como propiedad personalizada para segmentar entre B2C y wholesale.
Identificación cross-device
El web pixel guarda la cookie __kla_id y, cuando el visitante mete email en checkout, une el perfil anónimo con el identificado. Para que esto funcione bien:
- Asegúrate de que
_learnq.push(['identify'])se llama en cualquier formulario donde el usuario meta su email. - En Stencil customer-account.html:
{{#if customer}}
<script>
window._learnq = window._learnq || [];
_learnq.push(['identify', {
'$email': '{{customer.email}}',
'$first_name': '{{customer.first_name}}',
'$last_name': '{{customer.last_name}}'
}]);
</script>
{{/if}}
Eventos típicos a sincronizar
La integración mapea por defecto:
| Evento Klaviyo | Origen BigCommerce |
|---|---|
Active on Site | web pixel |
Viewed Product | web pixel + endpoint server-side |
Added to Cart | web pixel |
Started Checkout | webhook checkout.cart.updated con email |
Placed Order | webhook order.created |
Ordered Product | iteración de line items |
Fulfilled Order | webhook order.statusUpdated con shipped |
Cancelled Order | webhook order.statusUpdated con cancelled |
Refunded Order | webhook refund.created |
Para eventos custom (review enviada, registro a programa de fidelización), usa la API:
window._learnq = window._learnq || [];
_learnq.push(['track', 'Joined Loyalty Program', {
Tier: 'Silver'
}]);
Flujos esenciales que activar
Antes de campañas masivas, monta:
- Welcome Series. Trigger: nuevo subscriber. 3 emails con cupón, marca, productos top.
- Abandoned Cart.
Started CheckoutsinPlaced Orderen 1h. 3 emails: 1h, 24h, 72h. - Browse Abandonment.
Viewed Productrepetido sin add to cart. - Post-purchase.
Placed Order. Confirmación, instrucciones, review request. - Winback.
Date of Last Order> 90 días.
Para B2B, añade un flow de renovación disparado por días desde último pedido y filtrado por customer_group_id=wholesale.
Bloque dinámico de productos
{% for item in event.extra.line_items %}
<a href="{{ item.product.url }}">
<img src="{{ item.product.images.0 }}" />
{{ item.product.title }}: {{ item.line_price | money_format }}
</a>
{% endfor %}
Para que las imágenes carguen, BigCommerce debe servirlas por cdn11.bigcommerce.com u otro CDN público.
Errores comunes y soluciones
”El web pixel no carga en Catalyst (headless)”
Catalyst usa Next.js 14+. La inyección automática del web pixel oficial está pensada para Stencil. En Catalyst, añade en el componente raíz:
import Script from 'next/script';
export default function Layout({ children }) {
return (
<>
<Script
async
src="https://static.klaviyo.com/onsite/js/PUBLIC_KEY/klaviyo.js"
strategy="afterInteractive"
/>
{children}
</>
);
}
Y dispara los eventos manualmente desde los hooks del cliente (al ver producto, añadir al carrito, etc.).
”Started Checkout no se dispara”
BigCommerce envía el webhook checkout.cart.updated solo cuando hay email asociado al carrito. Si tu checkout no captura email hasta el último paso, llegas tarde. Solución: redibuja el flujo para pedir email al inicio.
”Histórico no llega completo”
Por defecto, 12 meses. Para más, contacta soporte de Klaviyo o exporta CSV desde BigCommerce e importa por API. No importes contactos no opt-in.
”Imágenes rotas en bloques”
BigCommerce sirve imágenes por CDN propio. Si has cambiado el theme y alterado tamaños, las URLs cacheadas en Klaviyo apuntan a versiones antiguas. Klaviyo → Catalogs → Sync now.
”Customer match con guests”
Mismo problema que en Shopify: guests con emails distintos generan perfiles distintos. Educa al equipo de atención al cliente para detectar duplicados y hacer merge.
”Eventos duplicados de Placed Order”
Si tienes alguna app paralela (Yotpo, ReCharge) que también dispara webhooks, audita en BigCommerce → Advanced Settings → Webhooks. Solo Klaviyo debería estar suscrito a order.created para evitar duplicados.
Verificación: ¿todo funciona?
- Pedido de prueba. Compra con tu email. Klaviyo → Profiles: tu perfil con eventos
Active on Site,Started Checkout,Placed Order. - Catálogo. Klaviyo → Catalogs → Products: número de productos coincide con BC.
- Email real. Campaña test. Cabeceras esperadas:
Authentication-Results: mx.google.com;
dkim=pass [email protected] header.s=klaviyo
spf=pass smtp.mailfrom=bounce.tutienda.com
dmarc=pass header.from=tutienda.com
Si DKIM falla, revisa Klaviyo → Settings → Domains → Verify domain.
Implicaciones de entregabilidad
BigCommerce delega marketing por completo en Klaviyo (o el ESP que conectes). Los emails transaccionales nativos (confirmación de pedido, password reset) salen del SMTP interno de BigCommerce, que sí tiene buena reputación pero limita personalización.
Recomendaciones:
- Subdominio dedicado para Klaviyo (
mail.tutienda.com). - Si reemplazas los transaccionales nativos por Klaviyo (a través de la API de BigCommerce que permite
is_admin_only=falsepara algunos templates), unifica reputación. - Política DMARC en
p=nonedurante 2-4 semanas. Verifica reportes RUA. Despuésquarantine. - Activa List-Unsubscribe one-click. Klaviyo lo añade por defecto.
- Warming progresivo si arrancas con base nueva.
- Monitoriza bounces SMTP y revisa evitar spam en Gmail.
B2B y multi-storefront
BigCommerce permite multi-storefront (varios dominios sobre la misma cuenta). Klaviyo se conecta normalmente por storefront:
- Una cuenta Klaviyo por storefront con dominios distintos: aísla métricas y reputación.
- Una sola cuenta para varios storefronts: posible si los dominios comparten reputación. Etiqueta perfiles con propiedad
store_idpara segmentar.
En B2B con BigCommerce B2B Edition:
- Mapea
customer_group_idcomo propiedad personalizada. - Crea segmentos por grupo (wholesale vs retail).
- Filtra los flujos por segmento para no enviar precios B2C a wholesale.
Recursos relacionados
Si quieres profundizar, prueba estas herramientas gratuitas: Domain Health, mail tester, validador SPF y validador DMARC.
¿Necesitas que alguien lleve tu canal de email entero? Abalola Mail es la agencia de retención y email marketing de Abalola para ecommerce: estrategia, producción y operación del stack sobre Klaviyo, Mailchimp o Brevo.