Integración con Salesforce Marketing Cloud

En esta página, se describen las configuraciones necesarias para transferir datos de Salesforce Marketing Cloud (SFMC) como fuente de datos de la carga de trabajo de marketing de Cortex Framework Data Foundation.

SFMC es una plataforma de automatización de marketing digital que ofrece Salesforce. Proporciona a las empresas un paquete integral de herramientas para administrar y automatizar varias actividades de marketing en varios canales. Cortex Framework actúa como el motor de análisis de datos y de IA que te ayuda a comprender los resultados, identificar las áreas de mejora y optimizar tu estrategia de marketing para obtener mejores resultados.

En el siguiente diagrama, se describe cómo los datos de SFMC están disponibles a través de la carga de trabajo de marketing de Cortex Framework Data Foundation:

Fuente de datos de SFMC

Figura 1. Fuente de datos de SFMC.

Archivo de configuración

El archivo config.json configura los parámetros necesarios para conectarse a fuentes de datos y transferir datos desde varias cargas de trabajo. Este archivo contiene los siguientes parámetros para SFMC:

   "marketing": {
        "deploySFMC": true,
        "SFMC": {
            "deployCDC": true,
            "fileTransferBucket": "",
            "datasets": {
                "cdc": "",
                "raw": "",
                "reporting": "REPORTING_SFMC"
            }
        }
    }

En la siguiente tabla, se describe el valor de cada parámetro de marketing:

Parámetro Significado Valor predeterminado Descripción
marketing.deploySFMC Implementa SFMC true Ejecuta la implementación para la fuente de datos de SFMC.
marketing.SFMC.deployCDC Implementa secuencias de comandos de CDC para SFMC true Genera secuencias de comandos de procesamiento de CDC de Salesforce Marketing Cloud (SFMC) para ejecutarlas como DAG en Cloud Composer.
marketing.SFMC.fileTransferBucket Bucket con archivos de extracción de datos - Bucket en el que se almacenan los archivos de extracción de datos de Automation Studio de Salesforce Marketing Cloud (SFMC).
marketing.SFMC.datasets.cdc Conjunto de datos de CDC para SFMC Conjunto de datos de CDC para Salesforce Marketing Cloud (SFMC).
marketing.SFMC.datasets.raw Conjunto de datos sin procesar para SFMC Es un conjunto de datos sin procesar de Salesforce Marketing Cloud (SFMC).
marketing.SFMC.datasets.reporting Conjunto de datos de informes para SFMC "REPORTING_SFMC" Conjunto de datos de informes de Salesforce Marketing Cloud (SFMC).

Modelo de datos

En esta sección, se describe el modelo de datos de Salesforce Marketing Cloud (SFMC) con el diagrama de relaciones de entidades (ERD).

Diagrama de relaciones de entidades para SFMC

Figura 2: Salesforce Marketing Cloud (SFMC): Diagrama de relaciones de entidades.

Vistas básicas

Estos son los objetos azules del ERE y son vistas en tablas de CDC sin transformaciones, excepto algunos alias de nombres de columnas. Consulta las secuencias de comandos en src/marketing/src/SFMC/src/reporting/ddls.

Vistas de informes

Estos son los objetos verdes del ERE y son vistas de informes que contienen métricas agregadas. Consulta las secuencias de comandos en src/marketing/src/SFMC/src/reporting/ddls.

Extracción de datos con Automation Studio

SFMC Automation Studio permite a los consumidores de SFMC exportar sus datos de SFMC a varios sistemas de almacenamiento. La base de datos de Cortex Framework busca un conjunto de archivos creados con Automation Studio en un bucket de Cloud Storage. También debes usar Email Studio de SFMC en este proceso.

