Inicio / Guías / Cómo integrar WooCommerce con Klaviyo: guía completa de configuración

Cómo integrar WooCommerce con Klaviyo: sincronización, eventos y flujos esenciales

4,3 · 17 valoraciones
· Actualizado el 1 de julio de 2025

Conecta WooCommerce con Klaviyo paso a paso: plugin oficial, sincronización de clientes y pedidos, eventos clave, flujos de carrito abandonado y verificación de entregabilidad.

Cómo integrar WooCommerce con Klaviyo: guía completa de configuración

Klaviyo es uno de los ESP más potentes para ecommerce porque está construido alrededor de eventos de tienda, no de listas estáticas. Cuando se conecta correctamente con WooCommerce, cada visita, vista de producto, inicio de checkout o compra se convierte en un dato sobre el que disparar automatizaciones segmentadas. Esta guía cubre la integración técnica completa: instalación del plugin oficial, configuración de la API, mapeo de eventos, flujos esenciales y los problemas reales que aparecen al sincronizar tiendas medianas y grandes.

Para qué sirve la integración WooCommerce ↔ Klaviyo

La conexión nativa hace tres cosas a la vez:

  • Sync histórico y continuo de clientes y pedidos. Klaviyo importa la base existente de WooCommerce (clientes, productos, pedidos pasados) y mantiene la actualización en tiempo casi real vía webhooks.
  • Tracking onsite. Un snippet de JavaScript registra eventos anónimos (visitas, productos vistos) y los liga a un perfil cuando el visitante se identifica.
  • Sincronización de catálogo. Klaviyo crea un feed con productos, precios e imágenes para usar en bloques dinámicos de email (recomendaciones, recordatorios, abandono de navegación).

El resultado: campañas y flujos basados en comportamiento real (Placed Order, Started Checkout, Viewed Product) en vez de listas frías.

Requisitos previos

  • WooCommerce 6.0 o superior. Para versiones antiguas hay incompatibilidades de webhooks.
  • WordPress 6.0+ y PHP 7.4+ (idealmente PHP 8.1+).
  • Acceso a wp-admin con rol Administrador.
  • Cuenta de Klaviyo con un Public API Key y un Private API Key con permisos de lectura/escritura.
  • Dominio de envío propio configurado en Klaviyo con firma DKIM y configurar SPF ya publicados.
  • Si la tienda tiene caché agresivo (WP Rocket, LiteSpeed), revisa que no minifique ni difiera el script de Klaviyo de forma que rompa su carga.

Instalación del plugin oficial

Klaviyo mantiene un plugin gratuito en el repositorio de WordPress: Klaviyo: Marketing Automation, Email & SMS.

  1. WP Admin → Plugins → Añadir nuevo → busca “Klaviyo”.
  2. Instala el plugin oficial (autor: Klaviyo) y actívalo.
  3. Verás un nuevo menú lateral “Klaviyo”.
  4. Conecta la cuenta: introduce el Public API Key (site ID, formato XxYyZz).
  5. Para sync de pedidos, introduce el Private API Key con scope accounts:read, events:write, profiles:read-write, catalogs:read-write.

Después del primer guardado, el plugin lanza una sincronización inicial. En tiendas con miles de pedidos puede tardar varias horas; no la interrumpas reiniciando ni desactivando el plugin.

Verificar que el snippet onsite está cargado

<!-- En el <head> del frontend -->
<script async type="text/javascript"
  src="https://static.klaviyo.com/onsite/js/XxYyZz/klaviyo.js?company_id=XxYyZz"></script>

Si no aparece, revisa Klaviyo → Settings → Onsite tracking, y desactiva la opción “Disable onsite JS” si la activaste.

Configuración mínima recomendada

Listas y consentimiento

Crea al menos dos listas en Klaviyo:

  • Newsletter (marketing): para suscripciones explícitas con doble opt-in.
  • Customers (transaccional + marketing si optan): para clientes que han comprado.

Activa el double opt-in en la lista Newsletter. El RGPD exige consentimiento informado y específico; si la tienda factura en España, el doble opt-in es la práctica defensiva razonable. Configura el correo de confirmación en español, con marca clara y enlaces directos.

Mapeo de campos

En Klaviyo → Integrations → WooCommerce, revisa el mapeo:

  • email$email
  • first_name, last_name$first_name, $last_name
  • billing_country$country
  • billing_phone$phone_number (en formato E.164 si activas SMS)

Cualquier metadata adicional (idioma, segmento manual, fuente de captación) se puede mapear como propiedad personalizada.

Bandera de consentimiento

Klaviyo distingue entre “perfil existente” y “perfil suscrito a marketing”. Asegúrate de que solo se marca Subscribed cuando hay opt-in real:

// functions.php (solo si NO quieres que cada cliente vaya a marketing)
add_filter( 'klaviyo_woocommerce_subscribe_customer_on_checkout', '__return_false' );

