Home

Cómo conectar Klaviyo a BigQuery y programar la actualización de datos

Klaviyo tiene más de 300 integraciones pre-construidas, pero en su mayoría permiten a las empresas importar datos de plataformas de marketing a Klaviyo. Cuando se trata de exportar datos desde Klaviyo, las opciones de integración son bastante limitadas, pero hay un par de opciones para solucionar este problema. En este artículo, vamos a discutir la forma manual de exportar datos de marketing de Klaviyo, así como los métodos automatizados que pueden ayudarte a conectar Klaviyo a BigQuery. 

Métodos para conectar Klaviyo a BigQuery

Dado que BigQuery ofrece más capacidades para descubrir información a partir de datos empresariales, es una buena idea integrar Klaviyo con él. A continuación, se presentan tres métodos para hacer que esto suceda:

  1. Coupler.io: Es una plataforma de automatización de informes para conectar Klaviyo con hojas de cálculo, cuadros de mando y almacenes de datos. No requiere conocimientos de codificación, por lo que los usuarios pueden configurar fácilmente un flujo de datos automatizado entre dos aplicaciones. Esta solución te permite transformar tus datos inmediatamente y programar transferencias de datos posteriores a tu destino.
  2. Scripting ETL personalizado: Puedes extraer datos de cualquier aplicación utilizando su API. Google Apps Script permite a los usuarios crear scripts que pueden consultar una API y obtener datos específicos de ella. A continuación, puedes descargarlos o enviarlos en formato JSON directamente al destino. Si tienes conocimientos de programación, te ayudará a automatizar este tipo de tareas sin necesidad de recurrir a una plataforma de terceros.
  3. Importación manual de datos: Es posible exportar diferentes tipos de datos de Klaviyo como CSV. Si tienes permisos administrativos, puedes localizar los datos (lista y segmentos, puntos de referencia, perfiles, etc.), descargar el archivo CSV y luego subirlo a BigQuery manualmente. Si no necesitas actualizar los datos de Klaviyo en BigQuery a menudo, puedes utilizar las funciones nativas de exportación para mover tus datos cuando lo necesites. Para actualizaciones regulares, es mejor considerar la automatización.

Prepara tu clave API Klaviyo

Si quieres conectar Klaviyo a BigQuery automáticamente, necesitarás preparar primero tu clave API de Klaviyo. Así que, tanto si decides crear una conexión con una app de automatización fácil de usar como si lo haces escribiendo scripts, ambas opciones requieren una clave API.

Para encontrar la clave, tienes que ir a Settings en Klaviyo. En Account, haz clic en API keys, encontrarás cualquier clave existente y el botón que dice Create Private API Key.

1 klaviyo api key

Ahora, vamos a explorar los métodos para ayudar a conectar Klaviyo a BigQuery.

Cómo conectar Klaviyo a BigQuery automáticamente sin codificación

Para extraer datos de Klaviyo a BigQuery con Coupler.io, tienes que seguir tres sencillos pasos.

1. Extrae tus datos de Klaviyo

Haz clic en Proceed en el siguiente formulario, que tiene Klaviyo preseleccionado como fuente de datos y BigQuery como destino. Se te ofrecerá crear una cuenta de Coupler.io de forma gratuita.

A continuación, utilizarás tu Private API key para conectar tu cuenta de Klaviyo. Ya explicamos cómo obtener la clave en la sección anterior. Después, tienes que seleccionar la entidad de datos que quieres exportar. Por ejemplo, lista de campañas, lista de perfiles, informe, etc.

2. Previsualiza y transforma tus datos

La segunda parte del proceso de configuración del importador de Coupler.io te permite comprobar los datos que se exportan desde Klaviyo. También te permite manipular y transformar los datos de diferentes maneras. En primer lugar, puedes renombrar, reordenar y ocultar columnas. Este módulo también te permite ordenar y filtrar datos, así como utilizar fórmulas para calcular métricas personalizadas para nuevas columnas. Si es necesario, también puedes mezclar datos de dos o más fuentes en un conjunto de datos antes de enviarlo a BigQuery.

3 transformar datos 1

Tras transformar tus datos, ve al siguiente paso. Allí, se te pedirá que conectes tu cuenta BigQuery cargando el archivo de clave .json asociado a ella. A continuación, tendrás que introducir un nombre de conjunto de datos BigQuery nuevo o existente y un nombre de tabla, especificando dónde colocar tus datos.

