Advanced Klaviyo Data Platform no está incluido en la aplicación de marketing estándar de Klaviyo, y se requiere una suscripción para acceder a las funciones asociadas. Consulta nuestra guía de facturación para saber cómo adquirir este plan.

Screenshot 2025-11-09 at 12.41.47 PM.png
Screenshot 2025-11-09 at 12.41.47 PM.png

Introducción

Esta guía explica a los administradores de Redshift cómo preparar Amazon Redshift para Klaviyo, conceder el acceso mínimo necesario y completar la conexión para que puedas importar datos de perfiles según un calendario. Aprenderás a:

  1. Crea los esquemas KLAVIYO_TMP y KLAVIYO_IMPORT_FROM_DWH
  2. Crea un usuario de servicio dedicado para Klaviyo
  3. Concede permisos con el mínimo privilegio
  4. (Opcional) Validar los permisos de la base de datos
  5. Conecta Redshift a Klaviyo y crea una sincronización programada de perfiles

Si quieres información de fondo sobre cómo funciona la importación de almacén de datos (incluidos los objetos compatibles y las prácticas recomendadas para la estructura de tablas), consulta Entender la importación de almacén de datos en Klaviyo.

Crea los esquemas obligatorios

Crea 2 esquemas en la base de datos de Redshift que usarás para Klaviyo:

auto
-- Run as a Redshift DB admin or a role with CREATE SCHEMA
CREATE SCHEMA IF NOT EXISTS klaviyo_import_from_dwh;
CREATE SCHEMA IF NOT EXISTS klaviyo_tmp;
  • KLAVIYO_IMPORT_FROM_DWH: coloca aquí tus tablas o vistas finales listas para sincronizar. Durante la configuración, Klaviyo enumera los objetos de este esquema para que elijas, así que incluye solo las tablas que planeas importar.
  • KLAVIYO_TMP – Usado exclusivamente por Klaviyo para tablas temporales/de fase de preparación durante los trabajos de sincronización. No modifiques los datos aquí (Klaviyo gestiona y limpia este esquema automáticamente).

Crea el usuario de servicio de Klaviyo

Crea un usuario de base de datos dedicado para Klaviyo con una contraseña segura que puedas rotar de forma independiente.

auto
-- Replace with your own names and a strong password
CREATE USER klaviyo_data_transfer_user WITH PASSWORD 'REPLACE_WITH_STRONG_PASSWORD';

Crea un rol para gestionar las concesiones del usuario de servicio:

auto
CREATE ROLE klaviyo_data_transfer_role;
GRANT ROLE klaviyo_data_transfer_role TO klaviyo_data_transfer_user;

Guarda el nombre de usuario y la contraseña de forma segura (los usarás al conectar Klaviyo con Redshift).

Conceder los permisos necesarios (mínimo privilegio)

Ejecuta estas sentencias como administrador de Redshift en la base de datos que preparaste. Estas concesiones se aplican a tablas y vistas existentes. Concede acceso a nuevas tablas o vistas de origen antes de añadirlas a una sincronización.

auto
-- 1) Permissions on the staging schema Klaviyo manages
GRANT USAGE ON SCHEMA klaviyo_tmp TO ROLE klaviyo_data_transfer_role;
GRANT CREATE ON SCHEMA klaviyo_tmp TO ROLE klaviyo_data_transfer_role;

-- 2) Read-only access to existing tables and views in your import schema
GRANT USAGE ON SCHEMA klaviyo_import_from_dwh TO ROLE klaviyo_data_transfer_role;
GRANT SELECT ON ALL TABLES IN SCHEMA klaviyo_import_from_dwh TO ROLE klaviyo_data_transfer_role;
-- Remember to grant access to new tables and views in the future

-- Alternatively, grant SELECT on each specific source table or view:
-- GRANT SELECT ON TABLE klaviyo_import_from_dwh.example_view_name TO ROLE klaviyo_data_transfer_role;

(Opcional) Comprueba la configuración

Conéctate a la base de datos que preparaste como usuario de Klaviyo Service y, a continuación, ejecuta estas comprobaciones. Sustituye EXAMPLE_TABLE por una tabla o vista de origen que tengas previsto sincronizar. Estas comprobaciones no sustituyen al paso Probar conexión en Klaviyo.