Si quieres una casilla en el checkout, actívala desde WooCommerce → Settings → Klaviyo → “Add newsletter checkbox at checkout”.

Eventos típicos a sincronizar

El plugin envía estos eventos de forma nativa:

Evento KlaviyoDisparador WooCommerce
Active on SiteVisita identificada
Viewed ProductVista de single-product
Added to Cartwoocommerce_add_to_cart
Started CheckoutCarrito con email asociado
Placed Orderwoocommerce_order_status_processing
Ordered ProductPor cada line item del pedido
Fulfilled Orderwoocommerce_order_status_completed
Cancelled Orderwoocommerce_order_status_cancelled
Refunded OrderReembolso completo o parcial

Para eventos personalizados (suscripción a un curso, descarga de un PDF) usa la API:

function track_curso_descargado( $email, $curso ) {
    $payload = [
        'token'      => 'XxYyZz',
        'event'      => 'Descargó Curso',
        'customer_properties' => [ '$email' => $email ],
        'properties' => [ 'CursoID' => $curso ],
    ];
    wp_remote_post( 'https://a.klaviyo.com/api/track', [
        'body' => [ 'data' => base64_encode( wp_json_encode( $payload ) ) ],
    ] );
}

Flujos esenciales que activar

Estos cuatro flujos deberían estar configurados antes de empezar a invertir en captación:

  1. Welcome Series disparada por suscripción a Newsletter. 3-4 emails repartidos en 7-10 días con descuento, proof social, mejor ranking de productos y CTA suave.
  2. Abandoned Cart disparada por Started Checkout sin Placed Order en 60 minutos. Tres correos: 1h, 24h, 72h. Incluye los items del carrito con bloque dinámico.
  3. Browse Abandonment disparada por Viewed Product repetido sin compra. Más sutil que el carrito; un único email con producto y alternativas.
  4. Post-purchase disparada por Placed Order. Confirmación, instrucciones de uso/envío, cross-sell pasados 7 días, solicitud de reseña pasados 14-21 días.

Para clientes recurrentes, añade un quinto: Winback disparado por Date of Last Purchase mayor a 90/180 días.

Bloques dinámicos de producto

Klaviyo expone los items del pedido o carrito como event.extra.line_items. Ejemplo de iteración en el editor:

{% for item in event.extra.line_items %}
  <a href="{{ item.product.url }}">
    <img src="{{ item.product.images.0 }}" />
    <p>{{ item.product.title }}: {{ item.line_price|money_format }}</p>
  </a>
{% endfor %}

Si las imágenes no aparecen, revisa que los productos tienen imagen destacada y que las URLs son absolutas (https) y no relativas.

Errores comunes y soluciones

”Los eventos no llegan a Klaviyo”

Causas frecuentes:

  • Caché de página agresivo. Si tienes WP Rocket con HTML caching, Active on Site solo se dispara para usuarios logueados. Solución: excluir el script de Klaviyo de la minificación y confiar en el endpoint del lado del servidor para eventos críticos.
  • CSP restrictiva. Si tu cabecera Content-Security-Policy no incluye static.klaviyo.com y a.klaviyo.com, el snippet no carga.
  • Consent banner que bloquea Klaviyo. Comprueba con la pestaña Network del navegador que klaviyo.js se carga sin que el banner lo bloquee.

”Productos sin imagen en los emails”

Klaviyo cachea el catálogo cada hora. Si actualizas imágenes, fuerza un sync manual: Klaviyo → Catalogs → Sync now. Verifica también que las imágenes son accesibles públicamente (no detrás de un login o un firewall que bloquee bots).

”Customer match falla, se duplican perfiles”

Klaviyo une perfiles por email. Si tienes pedidos con email vacío (caso típico en pedidos manuales o B2B), se crean perfiles huérfanos. Soluciones:

  • Hacer obligatorio el campo email en pedidos manuales.
  • Usar la API de merge: POST /api/profiles/merge con email primario.

”Welcome series se dispara dos veces”

Suele pasar cuando hay un formulario de Klaviyo y, además, un plugin tipo Mailchimp for WP que también envía a Klaviyo. Centraliza la captación en una sola fuente.

”Bounce rate alto en la primera campaña”

Si la lista lleva tiempo sin activarse, limpia con doble opt-in o un servicio de verificación antes del primer envío. Una bounce rate alta arruina la reputación del nuevo dominio en Klaviyo. Revisa también bounces SMTP para entender la diferencia entre soft y hard.

Verificación: ¿la integración funciona?

Tres comprobaciones rápidas:

  1. Evento de test. Haz una compra de prueba con tu propio email. En Klaviyo → Profiles, busca tu email. Deben aparecer los eventos Active on Site, Started Checkout, Placed Order con los productos correctos.
  2. Catálogo. Klaviyo → Catalogs → Products. Cuenta los productos y compara con WooCommerce → Products. Si difieren mucho, fuerza sync.
  3. Envío real. Crea una campaña de prueba a un segmento de un único contacto (tú). En las cabeceras del email recibido revisa:
