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:
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).
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:
- 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. 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
- Muestra una lista de todos los campos que se definen en
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:
- 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.
- Selecciona la extensión de datos correcta como objetivo.
- Selecciona Reemplazar como Acción de datos.
- Consulta la siguiente consulta de ejemplo:
SELECT AccountID, OYBAccountID, JobID, ListID, BatchID, SubscriberID, SubscriberKey, EventDate, IsUnique, Domain FROM _Unsubscribe
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:
- 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 aunsubscribe_%%Year%%_%%Month%%_%%Day%% %%Hour%%.csv
. - Establece Extract Type en
Data Extension Extract
. - Selecciona las opciones Tiene encabezados de columna y Texto calificado.
- Usa el patrón de nombres correcto. Debe coincidir con el patrón definido en la
configuración.
Por ejemplo, para la entidad
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 deConvert To
.
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.
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
- Para obtener más información sobre otras fuentes de datos y cargas de trabajo, consulta Fuentes de datos y cargas de trabajo.
- Para obtener más información sobre los pasos para la implementación en entornos de producción, consulta los requisitos previos para la implementación de Data Foundation de Cortex Framework.