Para configurar los procesos de extracción y exportación de datos, sigue estos pasos:

  1. Configura un bucket de Cloud Storage. Este bucket almacena los archivos exportados de SFMC. Asigna un nombre al parámetro de configuración marketing.SFMC.fileTransferBucket del bucket. Consulta las instrucciones en la documentación de Salesforce.
  2. Crear extensiones de datos Para cada entidad de la que deseas extraer datos, crea una extensión de datos en Email Studio. Esto es necesario para identificar las fuentes de datos de la base de datos interna de SFMC.

    • Muestra una lista de todos los campos que se definen en src/SFMC/config/table_schema para la entidad. Si necesitas personalizar esto para extraer más o menos campos, asegúrate de que la lista de campos esté alineada en estos pasos y en los archivos de esquema de la tabla. Por ejemplo:
      Entity: unsubscribe
      Fields:
      AccountID
      OYBAccountID
      JobID
      ListID
      BatchID
      SubscriberID
      SubscriberKey
      EventDate
      IsUnique
      Domain
    
  3. Crea actividades de consulta de SQL. Para cada entidad, crea una actividad de consulta de SQL. Esta actividad está conectada a su extensión de datos correspondiente que se creó antes. Consulta la documentación de Salesforce para este paso:

    1. Define la consulta de SQL con todos los campos relevantes. La consulta debe seleccionar todos los campos relevantes para la entidad que se define en la extensión de datos en el paso anterior.
    2. Selecciona la extensión de datos correcta como objetivo.
    3. Selecciona Reemplazar como Acción de datos.
    4. Consulta la siguiente consulta de ejemplo:
      SELECT
        AccountID,
        OYBAccountID,
        JobID,
        ListID,
        BatchID,
        SubscriberID,
        SubscriberKey,
        EventDate,
        IsUnique,
        Domain
      FROM
        _Unsubscribe
    
  4. Crear actividades de extracción de datos Consulta la documentación de Salesforce para crear una actividad de extracción de datos para cada entidad. Esta actividad obtiene los datos de la extensión de datos de Salesforce y los extrae a un archivo CSV. Para este paso, haz lo siguiente:

    1. Usa el patrón de nombres correcto. Debe coincidir con el patrón definido en la configuración. Por ejemplo, para la entidad Unsubscribe, el nombre del archivo puede ser similar a unsubscribe_%%Year%%_%%Month%%_%%Day%% %%Hour%%.csv.
    2. Establece Extract Type en Data Extension Extract.
    3. Selecciona las opciones Tiene encabezados de columna y Texto calificado.
  5. Crea actividades de conversión de archivos para convertir el formato de UTF-16 a UTF-8. De forma predeterminada, Salesforce exporta archivos CSV en UTF-16. En este paso, lo convertirás al formato UTF-8. Para cada entidad, crea otra actividad de extracción de datos para la conversión de archivos. Para este paso, haz lo siguiente:

    • Usa el mismo patrón de nombre de archivo que se usó en el paso anterior de la actividad de extracción de datos.
    • Establece Tipo de extracción en File Convert.
    • Selecciona UTF8 en el menú desplegable de Convert To.
  6. Crear actividades de transferencia de archivos Crea una actividad de transferencia de archivos para cada entidad. Estas actividades mueven los archivos CSV extraídos de Salesforce Safehouse a los buckets de Cloud Storage. Para este paso, haz lo siguiente:

    • Usa el mismo patrón de nombre de archivo que usaste en los pasos anteriores.
    • Selecciona un bucket de Cloud Storage que se configuró antes en el proceso como destino.
  7. Programa la ejecución. Una vez que se completen todas las actividades, configura programaciones automatizadas para ejecutarlas.

Actualización y demora de los datos

Como regla general, la actualización de los datos de las fuentes de datos de Cortex Framework se limita a lo que permite la conexión upstream, así como a la frecuencia de la ejecución de tu DAG. Ajusta la frecuencia de ejecución de tu DAG para alinearla con la frecuencia upstream, las restricciones de recursos y las necesidades de tu empresa.

Con SFMC Automation Studio, la demora en la actualización de los datos depende de la demora de programación cuando se configura la exportación de datos.

Permisos de conexiones de Cloud Composer

Crea las siguientes conexiones en Cloud Composer. Consulta más detalles en la documentación para administrar conexiones de Airflow.

