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 las funciones asociadas. Consulta nuestra guía de facturación para saber cómo adquirir 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 la primera sincronización de importación.
Para obtener más información sobre cómo funciona la importación de almacén de datos en Klaviyo, incluidos los requisitos de los datos de origen y las asignaciones de campos, consulta Comprender la importación de 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. Sustituye YOUR_PROJECT_ID y YOUR_REGION en el ejemplo por el ID del 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 de este conjunto de datos están disponibles para que Klaviyo las lea y las importe.KLAVIYO_TMP: datos temporales o de preproducción utilizados 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 añadió o modificó cada fila; la seleccionarás para detectar 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. Descarga su clave JSON y proporciónasela a Klaviyo.
- En la consola de Google Cloud, selecciona el proyecto del paso 1 y, a continuación, ve a IAM y Administrador > Cuentas de servicio.
- Crea una cuenta de servicio nueva (o selecciona una existente dedicada a Klaviyo).
- Abre la pestaña Claves y selecciona Añadir 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 obligatorios
Concede a la cuenta de servicio acceso al conjunto de datos y permiso para ejecutar trabajos en el proyecto usando los ámbitos que se indican a continuación. Necesitarás permiso para gestionar el acceso a estos recursos o ayuda de tu administrador de Google Cloud.
Recurso | Rol obligatorio | Descripción |
|---|---|---|
|
| Permite a Klaviyo crear, leer y eliminar tablas de preproducción. |
|
| Permite que Klaviyo lea tus tablas. |
El 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 conceder acceso al conjunto de datos. Sustituye SERVICE_ACCOUNT_EMAIL por la dirección de email completa de la cuenta de servicio; por ejemplo, klaviyo-data-transfer-user@YOUR_PROJECT_ID.iam.gserviceaccount.com. A continuación, concede 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 tu configuración (opcional)
4.1 Confirmar que existen los conjuntos de datos
Sustituye YOUR_PROJECT_ID y YOUR_REGION por el mismo proyecto y la misma ubicación que se utilizaron en el paso 1. Ejecuta las consultas SQL en esa ubicación. Sustituye los nombres de las tablas 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 a la cuenta de servicio
Usa la clave de cuenta de servicio para autenticarte con BigQuery CLI o API y ejecutar una consulta sencilla:
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 Revisa los 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 solo muestran concesiones explícitas del conjunto de datos, no permisos heredados ni la concesión de usuario de trabajos de BigQuery a nivel de proyecto. Sustituye SERVICE_ACCOUNT_EMAIL por el email 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 Valida 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;Consejo: Ejecuta la consulta de la cuenta de servicio y realiza pruebas de creación/lectura con la misma cuenta y clave que proporcionarás a Klaviyo. Conserva una copia de los resultados para las auditorías.
5) Conéctate a BigQuery y crea una sincronización de importación
Una vez que tu entorno de BigQuery esté configurado, completa la conexión en Klaviyo.
- En Klaviyo, abre Gestió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 tu primera conexión, ve al siguiente paso.
- Selecciona Importar datos desde 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 conexión:
Campo | Descripción | Dónde encontrarlo |
|---|---|---|
ID del proyecto | El ID de tu 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, a continuación, 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, ponle un nombre a 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 Asignar propiedades, 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 independiente con Entender la sincronización del almacén de datos en Klaviyo.