Integração com o Salesforce Marketing Cloud

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

O SFMC é uma plataforma de automatização de marketing digital oferecida pela Salesforce. Oferece às empresas um conjunto abrangente de ferramentas para gerir e automatizar várias atividades de marketing em vários canais. A framework Cortex funciona como o motor de IA e análise de dados que ajuda a compreender os resultados, identificar áreas a melhorar e otimizar a sua estratégia de marketing para melhores resultados.

O diagrama seguinte descreve como os dados do SFMC estão disponíveis através da carga de trabalho de marketing da Data Foundation do Cortex Framework:

Origem de dados do SFMC

Figura 1. Origem de dados do SFMC.

Ficheiro de configuração

O ficheiro config.json configura as definições necessárias para estabelecer ligação a origens de dados para transferir dados de várias cargas de trabalho. Este ficheiro contém os seguintes parâmetros para o SFMC:

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

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

Parâmetro Significado Valor predefinido Descrição
marketing.deploySFMC Implemente o SFMC true Execute a implementação para a origem de dados do SFMC.
marketing.SFMC.deployCDC Implemente scripts de CDC para SFMC true Gerar scripts de processamento de CDC (captura de dados de alterações) do Salesforce Marketing Cloud (SFMC) para execução como DAGs no Cloud Composer.
marketing.SFMC.fileTransferBucket Recipiente com ficheiros de extração de dados - Contentor onde os ficheiros de extração de dados do Automation Studio do Salesforce Marketing Cloud (SFMC) são armazenados.
marketing.SFMC.datasets.cdc Conjunto de dados de CDC para SFMC Conjunto de dados de CDC para o Salesforce Marketing Cloud (SFMC).
marketing.SFMC.datasets.raw Conjunto de dados não processados para o SFMC Conjunto de dados não processados 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 para o Salesforce Marketing Cloud (SFMC).

Modelo de dados

Esta secção descreve o modelo de dados do Salesforce Marketing Cloud (SFMC) através do diagrama de relação entre entidades (ERD).

Diagrama de relação entre entidades para o SFMC

Figura 2. Salesforce Marketing Cloud (SFMC): diagrama de relação entre entidades.

Visualizações de base

Estes são os objetos azuis no DRE e são vistas em tabelas de CDC sem transformações, exceto alguns alias de nomes de colunas. Veja guiões em src/marketing/src/SFMC/src/reporting/ddls.

Visualizações de propriedade de relatórios

Estes são os objetos verdes no DER e são vistas de relatórios que contêm métricas agregadas. Veja guiões em src/marketing/src/SFMC/src/reporting/ddls.

Extração de dados através do Automation Studio

O SFMC Automation Studio permite que os consumidores do SFMC exportem os respetivos dados do SFMC para vários sistemas de armazenamento. A base de dados do Cortex Framework procura um conjunto de ficheiros criados com o Automation Studio num contentor do Cloud Storage. Também tem de usar o SFMC Email Studio neste processo.

Para configurar os processos de extração e exportação de dados, siga estes passos:

  1. Configure um contentor do Cloud Storage. Este contentor armazena ficheiros exportados do SFMC. Atribua o nome marketing.SFMC.fileTransferBucket config parameter ao grupo. Consulte as instruções na documentação do Salesforce.
  2. Crie extensões de dados. Para cada entidade para a qual quer extrair dados, crie uma extensão de dados no Email Studio. Isto é necessário para identificar as origens de dados da base de dados interna do SFMC.

    • Liste todos os campos definidos em src/SFMC/config/table_schema para a entidade. Se precisar de personalizar esta opção para extrair mais ou menos campos, certifique-se de que a lista de campos está alinhada nestes passos, bem como nos ficheiros de esquema de tabelas. Por exemplo:
      Entity: unsubscribe
      Fields:
      AccountID
      OYBAccountID
      JobID
      ListID
      BatchID
      SubscriberID
      SubscriberKey
      EventDate
      IsUnique
      Domain
    
  3. Crie atividades de consulta SQL. Para cada entidade, crie uma atividade de consulta SQL. Esta atividade está associada à respetiva extensão de dados criada anteriormente. Consulte a documentação do Salesforce para este passo:

    1. Defina a consulta SQL com todos os campos relevantes. A consulta tem de selecionar todos os campos relevantes para a entidade definida na extensão de dados no passo anterior.
    2. Selecione a extensão de dados correta como destino.
    3. Selecione Substituir como ação de dados.
    4. Veja a seguinte consulta de exemplo:
      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. Esta atividade obtém os dados da extensão de dados do Salesforce e extrai-os para um ficheiro CSV. Para este passo:

    1. Use o padrão de nomenclatura correto. Deve corresponder ao padrão definido nas definições. Por exemplo, para a entidade Unsubscribe, o nome do ficheiro pode ser algo como unsubscribe_%%Year%%_%%Month%%_%%Day%% %%Hour%%.csv.
    2. Defina o Tipo de extração como Data Extension Extract.
    3. Selecione as opções Tem cabeçalhos de colunas e Texto qualificado.
  5. Crie atividades de conversão de ficheiros para converter o formato de UTF-16 para UTF-8. Por predefinição, o Salesforce exporta ficheiros CSV em UTF-16. Neste passo, converte-o para o formato UTF-8. Para cada entidade, crie outra atividade de extração de dados para a conversão de ficheiros. Para este passo:

    • Use o mesmo padrão de nome de ficheiro que foi usado no passo anterior da atividade de extração de dados.
    • Defina o Tipo de extração como File Convert
    • Selecione UTF8 no menu pendente em Convert To.
  6. Crie atividades de transferência de ficheiros. Crie uma atividade de transferência de ficheiros para cada entidade. Estas atividades movem os ficheiros CSV extraídos do Salesforce Safehouse para contentores do Cloud Storage. Para este passo:

    • Use o mesmo padrão de nome de ficheiro usado nos passos anteriores.
    • Selecione um contentor do Cloud Storage que foi configurado anteriormente no processo como destino.
  7. Agende a execução. Depois de concluir todas as atividades, configure programações automáticas para as executar.

