Conectando Klaviyo y Redshift
La Advanced Klaviyo Data Platform no está incluida en la aplicación de marketing estándar de Klaviyo, y se requiere una subscripción para acceder a la funcionalidad correspondiente. Visita nuestra guía de facturación para saber cómo contratar este plan.
Resumen
Esta guía ayuda a los administradores de Redshift a preparar Amazon Redshift para Klaviyo, conceder el acceso mínimo necesario y completar la conexión para que puedas importar datos de perfil según lo programado. Aprenderás a:
- Crea los esquemas
KLAVIYO_TMPyKLAVIYO_IMPORT_FROM_DWH. - Crea un usuario de servicio dedicado para Klaviyo.
- Otorga permisos con privilegios mínimos.
- (Opcional) Valida los permisos y la conectividad.
- Conecta Redshift a Klaviyo y empieza a crear sincronizaciones.
Para obtener información general sobre cómo funciona Importación desde almacén de datos, incluidos los objetos compatibles y las prácticas recomendadas para la estructura de tablas, consulta Descripción de Importación desde almacén de datos en Klaviyo.
Crear los esquemas necesariosCrear los esquemas necesarios
Crea dos esquemas en la base de datos que Redshift utilizará para Klaviyo:
Ejecuta como administrador de la base de datos Redshift o con un rol con 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 muestra una lista de objetos en este esquema para que elijas, así que incluye solo las tablas que deseas importar. -
KLAVIYO_TMP: utilizado exclusivamente por Klaviyo para tablas temporales/de preparación durante los trabajos de sincronización. No modifiques los datos aquí: Klaviyo gestiona y limpia este esquema automáticamente.
Crear el usuario del servicio Klaviyo
Crea un usuario de base de datos dedicado para Klaviyo con una contraseña segura que puedas cambiar de forma independiente.
-- Reemplaza con tus propios nombres y una contraseña segura CREATE USER klaviyo_data_transfer_user WITH PASSWORD 'REPLACE_WITH_STRONG_PASSWORD';
Crea un rol para administrar las subvenciones para el usuario del servicio:
CREAR FUNCIÓN klaviyo_data_transfer_role; OTORGAR FUNCIÓN klaviyo_data_transfer_role A klaviyo_data_transfer_user;
Guarda el nombre de usuario y la contraseña en un lugar seguro, ya que los necesitarás para conectar Klaviyo a Redshift.
Otorga los permisos necesarios (privilegio mínimo).Otorga los permisos necesarios (privilegio mínimo).
-- 1) Permitir tablas temporales GRANT TEMPORARY ON DATABASE tu_base_de_datos TO ROLE klaviyo_data_transfer_role; -- 2) Permisos en el esquema de ensayo que gestiona Klaviyo 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) Acceso de solo lectura a tu esquema de importación 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; -- Recuerda conceder acceso a las nuevas tablas en el futuro -- 3a) Conceder SELECT en vistas específicas (repita según sea necesario) GRANT SELECT ON VIEW klaviyo_import_from_dwh.example_view_name TO ROLE klaviyo_data_transfer_role;(Opcional) Verifica tu configuración.
(Opcional) Verifica tu configuración.
Realiza algunas comprobaciones rápidas como usuario de Klaviyo para confirmar que las autorizaciones son correctas.
-- Cambiar a la base de datos de destino SET search_path TO klaviyo_tmp; -- 4.1 Validar la creación/lectura en KLAVIYO_TMP CREATE TABLE IF NOT EXISTS permission_check (id INT); INSERT INTO permission_check VALUES (1); SELECT COUNT(*) FROM permission_check; -- esperas 1 DROP TABLE permission_check; -- 4.2 Confirmar visibilidad de las tablas de importación SET search_path TO klaviyo_import_from_dwh; SELECT tablename FROM pg_table_def WHERE schemaname = 'klaviyo_import_from_dwh' LIMIT 25; -- 4.3 Confirmar SELECT en una tabla o vista de origen SELECT * FROM klaviyo_import_from_dwh.EXAMPLE_TABLE;Acceso a la red
Acceso a la red
Klaviyo Debes poder acceder a tu punto de conexión de Redshift.
- Punto de conexión de Public Redshift: lista de (entidades, sitios, etc.) permitidos KlaviyoIP estáticas en tu firewall o grupo de seguridad.
- Punto de conexión privado (por ejemplo, PrivateLink): garantiza la conectividad a través de tu ruta de red interna y tus políticas de seguridad.
Si utilizas grupos de seguridad, permite el acceso entrante en tu puerto Redshift (por defecto 5439) para los rangos de IP de Klaviyo:
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/32Prepara tus tablas de importación (estructura & a el rendimiento)
Prepara tus tablas de importación (estructura & a el rendimiento)
Asegúrate de que todas las tablas que planeas importar sigan estas convenciones para lograr sincronizaciones incrementales precisas y eficientes:
-
Columna de marca de tiempo: incluye una marca de tiempo de creación o última actualización por fila (por ejemplo,
inserted_at,updated_at,modified_at). - Actualizaciones monótonas: la marca de tiempo debe aumentar cada vez que cambia una fila.
- Zona horaria: Usa UTC o incluye información sobre la zona horaria. Si falta, Klaviyo asume UTC.
-
Identificadores coherentes: utiliza los mismos identificadores de perfil (
correo electrónico,teléfono,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 utilizan en las cargas de archivos o SFTP.
- Rendimiento: Considera la posibilidad de ordenar o distribuir las claves de tu columna de marca de tiempo para lograr lecturas incrementales eficientes.
-
Vistas: puedes importar desde tablas o vistas, siempre y cuando un simple
SELECTfuncione para el usuario de Klaviyo.
Conecta Redshift a Klaviyo
- En Klaviyo, abre la barra lateral izquierda y ve a Avanzado → Sincronización.
- Haz clic en Crear sincronización.
- Selecciona Importar datos desde tu almacén de datos.
- Elige Redshift.
- Haz clic en Conectar a Redshift e ingresa los siguientes datos de conexión:
| Campo | Descripción |
|---|---|
| Host | Tu punto de conexión de Redshift (por ejemplo, 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 del Servicio de Información sobre Medicamentos ( Klaviyo ) |
Una vez conectado, Klaviyo comprobará tus credenciales y la conectividad de red. Una vez verificado, puedes crear sincronizaciones y seleccionar tablas o vistas de klaviyo_import_from_dwh.
Consejos de solución de problemas
La prueba de conexión falla
- Verifica que las reglas del firewall o del grupo de seguridad permitan que las direcciones IP de Klaviyoaccedan a tu punto de conexión de Redshift en el puerto correcto.
- Confirma la configuración SSL y que estás utilizando el punto de conexión (clúster frente a grupo de trabajo), la región y el puerto correctos.
Las tablas no aparecen.
- Asegúrate de que las tablas estén en
klaviyo_import_from_dwh. - Confirma que el usuario de Klaviyo tiene
USOen el esquema ySELECCIÓNen las tablas o vistas.
No se sincronizan nuevas filas
- Verifica que tu columna de marca de tiempo se actualice cuando se produzcan cambios en las filas y que utilice UTC o incluya información sobre la zona horaria.
Errores de permiso en tiempo de ejecución
- Vuelve a ejecutar el SQL de validación como usuario de Klaviyo.
- Vuelve a aplicar las subvenciones o los privilegios predeterminados si es necesario.
Seguridad y mantenimiento
- Cambia la contraseña de usuario del servicio con regularidad y después de cada cambio de personal.
- Limita al usuario de Klaviyo a los dos esquemas anteriores y concede
USOsolo cuando sea necesario. - Mantén un libro de instrucciones sencillo en el que documentes tus instrucciones
GRANTexactas y los rangos de IP que has incluido en la lista de permitidos.
Preguntas frecuentes
¿Puedes importar desde varias bases de datos Redshift?
Sí. Crea los dos esquemas en cada base de datos y conecta los objetos de cada uno como sincronizaciones independientes.
¿Puedes usar vistas materializadas?
Sí. Otorga SELECT en la vista materializada al usuario de Klaviyo.
Apéndice: Ejemplo de DDL para una tabla de importación simple
CREATE TABLE klaviyo_import_from_dwh.profile_base ( external_id VARCHAR(128), email VARCHAR(320), teléfono VARCHAR(32), nombre VARCHAR(128), apellido VARCHAR(128), país VARCHAR(64), insertado_en TIMESTAMP ); -- Asegúrate de que la marca de tiempo aumente de forma monótona en las inserciones/actualizaciones -- (usa tu ETL/ELT para establecer inserted_at = GETDATE() en el momento de la carga)