Integração com o Salesforce Marketing Cloud

Esta página descreve as configurações necessárias para trazer dados do Salesforce Marketing Cloud (SFMC) como uma fonte de dados da carga de trabalho de marketing do Cortex Framework Data Foundation.

O SFMC é uma plataforma de automação de marketing digital oferecida pelo Salesforce. Ele oferece às empresas um conjunto abrangente de ferramentas para gerenciar e automatizar várias atividades de marketing em vários canais. O Cortex Framework funciona como o mecanismo de análise de dados e IA que ajuda você a entender os resultados, identificar áreas para melhoria e otimizar sua estratégia de marketing para gerar melhores resultados.

O diagrama a seguir descreve como os dados do SFMC estão disponíveis na carga de trabalho de marketing do Cortex Framework Data Foundation:

Origem de dados do SFMC

Figura 1. Fonte de dados do SFMC.

Arquivo de configuração

O arquivo config.json configura as configurações necessárias para se conectar a fontes de dados para transferir dados de várias cargas de trabalho. Este arquivo contém os seguintes parâmetros para o SFMC:

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

A tabela a seguir descreve o valor de cada parâmetro de marketing:

Parâmetro Significado Valor padrão Descrição
marketing.deploySFMC Implantar o SFMC true Execute a implantação para a origem de dados do SFMC.
marketing.SFMC.deployCDC Implantar scripts de CDC para o SFMC true Gere scripts de processamento do CDC do Salesforce Marketing Cloud (SFMC) para serem executados como DAGs no Cloud Composer.
marketing.SFMC.fileTransferBucket Bucket com arquivos de extração de dados - Bucket em que os arquivos de extração de dados do Automation Studio da Salesforce Marketing Cloud (SFMC) são armazenados.
marketing.SFMC.datasets.cdc Conjunto de dados CDC para SFMC Conjunto de dados do CDC para o Salesforce Marketing Cloud (SFMC).
marketing.SFMC.datasets.raw Conjunto de dados brutos para SFMC Conjunto de dados brutos para o Salesforce Marketing Cloud (SFMC).
marketing.SFMC.datasets.reporting Conjunto de dados de relatórios para SFMC "REPORTING_SFMC" Conjunto de dados de relatórios do Salesforce Marketing Cloud (SFMC).

Modelo de dados

Esta seção descreve o modelo de dados do Salesforce Marketing Cloud (SFMC) usando o diagrama de relacionamento de entidades (ERD, na sigla em inglês).

Diagrama de relacionamento de entidades para SFMC

Figura 2. Salesforce Marketing Cloud (SFMC): diagrama de relacionamento de entidades.

Visualizações básicas

Esses são os objetos azuis no ERD e são visualizações em tabelas de CDC sem transformações, exceto alguns aliases de nome de coluna. Consulte os scripts em src/marketing/src/SFMC/src/reporting/ddls.

Visualizações de relatórios

Esses são os objetos verdes no ERD e são visualizações de relatórios que contêm métricas agregadas. Consulte os scripts em src/marketing/src/SFMC/src/reporting/ddls.

Extração de dados usando o Automation Studio

O SFMC Automation Studio permite que os consumidores do SFMC exportem os dados para vários sistemas de armazenamento. A base de dados do Cortex Framework procura um conjunto de arquivos criados com o Automation Studio em um bucket do Cloud Storage. Você também precisa usar o SFMC Email Studio neste processo.

