Integración con Salesforce Marketing Cloud

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

SFMC es una plataforma de automatización de marketing digital que ofrece Salesforce. Proporciona a las empresas un conjunto integral de herramientas para administrar y automatizar diversas actividades de marketing en múltiples canales. Cortex Framework actúa como el motor de IA y análisis de datos que te ayuda a comprender los resultados, identificar á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 la base de datos de Cortex Framework:

Fuente de datos de SFMC

Figura 1. Es la fuente de datos de SFMC.

Archivo de configuración

El archivo config.json configura los parámetros necesarios para conectarse a las fuentes de datos y transferir datos de diversas 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 de 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 ejecutarlos como DAGs en Managed Airflow.
marketing.SFMC.fileTransferBucket Bucket con archivos de extracción de datos - Es el 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 Es un conjunto de datos de CDC para Salesforce Marketing Cloud (SFMC).
marketing.SFMC.datasets.raw Conjunto de datos sin procesar para SFMC Es el conjunto de datos sin procesar de Salesforce Marketing Cloud (SFMC).
marketing.SFMC.datasets.reporting Conjunto de datos de informes para SFMC "REPORTING_SFMC" Es el 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 relación entre entidades (ERD).

Diagrama de relación entre entidades para SFMC

Figura 2: Salesforce Marketing Cloud (SFMC): Diagrama de relación entre entidades.

Vistas base

Estos son los objetos azules en el DER y son vistas de las 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 en el DER 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 SFMC Email Studio 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 desde SFMC. Nombre del parámetro de configuración del bucket marketing.SFMC.fileTransferBucket. Consulta las instrucciones en la documentación de Salesforce.
  2. Crea extensiones de datos. Para cada entidad de la que desees 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.

    • Enumera todos los campos definidos 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. Crear actividades de consulta en SQL SQL Para cada entidad, crea una actividad de consulta en SQL. Esta actividad está conectada a su extensión de datos correspondiente creada anteriormente. Consulta la documentación de Salesforce para este paso:

    1. Define una consulta en SQL con todos los campos pertinentes. La consulta debe seleccionar todos los campos relevantes para la entidad que se define en la extensión de datos del paso anterior.
    2. Selecciona la extensión de datos correcta como destino.
    3. Selecciona Overwrite como acción de datos.
    4. Consulta el siguiente ejemplo de búsqueda:
      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 nomenclatura correcto. Debe coincidir con el patrón definido en la configuración. Por ejemplo, para la entidad Unsubscribe, el nombre del archivo puede ser algo como unsubscribe_%%Year%%_%%Month%%_%%Day%% %%Hour%%.csv.
    2. Establece Tipo de extracción en Data Extension Extract.
    3. Selecciona las opciones Has column Headers y Text Qualified.
  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 buckets de Cloud Storage. Para este paso, haz lo siguiente:

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

Actualidad y demora de los datos

Como regla general, la actualización de los datos de las fuentes de datos de Cortex Framework está limitada por lo que permite la conexión upstream, así como por la frecuencia de ejecución de tu DAG. Ajusta la frecuencia de ejecución de tu DAG para que coincida con la frecuencia de los procesos ascendentes, 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 en la programación cuando se configura la exportación de datos.

Permisos de conexiones de Managed Service para Apache Airflow

Crea las siguientes conexiones en Managed Airflow. Para obtener más detalles, consulta la documentación sobre cómo administrar conexiones de Airflow.

Nombre de la conexión Purpose
sfmc_raw_dataflow Para SFMC Extracted files > conjunto de datos BigQueryRaw
sfmc_cdc_bq Para la transferencia de conjuntos de datos sin procesar > conjuntos de datos de CDC.
sfmc_reporting_bq Para la transferencia del conjunto de datos de informes al conjunto de datos de CDC.

Permisos de la cuenta de servicio de Managed Airflow

La cuenta de servicio que se usa en Managed Airflow (según 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 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 tablas de origen a tablas sin procesar

Esta sección contiene entradas que controlan cómo se usan los archivos extraídos de Automation Studio. Cada entrada corresponde a una entidad de SFMC. Según esta configuración, Cortex Framework crea DAGs 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. Cada archivo 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 para esta entidad.
  • DataType: Es el tipo de datos de cada campo de la tabla sin procesar.

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

Parámetro Descripción
base_table Nombre de la tabla sin procesar en la que se cargan los datos extraídos de una entidad de SFMC.
load_frequency Frecuencia con la que se ejecuta un DAG para esta entidad para cargar datos de los 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 desde 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 Indica cómo se particiona la tabla sin procesar para tener en cuenta el rendimiento. Para obtener más información, consulta Partición de tablas.
cluster_details Opcional: Si deseas que la tabla sin procesar se agrupe en clústeres por motivos de rendimiento. Para obtener más información, consulta Configuración del clúster.

Tablas sin procesar a CDC

En esta sección, se describen las entradas que controlan cómo se transfieren 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 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 Frecuencia con la que se ejecuta un DAG para esta entidad con el objetivo de completar la tabla del CDC. Para obtener más información sobre los valores posibles, consulta la documentación de Airflow.
raw_table Es la tabla de origen del conjunto de datos sin procesar.
row_identifiers Columnas (separadas por comas) que forman un registro único para esta tabla.
partition_details Indica cómo se particiona la tabla de CDC para tener en cuenta el rendimiento. Para obtener más información, consulta Partición de tablas.
cluster_details Opcional: Si deseas que esta tabla se agrupe para tener en cuenta el 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