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 y la conectividad
  5. Conecta Redshift con Klaviyo y empieza a crear sincronizaciones

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 dos esquemas en la base de datos que Redshift utilizará 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)

auto
-- 1) Allow temporary tables
GRANT TEMPORARY ON DATABASE your_database TO ROLE klaviyo_data_transfer_role;

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

-- 3) Read-only access to 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 in the future

-- 3a) Grant SELECT on specific views (repeat as needed)
GRANT SELECT ON VIEW klaviyo_import_from_dwh.example_view_name TO ROLE klaviyo_data_transfer_role;

(Opcional) Comprueba la configuración

Ejecuta algunas comprobaciones rápidas como el usuario de Klaviyo para confirmar que las concesiones son correctas.

auto
-- Switch to the target database
SET search_path TO klaviyo_tmp;

-- 4.1 Validate create/read in KLAVIYO_TMP
CREATE TABLE IF NOT EXISTS permission_check (id INT);
INSERT INTO permission_check VALUES (1);
SELECT COUNT(*) FROM permission_check;  -- expect 1
DROP TABLE permission_check;

-- 4.2 Confirm visibility of import tables
SET search_path TO klaviyo_import_from_dwh;
SELECT tablename FROM pg_table_def
WHERE schemaname = 'klaviyo_import_from_dwh'
LIMIT 25;

-- 4.3 Confirm SELECT on a source table or view
SELECT * FROM klaviyo_import_from_dwh.EXAMPLE_TABLE;

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 tus 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).
  • 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: Usa los mismos identificadores de perfil (email, phone, external_id, etc.) en todas las tablas de importación para evitar 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 claves de ordenación o de distribución en la columna de marca de tiempo para lecturas incrementales eficientes.
  • Vistas: puedes importar desde tablas o vistas, siempre que una SELECT simple funcione para el usuario de Klaviyo.

Conectar Redshift con Klaviyo

  1. En Klaviyo, abre la barra lateral izquierda y ve a Avanzado → Sincronización.
  2. Haz clic en Crear sincronización.
  3. Selecciona Importar datos desde tu almacén de datos.
  4. Elige Redshift.
  5. Haz clic en Conectar con Redshift e introduce los siguientes datos de conexión:

Campo

Descripción

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

Después de conectarte, Klaviyo probará tus credenciales y la conectividad de red. Una vez verificado, puedes crear sincronizaciones y seleccionar tablas o vistas de klaviyo_import_from_dwh.

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

  • Rotar la contraseña del usuario de servicio con regularidad y tras cambios de personal.
  • Limita el usuario de Klaviyo a los dos 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 dos esquemas en cada base de datos y conecta objetos de cada una como sincronizaciones independientes.

¿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