auto
-- 1) Validate create/read access in KLAVIYO_TMP
-- Use a new test table name if klaviyo_permission_check already exists
CREATE TABLE klaviyo_tmp.klaviyo_permission_check (id INT);
INSERT INTO klaviyo_tmp.klaviyo_permission_check VALUES (1);
SELECT COUNT(*) FROM klaviyo_tmp.klaviyo_permission_check;  -- expect 1
DROP TABLE klaviyo_tmp.klaviyo_permission_check;

-- 2) Confirm visibility of source tables and views
SELECT DISTINCT table_name FROM information_schema.columns
WHERE table_schema = 'klaviyo_import_from_dwh'
ORDER BY table_name
LIMIT 25;

-- 3) Confirm SELECT on a source table or view
SELECT * FROM klaviyo_import_from_dwh.EXAMPLE_TABLE LIMIT 1;

Acceso a la red

Klaviyo debe poder acceder a tu punto de conexión de Redshift.

  • Punto de conexión público de Redshift: añade a la lista de permitidos las IP estáticas de Klaviyo en tu firewall o grupo de seguridad.
  • Punto de conexión privado (p. ej., PrivateLink): asegúrate de que la conectividad se realiza a través de la ruta de red interna y las políticas de seguridad.

Si usas grupos de seguridad, permite el acceso entrante en tu puerto de Redshift (valor predeterminado 5439) para los rangos de IP de Klaviyo:

auto
184.72.183.187/32
52.206.71.52/32
3.227.146.32/32
44.198.39.11/32
35.172.58.121/32
3.228.37.244/32
54.88.219.8/32
3.214.211.176/32

Prepara las tablas de importación (estructura y rendimiento)

Asegúrate de que todas las tablas que tengas previsto importar sigan estas convenciones para que las sincronizaciones incrementales sean precisas y eficientes:

  • Columna de marca de tiempo: Incluye una marca de tiempo de creación o de última actualización por fila (p. ej., inserted_at, updated_at, modified_at). Utiliza una columna TIMESTAMP o TIMESTAMPTZ con un valor para cada fila. Las columnas de texto y DATE no están disponibles para la detección de cambios.
  • Actualizaciones monótonas: la marca de tiempo debe aumentar cada vez que cambie una fila.
  • Zona horaria: usa UTC o incluye información de zona horaria. Si falta, Klaviyo asume UTC.
  • Identificadores coherentes: Incluye al menos 1 identificador de perfil (email, phone, external_id, etc.). Usa identificadores coherentes en todas las tablas de importación para evitar perfiles duplicados.
  • Formatos de consentimiento: al sincronizar los datos de consentimiento, sigue los mismos valores/formatos válidos que se usan en las cargas de archivos o SFTP.
  • Rendimiento: considera una clave de ordenación en la columna de marca de tiempo para realizar lecturas incrementales eficientes.
  • Vistas: puedes importar desde tablas o vistas, siempre que una SELECT simple funcione para el usuario de Klaviyo.

Conecta Redshift y crea una sincronización de perfil

  1. En Klaviyo, ve a Avanzado > Gestión de datos > Sincronización.
  2. Si ya tienes una conexión configurada, haz clic en Crear sincronización. Si esta es tu primera conexión, continúa con el siguiente paso.
  3. Selecciona Importar datos desde tu almacén de datos.
  4. Elige Amazon Redshift.
  5. Haz clic en Conectar con Redshift e introduce los siguientes datos de conexión:

Campo

Descripción

Nombre

Introduce un nombre, como el nombre de tu base de datos de Redshift.

URL del host

Tu punto de conexión de Redshift (p. ej., example-cluster.abc123.us-east-1.redshift.amazonaws.com)

Puerto

5439 (o tu puerto personalizado)

Base de datos

La base de datos que contiene klaviyo_tmp y klaviyo_import_from_dwh

Nombre de usuario/Contraseña