Authentication-Results: mx.google.com;
       dkim=pass [email protected] header.s=klaviyoXXX
       spf=pass smtp.mailfrom=bounce.tudominio.com
       dmarc=pass header.from=tudominio.com

Si SPF da softfail o DKIM falla, el dominio de envío no está bien configurado. Vuelve a Klaviyo → Settings → Domains.

Implicaciones de entregabilidad

Klaviyo envía desde un pool de IPs compartidas por defecto. Funciona bien si autenticas correctamente el dominio. Para volúmenes altos (>250k envíos/mes) hay IP dedicadas, pero requieren plan de warming propio.

Recomendaciones específicas:

  • Configura un subdominio dedicado (mail.tudominio.com o news.tudominio.com). Aísla la reputación del dominio raíz.
  • Publica política DMARC en p=none durante 2-4 semanas y verifica que los reportes RUA muestran SPF y DKIM pasando para Klaviyo. Después sube a quarantine.
  • Activa List-Unsubscribe one-click. Klaviyo lo añade por defecto si configuraste el dominio correctamente.
  • Si recibes muchas quejas en Gmail, revisa la guía de evitar spam en Gmail antes de subir el ritmo de envíos.

Sincronización avanzada con la API

Para necesidades que el plugin no cubre (suscripciones recurrentes, productos compuestos, B2B con cuentas), usa la API de Klaviyo directamente:

function klaviyo_track_event( $email, $event_name, $properties ) {
    $body = wp_json_encode( [
        'data' => [
            'type' => 'event',
            'attributes' => [
                'profile' => [ 'email' => $email ],
                'metric'  => [ 'name' => $event_name ],
                'properties' => $properties,
                'time' => gmdate( 'c' ),
            ],
        ],
    ] );

    wp_remote_post( 'https://a.klaviyo.com/api/events/', [
        'headers' => [
            'Authorization' => 'Klaviyo-API-Key pk_xxxxxxxxxxxx',
            'Content-Type'  => 'application/json',
            'revision'      => '2024-10-15',
        ],
        'body' => $body,
    ] );
}

Mantén la cabecera revision actualizada. Klaviyo versiona la API y un valor obsoleto deja de funcionar al cabo de meses.

Cuándo no usar el plugin

El plugin oficial es suficiente para el 90 % de las tiendas. Considera saltártelo (e ir a API directa) si:

  • Tienes una arquitectura headless con Next.js o Astro consumiendo WooCommerce vía REST.
  • Necesitas mapear modelos de datos complejos (suscripciones tipo WooCommerce Subscriptions con un esquema propio).
  • Tu sync de catálogo necesita lógica condicional (esconder productos por país, por ejemplo).

En esos casos, deshabilita el sync nativo y construye tu propio puente con webhooks de WooCommerce y Events API de Klaviyo.

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 email marketing y retención para ecommerce de Abalola para ecommerce: estrategia, producción y operación del stack sobre Klaviyo, Mailchimp o Brevo.

Preguntas frecuentes

¿Klaviyo tiene plugin oficial para WooCommerce?
Sí, Klaviyo mantiene un plugin oficial para WooCommerce que se instala desde el repositorio de WordPress y conecta API, eventos y catálogo de la tienda.
¿Qué eventos de WooCommerce ve Klaviyo?
Started Checkout, Placed Order, Ordered Product, Fulfilled Order y Refunded Order. Viewed Product y Active on Site requieren snippet de tracking en el theme.
¿Cómo se gestiona el doble opt-in?
Usa formularios de Klaviyo con opt-in habilitado o conecta los formularios de WooCommerce a listas Klaviyo con confirmación obligatoria antes de añadir a la lista.
¿Por qué no aparecen pedidos históricos en Klaviyo?
El sync inicial puede tardar horas y depende del tamaño de la base. Si tras 24 horas no aparece, revisa logs del plugin y reconecta la API key con todos los scopes.
¿Klaviyo sustituye los emails transaccionales de WooCommerce?
Puede hacerlo migrando las plantillas, pero conviene mantener WooCommerce con su SMTP propio para transaccional y usar Klaviyo solo para marketing y flujos avanzados.
¿El plugin de Klaviyo ralentiza WooCommerce?
El snippet onsite es asíncrono y no bloquea el render. El sync de pedidos sí puede generar cargas en el servidor durante la importación inicial; planifícalo en horario de bajo tráfico.
¿Cómo migro de Mailchimp a Klaviyo sin perder histórico?
Exporta clientes y campañas desde Mailchimp, importa los perfiles vía CSV o API, mantén Mailchimp activo dos semanas para terminar flujos en curso, y luego desactiva.