Para configurar os processos de extração e exportação de dados, siga estas etapas:

  1. Configure um bucket do Cloud Storage. Esse bucket armazena arquivos exportados do SFMC. Nomeie o parâmetro de configuração marketing.SFMC.fileTransferBucket do bucket. Consulte as instruções na documentação do Salesforce.
  2. Crie extensões de dados. Para cada entidade de que você quer extrair dados, crie uma extensão de dados no Email Studio. Isso é necessário para identificar as fontes de dados do banco de dados interno do SFMC.

    • Liste todos os campos definidos em src/SFMC/config/table_schema para a entidade. Se você precisar personalizar isso para extrair mais ou menos campos, verifique se a lista de campos está alinhada nessas etapas e nos arquivos de esquema de tabela. Exemplo:
      Entity: unsubscribe
      Fields:
      AccountID
      OYBAccountID
      JobID
      ListID
      BatchID
      SubscriberID
      SubscriberKey
      EventDate
      IsUnique
      Domain
    
  3. Criar atividades de consulta SQL. Para cada entidade, crie uma atividade de consulta SQL. Essa atividade está conectada à extensão de dados correspondente criada anteriormente. Consulte a documentação do Salesforce para esta etapa:

    1. Defina a consulta SQL com todos os campos relevantes. A consulta precisa selecionar todos os campos relevantes para a entidade definida na extensão de dados na etapa anterior.
    2. Selecione a extensão de dados correta como destino.
    3. Selecione Substituir como a ação de dados.
    4. Confira o exemplo de consulta a seguir:
      SELECT
        AccountID,
        OYBAccountID,
        JobID,
        ListID,
        BatchID,
        SubscriberID,
        SubscriberKey,
        EventDate,
        IsUnique,
        Domain
      FROM
        _Unsubscribe
    
  4. Crie atividades de extração de dados. Consulte a documentação do Salesforce para criar uma atividade de extração de dados para cada entidade. Essa atividade recebe os dados da extensão de dados do Salesforce e os extrai para um arquivo CSV. Para esta etapa:

    1. Use o padrão de nomenclatura correto. Ele precisa corresponder ao padrão definido nas configurações. Por exemplo, para a entidade Unsubscribe, o nome do arquivo pode ser algo como unsubscribe_%%Year%%_%%Month%%_%%Day%% %%Hour%%.csv.
    2. Defina Tipo de extração como Data Extension Extract.
    3. Selecione as opções Tem cabeçalhos de coluna e Qualificado por texto.
  5. Crie atividades de conversão de arquivos para converter o formato de UTF-16 para UTF-8. Por padrão, o Salesforce exporta arquivos CSV em UTF-16. Nesta etapa, você vai converter para o formato UTF-8. Para cada entidade, crie outra atividade de extração de dados para a conversão de arquivos. Para esta etapa:

    • Use o mesmo padrão de nome de arquivo usado na etapa anterior da atividade de extração de dados.
    • Defina Tipo de extração como File Convert.
    • Selecione UTF8 no menu suspenso em Convert To.
  6. Crie atividades de transferência de arquivos. Crie uma atividade de transferência de arquivos para cada entidade. Essas atividades movem os arquivos CSV extraídos do Safehouse do Salesforce para os buckets do Cloud Storage. Para esta etapa:

    • Use o mesmo padrão de nome de arquivo usado nas etapas anteriores.
    • Selecione um bucket do Cloud Storage que foi configurado anteriormente no processo como destino.
  7. Programe a execução. Depois que todas as atividades forem concluídas, configure programações automatizadas para executá-las.

Atualização e atraso de dados

Como regra geral, a atualidade dos dados para fontes de dados do Cortex Framework é limitada pelo que a conexão upstream permite, bem como pela frequência da execução da DAG. Ajuste a frequência de execução do DAG para alinhá-la à frequência upstream, às restrições de recursos e às necessidades da sua empresa.

Com o SFMC Automation Studio, o atraso na atualização dos dados depende do atraso de programação quando a exportação de dados é configurada.

Permissões de conexões do Cloud Composer

Crie as seguintes conexões no Cloud Composer. Confira mais detalhes na documentação sobre como gerenciar conexões do Airflow.