Las credenciales de usuario de Klaviyo Service

  1. Haz clic en Siguiente para abrir Probar conexión y, a continuación, haz clic en Probar. Klaviyo comprueba la conexión, los esquemas necesarios y los permisos del entorno de prueba y, a continuación, muestra las tablas y vistas accesibles en klaviyo_import_from_dwh. Para continuar, debe haber disponible al menos 1 fuente. Cuando la prueba se complete correctamente y haya una fuente disponible, haz clic en Siguiente.
  2. Introduce un nombre de sincronización único en Nombre, selecciona la tabla o vista en Fuente de datos y selecciona Perfiles en Tipos de objetos de datos.
  3. En Cadence, selecciona Programar ejecución. Elige el intervalo en Cada y, a continuación, configura Fecha de inicio, Hora de inicio y Zona horaria. Haz clic en Siguiente.
  4. En Asignar propiedades, selecciona la columna de marca de tiempo en Detección de cambios > Detección de nuevas filas. Asigna al menos 1 identificador de perfil y las propiedades de perfil que quieras importar. Elimina las asignaciones de las columnas que no quieras importar. Tampoco puedes asignar la columna de detección de cambios a una propiedad de perfil.
  5. Haz clic en Listo para guardar la conexión y sincronizar. Klaviyo te devuelve a Sincronizando y la sincronización se ejecuta según la programación que seleccionaste.

Consejos para solucionar problemas

Fallo en la prueba de conexión

  • Comprueba que las reglas del firewall o del grupo de seguridad permitan que las IP de Klaviyo lleguen a tu punto de conexión de Redshift en el puerto correcto.
  • Confirma la configuración de SSL y que estás usando el punto de conexión correcto (clúster frente a grupo de trabajo), la región y el puerto.

Las tablas no aparecen

  • Asegúrate de que las tablas estén en klaviyo_import_from_dwh.
  • Confirma que el usuario de Klaviyo tenga USAGE en el esquema y SELECT en las tablas o vistas.

No se sincronizan filas nuevas

  • Comprueba que tu columna de marca de tiempo se actualice cuando cambien las filas y use UTC o incluya información de zona horaria.

Errores de permisos en el tiempo de ejecución

  • Vuelve a ejecutar la validación SQL como el usuario de Klaviyo.
  • Vuelve a aplicar los permisos o los privilegios predeterminados si es necesario.

Seguridad y mantenimiento

  • Rota la contraseña del usuario de servicio con regularidad y después de cambios en el personal. Después de cambiar la contraseña en Redshift, actualízala en la pestaña Configuración de la conexión de Klaviyo y haz clic en Guardar.
  • Limita el usuario de Klaviyo a los 2 esquemas anteriores y concede USAGE solo cuando sea necesario.
  • Mantén un runbook sencillo en el que se documenten tus declaraciones GRANT exactas y los rangos de IP que has incluido en la allowlist.

PREGUNTAS FRECUENTES

¿Puedo importar desde varias bases de datos de Redshift?
Sí. Crea los 2 esquemas y concede acceso en cada base de datos; luego, crea una conexión de Redshift independiente en Klaviyo para cada base de datos. Añade syncs independientes para las tablas o vistas de origen dentro de cada conexión.

¿Puedo usar vistas materializadas?
Sí. Concede SELECT en la vista materializada al usuario de Klaviyo.

Apéndice: ejemplo de DDL para una tabla de importación sencilla

auto
CREATE TABLE klaviyo_import_from_dwh.profile_base (
  external_id   VARCHAR(128),
  email         VARCHAR(320),
  phone         VARCHAR(32),
  first_name    VARCHAR(128),
  last_name     VARCHAR(128),
  country       VARCHAR(64),
  inserted_at   TIMESTAMP
);

-- ensure monotonically increasing timestamp on inserts/updates
-- (use your ETL/ELT to set inserted_at = GETDATE() at load time)
¿Te ha resultado útil este artículo?
Utiliza este formulario solo para enviar comentarios sobre el artículo. Más información sobre cómo contactar con el servicio de asistencia.

Descubre más sobre Klaviyo

Klaviyo Community
Conecta con compañeros, socios y expertos de Klaviyo para encontrar ideas, compartir información y resolver todas tus dudas.
Socios
Contrata a un experto certificado por Klaviyo para ayudarte con una tarea específica o para la gestión continua de marketing.
Asistencia

Accede al servicio de asistencia a través de tu cuenta.

Asistencia por correo electrónico (prueba gratuita y cuentas de pago) Disponible 24/7

Asistencia por chat/virtual
La disponibilidad varía según la ubicación y el tipo de plan