3. Programa actualizaciones y gestiona tus datos

El último paso permite convertir tus datos en informes autoactualizables, cuadros de mando en tiempo real o copias de seguridad autorrestaurables. 

En cuanto termines de configurar tu destino, activa Automatic Data Refresh. Una vez activada, puedes seleccionar el intervalo de actualización, los días y horas preferidos y otras preferencias.

3 programar la exportación de datos de linkedin ads

El intervalo puede ser desde una vez al mes hasta cada hora, 30 minutos e incluso cada 15 minutos.

Cuando hayas terminado con la configuración, haz clic en Run importer. Aquí están nuestros datos de Klaviyo ya importados en BigQuery.

5 contactos klaviyo

Ahora, ¡ya está hecho! Con Coupler.io, puedes crear una integración de este tipo en sólo unos minutos y recopilar datos de más de 50 aplicaciones. Te permite crear informes autoactualizables, cuadros de mando en directo y configurar copias de seguridad de los datos con la ayuda de su función de actualización automática.

Cómo utilizar Apps Script para conectar Klaviyo a BigQuery

Google Apps Script es una buena plataforma para crear un script que pueda consultar la API de Klaviyo y extraer datos de ella. Pero necesitarás tener algo de experiencia con JavaScript y trabajando con APIs para usar este método.  

Intentemos obtener todos los perfiles de Klaviyo en BigQuery. Para empezar, abre el editor de Apps Script. Necesitarás una clave de API privada de Klaviyo y un punto final de API del que extraer los datos. Para añadir datos a tu destino BigQuery, necesitarás un identificador de proyecto, un identificador de conjunto de datos y un identificador de tabla.

Aquí tienes un script de ejemplo para extraer datos de perfiles de Klaviyo a BigQuery:

// Set your Klaviyo API key and BigQuery project and dataset information
var klaviyoApiKey = 'YOUR_KLAVIYO_API_KEY';
var bigQueryProjectId = 'YOUR_BIGQUERY_PROJECT_ID';
var bigQueryDatasetId = 'YOUR_BIGQUERY_DATASET_ID';
var bigQueryTableId = 'YOUR_BIGQUERY_TABLE_ID';

function pullProfilesFromKlaviyoToBigQuery() {
  var klaviyoProfiles = fetchKlaviyoProfiles();
  if (klaviyoProfiles && klaviyoProfiles.length > 0) {
    insertProfilesIntoBigQuery(klaviyoProfiles);
  } else {
    Logger.log('No profiles to insert into BigQuery.');
  }
}

function fetchKlaviyoProfiles() {
  var apiUrl = 'https://a.klaviyo.com/api/profiles/?page[size]=20';
  var headers = {
    'Authorization': 'Klaviyo-API-Key ' + klaviyoApiKey,
    'Accept': 'application/json',
    'Revision': '2023-10-15'
  };
  var options = {
    'method': 'get',
    'headers': headers,
    'muteHttpExceptions': true
  };

  var response = UrlFetchApp.fetch(apiUrl, options);
  if (response.getResponseCode() !== 200) {
    Logger.log('Error fetching profiles: ' + response.getContentText());
    return [];
  }

  var jsonResponse = JSON.parse(response.getContentText());
  return jsonResponse.data || []; // Adjust based on the actual response structure
}

function insertProfilesIntoBigQuery(profiles) {
  if (profiles.length === 0) {
    Logger.log('No profiles to insert into BigQuery.');
    return;
  }

  var bigquery = BigQuery;
  var insertAllRequest = BigQuery.newTableDataInsertAllRequest();
  insertAllRequest.rows = profiles.map(function(profile, index) {
    return {
      json: {
        id: profile.id, // Assuming 'id' is present in the Klaviyo data
        attributes_email: profile.email, // Adjust according to actual Klaviyo data field
        attributes_phone_number: parseInt(profile.phone_number, 10) || null, // Ensure phone number is an integer or null
        attributes_external_id: profile.external_id,
        attributes_first_name: profile.first_name,
        attributes_last_name: profile.last_name,
        attributes_organization: profile.organization,
        attributes_title: profile.title,
        attributes_image: profile.image,
        attributes_created: profile.created ? new Date(profile.created).toISOString() : null, // Convert to TIMESTAMP format
      },
      insertId: index.toString() // Optional: Unique ID for de-duplication
    };
  });

  try {
    var insertResponse = BigQuery.Tabledata.insertAll(insertAllRequest, bigQueryProjectId, bigQueryDatasetId, bigQueryTableId);
    if (insertResponse.insertErrors && insertResponse.insertErrors.length > 0) {
      Logger.log('Insert errors: ' + JSON.stringify(insertResponse.insertErrors));
    } else {
      Logger.log('Successfully inserted profiles into BigQuery.');
    }
  } catch (e) {
    Logger.log('Error inserting data into BigQuery: ' + e.toString());
  }
}