Atualidade e atraso dos dados

Regra geral, a atualização dos dados das origens de dados do Cortex Framework é limitada pelo que a ligação a montante permite, bem como pela frequência de execução do DAG. Ajuste a frequência de execução do DAG para se alinhar com a frequência a montante, as restrições de recursos e as necessidades da sua empresa.

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

Autorizações de ligações do Cloud Composer

Crie as seguintes associações no Cloud Composer. Veja mais detalhes na documentação sobre a gestão de associações do Airflow.

Nome da associação Purpose
sfmc_raw_dataflow Para SFMC Extracted files > conjunto de dados BigQueryRaw.
sfmc_cdc_bq Para o conjunto de dados não processados > transferência do conjunto de dados da CDC.
sfmc_reporting_bq Para o conjunto de dados do CDC > Transferência do conjunto de dados de relatórios.

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

A conta de serviço usada no Cloud Composer (conforme configurada na ligação sfmc_raw_dataflow) precisa de autorizações relacionadas com o Dataflow. Veja as instruções na documentação do Dataflow

Definições de carregamento

Controle os pipelines de dados Source to Raw e Raw to CDC através das definições no ficheiro src/SFMC/config/ingestion_settings.yaml . Esta secção descreve os parâmetros de cada pipeline de dados.

Origem para tabelas não processadas

Esta secção tem entradas que controlam a forma como os ficheiros extraídos do Automation Studio são usados. Cada entrada corresponde a uma entidade do SFMC. Com base nesta configuração, o framework Cortex cria DAGs do Airflow que executam pipelines do Dataflow para carregar dados de ficheiros exportados para tabelas do BigQuery no conjunto de dados não processados.

O diretório src/SFMC/config/table_schema contém um ficheiro de esquema para cada entidade extraída do SFMC. Cada ficheiro explica como ler os ficheiros CSV extraídos do Automation Studio para os carregar com êxito no conjunto de dados BigQueryraw.

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

  • SourceField: nome do campo do ficheiro CSV.
  • TargetField: nome da coluna na tabela de dados não processados para esta entidade.
  • DataType: tipo de dados de cada campo da tabela de dados não processados.

Os seguintes parâmetros controlam as definições de Source to Raw para cada entrada:

Parâmetro Descrição
base_table Nome da tabela não processada na qual os dados extraídos de uma entidade do SFMC são carregados.
load_frequency Com que frequência um DAG para esta entidade é executado para carregar dados de ficheiros extraídos. Para mais informações sobre os valores possíveis, consulte a documentação do Airflow.
file_pattern Padrão do ficheiro desta tabela que é exportado do Automation Studio para o contentor do Cloud Storage. Altere esta opção apenas se tiver escolhido um nome diferente dos sugeridos para os ficheiros extraídos.
partition_details Como a tabela não processada é particionada para considerações de desempenho. Para mais informações, consulte o artigo Partição de tabelas.
cluster_details Opcional: se quiser que a tabela não processada seja agrupada para ter em conta o desempenho. Para mais informações, consulte o artigo Definições de cluster.

Tabelas de dados não processados para tabelas do CDC

Esta secção descreve que entradas controlam a forma como os dados são movidos das tabelas não processadas para as tabelas de CDC. Cada entrada corresponde a uma tabela de dados não processados.

Os seguintes parâmetros controlam as definições de Raw to CDC para cada entrada:

Parâmetro Descrição
base_table Tabela no conjunto de dados de CDC onde os dados brutos após a transformação de CDC são armazenados.
load_frequency A frequência com que um DAG para esta entidade é executado para preencher a tabela de 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 não processados.
row_identifiers Colunas (separadas por vírgulas) que formam um registo único para esta tabela.
partition_details Como a tabela de CDC é particionada para considerações de desempenho. Para mais informações, consulte o artigo Partição de tabelas.
cluster_details Opcional: se quiser que esta tabela seja agrupada para ter em conta o desempenho. Para mais informações, consulte o artigo Definições de cluster.

Definições de relatórios

Pode configurar e controlar a forma como a Framework Cortex gera dados para a camada de relatórios final do SFMC através do ficheiro de definições de relatórios (src/SFMC/config/reporting_settings.yaml). Este ficheiro controla a forma como os objetos do BigQuery da camada de relatórios (tabelas, vistas,funções ou procedimentos armazenados) são gerados. Para mais informações, consulte o artigo Personalizar o ficheiro de definições de relatórios.

O que se segue?