Conectar Klaviyo y BigQuery (ETL inverso)
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 la funcionalidad asociada. Visita nuestra guía de facturación para saber cómo contratar este plan.
Configuración del entorno y conexión
Sigue estos pasos para preparar BigQuery para importar datos a Klaviyo. Crearás los conjuntos de datos necesarios, configurarás una cuenta de servicio dedicada y una clave, asignarás permisos, verificarás la configuración y crearás tu primera sincronización de importación.
Para obtener más información sobre cómo funciona la Importación desde almacén de datos en Klaviyo, incluidos los requisitos de datos de origen y las asignaciones de campos, consulta Comprender la Importación desde almacén de datos en Klaviyo.
1) Crea los conjuntos de datos necesarios
En BigQuery, crea 2 conjuntos de datos en el proyecto que usarás para Klaviyo. Ambos conjuntos de datos deben estar en la misma ubicación. Reemplaza YOUR_PROJECT_ID y YOUR_REGION en el ejemplo con el ID de tu proyecto y la ubicación del conjunto de datos, como us o europe-west1.
CREATE SCHEMA `YOUR_PROJECT_ID.KLAVIYO_IMPORT_FROM_DWH`
OPTIONS(location='YOUR_REGION');
CREATE SCHEMA `YOUR_PROJECT_ID.KLAVIYO_TMP`
OPTIONS(location='YOUR_REGION');KLAVIYO_IMPORT_FROM_DWH: Las tablas y vistas en este conjunto de datos están disponibles para que Klaviyo las lea y las importe.KLAVIYO_TMP: Datos temporales o de entorno de pruebas que se usan durante las operaciones de sincronización.
Crea al menos 1 tabla o vista que contenga los datos que quieres importar en KLAVIYO_IMPORT_FROM_DWH. Incluye una columna de marca de tiempo que registre cuándo se agregó o modificó cada fila; la seleccionarás para la detección de cambios al configurar la sincronización.
2) Crea la cuenta y la clave de Klaviyo Service
Crea o selecciona una cuenta de servicio de Google dedicada a esta integración; por ejemplo, klaviyo-data-transfer-user. Descargarás su clave JSON y se la proporcionarás a Klaviyo.
- En la consola de Google Cloud, selecciona el proyecto del paso 1 y luego ve a IAM & Administrador > Service cuentas.
- Crea una nueva cuenta de servicio (o selecciona una existente dedicada a Klaviyo).
- Abre la pestaña Claves y selecciona Agregar clave > Crear nueva clave. Selecciona JSON y haz clic en Crear. Guarda el archivo de clave descargado de forma segura; necesitarás su contenido al configurar la conexión en Klaviyo.
3) Asigna los permisos necesarios
Otorga acceso al conjunto de datos a la cuenta de servicio y permisos para ejecutar trabajos en el proyecto mediante los alcances que se indican a continuación. Necesitarás permiso para administrar el acceso a estos recursos o ayuda de tu administrador de Google Cloud.
Recurso | Rol obligatorio | Descripción |
|---|---|---|
|
| Permite que Klaviyo cree, lea y elimine tablas de prueba. |
|
| Permite que Klaviyo lea tus tablas. |
Tu proyecto de Google Cloud |
| Permite que la cuenta de servicio ejecute trabajos de BigQuery, incluidas las consultas. |
-- Replace YOUR_PROJECT_ID and SERVICE_ACCOUNT_EMAIL.
GRANT `roles/bigquery.dataEditor`
ON SCHEMA `YOUR_PROJECT_ID.KLAVIYO_TMP`
TO "serviceAccount:SERVICE_ACCOUNT_EMAIL";
GRANT `roles/bigquery.dataViewer`
ON SCHEMA `YOUR_PROJECT_ID.KLAVIYO_IMPORT_FROM_DWH`
TO "serviceAccount:SERVICE_ACCOUNT_EMAIL";Ejecuta el SQL anterior como administrador con permiso para otorgar acceso al conjunto de datos. Reemplaza SERVICE_ACCOUNT_EMAIL por la dirección de correo electrónico completa de la cuenta de servicio; por ejemplo, klaviyo-data-transfer-user@YOUR_PROJECT_ID.iam.gserviceaccount.com. Luego, otorga el rol de BigQuery Job User a nivel de proyecto con el siguiente comando de Google Cloud CLI:
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
--member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
--role="roles/bigquery.jobUser" \
--condition=None4) Verifica la configuración (opcional)
4.1 Confirma que existan los conjuntos de datos
Reemplaza YOUR_PROJECT_ID y YOUR_REGION por el mismo proyecto y la misma ubicación que usaste en el paso 1. Ejecuta las consultas SQL en esa ubicación. Reemplaza los nombres de tabla de ejemplo por una tabla o vista existente en el conjunto de datos de origen.
SELECT schema_name
FROM `YOUR_PROJECT_ID`.`region-YOUR_REGION`.INFORMATION_SCHEMA.SCHEMATA
WHERE schema_name IN ('KLAVIYO_IMPORT_FROM_DWH', 'KLAVIYO_TMP');4.2 Confirmar el acceso de la cuenta de servicio
Usa la clave de la cuenta de servicio para autenticarte con la CLI o la interfaz de programación de aplicaciones (API) de BigQuery y ejecutar una consulta simple:
bq --project_id=YOUR_PROJECT_ID \
--location=YOUR_REGION \
query --use_legacy_sql=false \
'SELECT COUNT(*) FROM `YOUR_PROJECT_ID.KLAVIYO_IMPORT_FROM_DWH.some_table`'4.3 Revisar permisos explícitos del conjunto de datos
SELECT object_name, privilege_type, grantee
FROM `YOUR_PROJECT_ID`.`region-YOUR_REGION`.INFORMATION_SCHEMA.OBJECT_PRIVILEGES
WHERE object_name = 'KLAVIYO_IMPORT_FROM_DWH'
AND object_type = 'SCHEMA'
AND grantee = 'serviceAccount:SERVICE_ACCOUNT_EMAIL';
SELECT object_name, privilege_type, grantee
FROM `YOUR_PROJECT_ID`.`region-YOUR_REGION`.INFORMATION_SCHEMA.OBJECT_PRIVILEGES
WHERE object_name = 'KLAVIYO_TMP'
AND object_type = 'SCHEMA'
AND grantee = 'serviceAccount:SERVICE_ACCOUNT_EMAIL';Estas consultas muestran solo las concesiones explícitas de conjuntos de datos, no los permisos heredados ni la concesión de BigQuery Job User a nivel de proyecto. Reemplaza SERVICE_ACCOUNT_EMAIL por el correo electrónico completo de la cuenta de servicio. Si no puedes consultar estos metadatos, pide al administrador de Google Cloud que revise las vinculaciones de roles.
4.4 Validar operaciones de creación/lectura
-- Test create in KLAVIYO_TMP
CREATE TABLE `YOUR_PROJECT_ID.KLAVIYO_TMP.test_permissions` (id INT64);
DROP TABLE `YOUR_PROJECT_ID.KLAVIYO_TMP.test_permissions`;
-- Test select in KLAVIYO_IMPORT_FROM_DWH
SELECT * FROM `YOUR_PROJECT_ID.KLAVIYO_IMPORT_FROM_DWH.some_existing_table` LIMIT 1;Tip: Ejecuta la consulta de la cuenta de servicio y crea/prueba lecturas con la misma cuenta y clave que le proporcionarás a Klaviyo. Conserva una copia de los resultados para auditorías.
5) Conéctate a BigQuery y crea una sincronización de importación
Una vez que el entorno de BigQuery esté configurado, completa la conexión en Klaviyo.
- En Klaviyo, abre Administración de datos > Sincronización en Avanzado en la barra lateral izquierda.
- Si ya tienes una conexión, haz clic en Crear sincronización. Si esta es la primera conexión, ve al siguiente paso.
- Selecciona Importar datos de tu almacén de datos.
- Elige Google BigQuery como almacén de datos.
- Haz clic en Conectar con BigQuery.
Cuando se te solicite, proporciona los siguientes detalles de configuración de la conexión:
Campo | Descripción | Dónde encontrarlo |
|---|---|---|
ID del proyecto | El ID del proyecto de Google Cloud. | Se encuentra en la consola de GCP en la parte superior de la página del proyecto. |
Región | La ubicación de ambos conjuntos de datos obligatorios, por ejemplo | Usa la ubicación que seleccionaste al crear ambos conjuntos de datos en el paso 1. |
Clave de la cuenta de servicio | El archivo de clave JSON que descargaste para la cuenta de servicio. | Pega todo el contenido del archivo de clave JSON que descargaste en el paso 2. |
Prueba la conexión y guarda la sincronización de importación
- Haz clic en Siguiente para abrir Probar conexión y luego haz clic en Probar. Resuelve cualquier error y vuelve a probar. Cuando la prueba se complete correctamente y encuentre al menos 1 tabla o vista, haz clic en Siguiente.
- En Crear sincronización, nombra la sincronización, selecciona la tabla o vista de origen y el tipo de datos, y elige Manual o Programar ejecución. Para una sincronización programada, configura el intervalo, la fecha de inicio, la hora de inicio y la zona horaria. Haz clic en Siguiente.
- En Propiedades de asignación, selecciona la columna de marca de tiempo para la detección de cambios y completa las asignaciones de campos obligatorias para tu tipo de datos. Haz clic en Listo para guardar la conexión de importación y sincronizar.
Siguiente paso: Para una importación manual, abre la conexión y selecciona Ejecutar manualmente en el menú de acciones de la sincronización. Para enviar datos de Klaviyo a BigQuery, configura una sincronización de exportación por separado con Entender la sincronización con el almacén de datos en Klaviyo.