Nome da conexão Purpose
sfmc_raw_dataflow Para arquivos extraídos do SFMC > Conjunto de dados BigQueryRaw.
sfmc_cdc_bq Para o conjunto de dados brutos > Transferência de conjunto de dados do CDC.
sfmc_reporting_bq Para o conjunto de dados do CDC > Transferência de conjuntos de dados de relatórios.

Permissões da conta de serviço do Cloud Composer

A conta de serviço usada no Cloud Composer (configurada na conexão sfmc_raw_dataflow) precisa de permissões relacionadas ao Dataflow. Consulte as instruções na documentação do Dataflow.

Configurações de transferência

Controle os pipelines de dados Source to Raw e Raw to CDC pelas configurações no arquivo src/SFMC/config/ingestion_settings.yaml . Esta seção descreve os parâmetros de cada pipeline de dados.

Origem para tabelas brutas

Esta seção tem entradas que controlam como os arquivos extraídos do Automation Studio são usados. Cada entrada corresponde a uma entidade do SFMC. Com base nessa configuração, o Cortex Framework cria DAGs do Airflow que executam pipelines do Dataflow para carregar dados de arquivos exportados em tabelas do BigQuery no conjunto de dados bruto.

O diretório src/SFMC/config/table_schema contém um arquivo de esquema para cada entidade extraida do SFMC. Cada arquivo explica como ler os arquivos CSV extraídos do Automaton Studio para carregá-los no conjunto de dados brutos do BigQuery.

Cada arquivo de esquema contém três colunas:

  • SourceField: nome do campo do arquivo CSV.
  • TargetField: nome da coluna na tabela bruta para essa entidade.
  • DataType: tipo de dados de cada campo de tabela bruta.

Os parâmetros a seguir controlam as configurações de Source to Raw para cada entrada:

Parâmetro Descrição
base_table Nome da tabela bruta em que os dados extraídos de uma entidade do SFMC são carregados.
load_frequency Com que frequência um DAG para essa entidade é executado para carregar dados de arquivos extraídos. Para mais informações sobre os possíveis valores, consulte a documentação do Airflow.
file_pattern Padrão do arquivo para esta tabela que é exportada do Automation Studio para o bucket do Cloud Storage. Mude isso apenas se você tiver escolhido um nome diferente dos sugeridos para arquivos extraídos.
partition_details Como a tabela bruta é particionada para considerações de desempenho. Para mais informações, consulte Particionamento de tabelas.
cluster_details Opcional:se você quiser que a tabela bruta seja agrupada por motivos de performance. Para mais informações, consulte Configurações do cluster.

De bruto para tabelas de CDC

Esta seção descreve quais entradas controlam como os dados são movidos de tabelas brutas para tabelas de CDC. Cada entrada corresponde a uma tabela bruta.

Os parâmetros a seguir controlam as configurações de Raw to CDC para cada entrada:

Parâmetro Descrição
base_table Tabela no conjunto de dados de CDC em que os dados brutos são armazenados após a transformação de CDC.
load_frequency Com que frequência um DAG dessa entidade é executado para preencher a tabela CDC. Para mais informações sobre os valores possíveis, consulte a documentação do Airflow.
raw_table Tabela de origem do conjunto de dados brutos.
row_identifiers Colunas (separadas por vírgulas) que formam um registro exclusivo para essa tabela.
partition_details Como a tabela de CDC é particionada para considerações de desempenho. Para mais informações, consulte Particionamento de tabelas.
cluster_details Opcional:se você quiser que essa tabela seja agrupada para fins de performance. Para mais informações, consulte Configurações do cluster.

Configurações de relatórios

É possível configurar e controlar como o Cortex Framework gera dados para a camada de relatórios final do SFMC usando o arquivo de configurações de relatórios (src/SFMC/config/reporting_settings.yaml). Esse arquivo controla como os objetos do BigQuery da camada de relatórios (tabelas, visualizações,funções ou procedimentos armazenados) são gerados. Para mais informações, consulte Como personalizar o arquivo de configurações de relatórios.

A seguir