A continuación, tendrás que guardar y ejecutar el script. Si no hay errores, se te pedirá que revises los permisos. Asegúrate de permitir el acceso a tu cuenta de BigQuery. Cuando Apps Script indique que la ejecución se ha realizado correctamente, ve a BigQuery para comprobar si se han enviado tus datos. 

Aquí están los datos de los perfiles de Klaviyo importados a nuestra tabla BigQuery:

5 Datos de los perfiles Klaviyo 1

Consulta la documentación de la API de Klaviyo para conocer los puntos finales y los encabezados de autorización adecuados.

Cómo introducir manualmente datos de Klaviyo en BigQuery

El proceso manual de integración no conecta realmente Klaviyo con BigQuery, pero permite mover los datos al almacén de BigQuery. En primer lugar, exportaremos los datos de Klaviyo como CSV y, a continuación, iremos a BigQuery para cargar el archivo.

Para empezar, inicia sesión en tu cuenta de Klaviyo y busca en la barra de menú de la izquierda la categoría de datos que deseas exportar. Pueden ser tus campañas, listas y segmentos o informes. En este ejemplo, exportaremos una lista desde Klaviyo y moveremos el CSV a una tabla BIgQuery.

  • Navega hasta List & Segments. Encontrarás los nombres de tus listas.
7 segmentos de las listas klaviyo

Haz clic en el preferido para continuar. 

  • Haz clic en el menú desplegable Manage List situado en la parte superior derecha. Selecciona Export list to CSV.
8 exportar a CSV

La siguiente página contiene todas las propiedades de tu cuenta. Debes revisar y seleccionar las que deseas incluir en tu exportación CSV. Cuando estés listo, haz clic en el botón Start Export en la parte inferior de la página. El archivo CSV se descargará automáticamente.

Ahora, hemos obtenido nuestros datos en el formato de archivo CSV. Es hora de subirlos a BigQuery. He aquí cómo:

  • Ve a BigQuery y haz clic en el símbolo más (+) de la parte izquierda de la página.
9 BQ añadir fuente

Haga clic en Local file, ya que estamos intentando cargar un CSV desde nuestra computadora.

  • Carga el archivo y selecciona el proyecto BigQuery, el conjunto de datos y la tabla.
10 BQ crear tabla

Cuando hayas terminado, haz clic en Create table para añadir tus datos a la tabla BigQuery. 

Aquí están los datos contenidos en el archivo CSV Klaviyo ya añadido a BigQuery:

11 Klaviyo CSV BQ

El método manual de mover datos de Klaviyo a BigQuery puede ser muy agotador. Solo se recomienda cuando se trabaja con conjuntos de datos pequeños. Pero si tienes datos que se actualizan constantemente o grandes conjuntos de datos, es mejor utilizar otros métodos, como crear una conexión automatizada.

El mejor método para la integración de Klaviyo en BigQuery

Como se mencionó anteriormente, hay tres métodos principales para conectar Klaviyo a BigQuery. Puedes utilizar el procedimiento manual de exportar datos como CSV y cargarlos en BigQuery. También es posible utilizar Google Apps Script para escribir un script que extraiga los datos del punto final de la API y los inserte en una tabla específica de un conjunto de datos de BigQuery. Por último, puedes utilizar aplicaciones de automatización sin código como Coupler.io para automatizar los flujos de datos de marketing desde Klaviyo a BigQuery y otros destinos (Google Sheets, Looker Studio, Excel y Power BI). Aunque otros métodos tienen sus propios casos de uso, el uso de aplicaciones de automatización ayuda a que todo sea más eficiente, especialmente cuando se trata de obtener datos para los informes.