Nombre de la conexión Purpose
sfmc_raw_dataflow Para los archivos extraídos de SFMC > Conjunto de datos de BigQueryRaw.
sfmc_cdc_bq Para el conjunto de datos sin procesar, ve a Conjunto de datos de CDC > Transferencia.
sfmc_reporting_bq Para el conjunto de datos de CDC, ve a Transferencia de conjuntos de datos de informes.

Permisos de la cuenta de servicio de Cloud Composer

La cuenta de servicio que se usa en Cloud Composer (como se configuró en la conexión sfmc_raw_dataflow) necesita permisos relacionados con Dataflow. Consulta las instrucciones en la documentación de Dataflow.

Configuración de transferencia

Controla las canalizaciones de datos de Source to Raw y Raw to CDC a través de la configuración del archivo src/SFMC/config/ingestion_settings.yaml . En esta sección, se describen los parámetros de cada canalización de datos.

De fuente a tablas sin procesar

Esta sección tiene entradas que controlan cómo se usan los archivos extraídos de Automation Studio. Cada entrada corresponde a una entidad de SFMC. En función de esta configuración, Cortex Framework crea DAG de Airflow que ejecutan canalizaciones de Dataflow para cargar datos de archivos exportados en tablas de BigQuery en el conjunto de datos sin procesar.

El directorio src/SFMC/config/table_schema contiene un archivo de esquema para cada entidad que se extrae de SFMC. En cada archivo, se explica cómo leer los archivos CSV extraídos de Automaton Studio para cargarlos correctamente en el conjunto de datos sin procesar de BigQuery.

Cada archivo de esquema contiene tres columnas:

  • SourceField: Es el nombre del campo del archivo CSV.
  • TargetField: Es el nombre de la columna en la tabla sin procesar de esta entidad.
  • DataType: Es el tipo de datos de cada campo de tabla sin formato.

Los siguientes parámetros controlan la configuración de Source to Raw para cada entrada:

Parámetro Descripción
base_table Es el nombre de la tabla sin procesar en la que se cargan los datos extraídos de una entidad de SFMC.
load_frequency La frecuencia con la que se ejecuta un DAG para esta entidad para cargar datos de archivos extraídos. Para obtener más información sobre los valores posibles, consulta la documentación de Airflow.
file_pattern Es el patrón del archivo de esta tabla que se exporta de Automation Studio al bucket de Cloud Storage. Cambia esto solo si elegiste un nombre diferente de los sugeridos para los archivos extraídos.
partition_details Cómo se particiona la tabla sin procesar por motivos de rendimiento Para obtener más información, consulta Partición de tablas.
cluster_details Opcional: Si deseas que la tabla sin procesar se agrupe por motivos de rendimiento. Para obtener más información, consulta Configuración del clúster.

De tablas sin procesar a tablas de CDC

En esta sección, se describe qué entradas controlan cómo se mueven los datos de las tablas sin procesar a las tablas de CDC. Cada entrada corresponde a una tabla sin procesar.

Los siguientes parámetros controlan la configuración de Raw to CDC para cada entrada:

Parámetro Descripción
base_table Es la tabla del conjunto de datos de CDC en la que se almacenan los datos sin procesar después de la transformación de CDC.
load_frequency La frecuencia con la que se ejecuta un DAG para esta entidad para propagar la tabla de CDC. Para obtener más información sobre los valores posibles, consulta la documentación de Airflow.
raw_table Tabla de origen del conjunto de datos sin procesar.
row_identifiers Son las columnas (separadas por comas) que forman un registro único para esta tabla.
partition_details Cómo se particiona la tabla de CDC por motivos de rendimiento Para obtener más información, consulta Partición de tablas.
cluster_details Opcional: Si deseas que esta tabla se agrupe por motivos de rendimiento. Para obtener más información, consulta Configuración del clúster.

Configuración de informes

Puedes configurar y controlar cómo Cortex Framework genera datos para la capa de informes final de SFMC con el archivo de configuración de informes (src/SFMC/config/reporting_settings.yaml). Este archivo controla cómo se generan los objetos de BigQuery de la capa de informes (tablas, vistas,funciones o procedimientos almacenados). Para obtener más información, consulta Cómo personalizar el archivo de configuración de informes.

Próximos pasos