Extração de atividade em massa

Referência de Ponto de Extremidade de Extração de Atividade em Massa

O conjunto de Extração de atividade em massa de APIs REST fornece uma interface programática para recuperar grandes quantidades de dados de atividade do Marketo.  Para casos que não exigem baixa latência e devem transferir volumes significativos de dados de atividades para fora do Marketo, como integração de CRM, ETL, data warehouse e arquivamento de dados.

Permissões

As APIs de Extração de atividade em massa exigem que o usuário da API tenha as permissões de "Atividade somente leitura" ou "Atividade de leitura e gravação".

Filtros

Tipo de filtro
Tipo de dados
Obrigatório
Observações
createdAt
Date Range
Sim
Aceita um objeto JSON com os membros startAt e endAt. startAt aceita um datetime que representa a marca d'água inferior e endAt aceita um datetime que representa a marca d'água superior. O intervalo deve ser de 31 dias ou menos. Os trabalhos com esse tipo de filtro retornam todos os registros acessíveis criados dentro do intervalo de datas. Os datetimes devem estar em um formato ISO-8601, sem milissegundos.
activityTypeIds
Matriz[Inteiro]
Não
Aceita um objeto JSON com um membro, activityTypeIds. O valor deve ser uma matriz de números inteiros, correspondentes aos tipos de atividade desejados. A atividade "Excluir Cliente Potencial" não é suportada (use o ponto de extremidade Obter Clientes Potenciais Excluídos). Recupere as IDs de tipo de atividade usando oponto de extremidade Get Activity Types.
primaryAttributeValueIds
Matriz[Inteiro]
Não
Aceita um objeto JSON com um membro, primaryAttributeValueIds. O valor é uma matriz de IDs que especifica os atributos primários para filtrar. É possível especificar no máximo 50 ids. As IDs são o identificador exclusivo de um campo de cliente potencial ou de um ativo, e podem ser recuperadas chamando o endpoint da API REST apropriado. Por exemplo, para filtrar em um Formulário específico para a atividade "Preencher Formulário", passe o nome do Formulário para o ponto de extremidade Obter Formulário por Nome para recuperar a ID do Formulário. Veja a seguir uma lista de tipos de atividades em que a filtragem de atributos primários é suportada.
primaryAttributeValues
Matriz[Cadeia]
Não
Aceita um objeto JSON com um membro, primaryAttributeValues. O valor é uma matriz de nomes que especifica os atributos primários para filtrar. É possível especificar no máximo 50 nomes. Os nomes são o identificador exclusivo de um campo de cliente potencial ou de um ativo, e podem ser recuperados chamando o endpoint da API REST apropriado. Por exemplo, para filtrar em um Formulário específico para a atividade "Preencher Formulário", passe a ID do Formulário para o ponto de extremidade Obter Formulário por ID para recuperar o nome do Formulário. Veja a seguir uma lista de tipos de atividades em que a filtragem de atributos primários é suportada.

opções de primaryAttributeValueIds primaryattributevalueids-options

Tipo de atividade
Id do Valor do Atributo Principal
Ponto de Extremidade de Recuperação
Grupo de ativos
Alterar valor dos dados
ID do campo de cliente potencial
Descrever cliente em potencial
Nome do atributo
Alterar pontuação
ID do campo de cliente potencial
Descrever cliente em potencial
Nome do atributo
Alteração do status na progressão
ID do programa
Obter Programa por Nome
Programa de marketing
Adicionar à lista
ID da lista estática
Obter Lista Estática por Nome
Lista estática
Remover da lista
ID da lista estática
Obter Lista Estática por Nome
Lista estática
Preenchimento de formulário
ID do formulário
Obter Formulário por Nome
Formulário da Web

Ao usar primaryAttributeValueIds, o filtro activityTypeIds deve estar presente e conter somente IDs de atividade que correspondam ao grupo de ativos correspondente. Por exemplo, se você estiver filtrando ativos de Formulários da Web, somente a ID de tipo de atividade "Preencher Formulário" será permitida em activityTypeIds.

Exemplo de corpo da solicitação:

{
  "filter": {
    "createdAt": {
      "startAt": "2021-07-01T23:59:59-00:00",
      "endAt": "2021-07-02T23:59:59-00:00"
    },
    "activityTypeIds": [
      2
    ],
    "primaryAttributeValueIds": [
      16,102,95,8
    ]
  }
}

primaryAttributeValueIds e primaryAttributeValues não podem ser usados juntos.

opções de primaryAttributeValues primaryattributevalues-options

Tipo de atividade
Valor do atributo primário
Ponto de Extremidade de Recuperação
Grupo de ativos
Alterar valor dos dados
Nome para exibição do campo de cliente potencial
Descrever cliente em potencial
Nome do atributo
Alterar pontuação
Nome para exibição do campo de cliente potencial
Descrever cliente em potencial
Nome do atributo
Alteração do status na progressão
Nome do programa
Obter Programa por Id
Programa de marketing
Adicionar à lista
Nome da lista estática
Obter Lista Estática por Id
Lista estática
Remover da lista
Nome da lista estática
Obter Lista Estática por Id
Lista estática
Preenchimento de formulário
Nome do formulário
Obter formulário por ID
Formulário da Web

Observe que você deve usar "<programa>.notação <asset>" para especificar o nome dos seguintes grupos de ativos: Programa de marketing, Lista estática, Formulário web. Por exemplo, um formulário com o nome "Saída MPS" que reside abaixo de um programa com o nome "GL_OP_ALL_2021" seria especificado como "GL_OP_ALL_2021.Saída MPS".

Exemplo de corpo da solicitação:

{
  "filter": {
    "createdAt": {
      "startAt": "2021-07-01T23:59:59-00:00",
      "endAt": "2021-07-02T23:59:59-00:00"
    },
    "activityTypeIds": [
      2
    ],
    "primaryAttributeValues": [
      "GL_OP_ALL_2021.MPS Outbound"
    ]
  }
}

Ao usar primaryAttributeValues, o filtro activityTypeIds deve estar presente e conter somente IDs de atividade que correspondam ao grupo de ativos correspondente. Por exemplo, se você estiver filtrando ativos de Formulários da Web, somente a ID de tipo de atividade "Preencher Formulário" será permitida em activityTypeIds. primaryAttributeValues e primaryAttributeValueIds não podem ser usados juntos.

Opções

Parâmetro
Tipo de dados
Obrigatório
Observações
filtro
Matriz[Objeto]
Sim
Aceita uma matriz de filtros. Exatamente um filtro createdAt deve ser incluído na matriz. Um filtro activityTypeIds opcional pode ser incluído. Os filtros são aplicados ao conjunto de atividades acessível e o conjunto de atividades resultante é retornado pelo trabalho de exportação.
formato
String
Não
Aceita um dos seguintes: CSV, TSV, SSV O arquivo exportado é renderizado como um arquivo de valores separados por vírgula, valores separados por tabulação ou valores separados por espaço, respectivamente, se definido. O padrão é CSV, caso não esteja definido.
columnHeaderNames
Objeto
Não
Um objeto JSON que contém pares de valores chave de nomes de campos e cabeçalhos de coluna. A chave deve ser o nome de um campo incluído no trabalho de exportação. O valor é o nome do cabeçalho de coluna exportado para esse campo.
campos
Matriz[Cadeia de Caracteres]
Não
Matriz opcional de cadeias de caracteres que contêm valores de campo. Os campos listados são incluídos no arquivo exportado. Por padrão, os seguintes campos são retornados: marketoGUIDleadId activityDate activityTypeId campaignId primaryAttributeValueId primaryAttributeValueattributes. Esse parâmetro pode ser usado para reduzir o número de campos retornados especificando um subconjunto da lista acima. Exemplo:"fields": ["leadId", "activityDate", "activityTypeId"]Um campo adicional "actionResult" pode ser especificado para incluir a ação de atividade ("bem-sucedido", "ignorado" ou "falhou").

Criação de um trabalho

Para exportar registros, primeiro defina o trabalho e o conjunto de registros que deseja recuperar.  Crie o trabalho usando o ponto de extremidade Criar Trabalho de Atividade de Exportação.  Ao exportar atividades, há dois filtros principais que podem ser aplicados: createdAt, que é sempre obrigatório, e activityTypeIds, que é opcional.  O filtro createdAt é usado para definir um intervalo de datas em que as atividades foram criadas, usando os parâmetros startAt e endAt, que são campos de data e hora, e representam a data de criação mais antiga permitida e a data de criação mais recente permitida, respectivamente.  Você também pode filtrar apenas alguns tipos de atividades, usando o filtro activityTypeIds.  Isso é útil para remover resultados que não são relevantes para seu caso de uso.

POST /bulk/v1/activities/export/create.json
{
   "format": "CSV",
   "filter": {
      "createdAt": {
         "startAt": "2017-07-01T23:59:59-00:00",
         "endAt": "2017-07-31T23:59:59-00:00"
      },
      "activityTypeIds": [
         1,
         12,
         13
      ]
   }
}
{
   "requestId": "e42b#14272d07d78",
   "success": true,
   "result": [
      {
         "exportId": "ce45a7a1-f19d-4ce2-882c-a3c795940a7d",
         "status": "Created",
         "createdAt": "2017-01-21T11:47:30-08:00",
         "queuedAt": "2017-01-21T11:48:30-08:00",
         "format": "CSV"
      }
   ]
}

A tarefa agora tem um status de "Criada", mas ainda não está na fila de processamento.  Para colocá-lo na fila para que ele possa começar a ser processado, chame o ponto de extremidade Enfileirar Trabalho de Atividade de Exportação usando a exportId da resposta de status de criação.

POST /bulk/v1/activities/export/{exportId}/enqueue.json
{
   "requestId": "e42b#14272d07d78",
   "success": true,
   "result": [
      {
         "exportId": "ce45a7a1-f19d-4ce2-882c-a3c795940a7d",
         "status": "Queued",
         "createdAt": "2017-01-21T11:47:30-08:00",
         "queuedAt": "2017-01-21T11:48:30-08:00",
         "format": "CSV"
      }
   ]
}

Agora, o status é informando que a tarefa foi colocada em fila.  Quando um trabalhador se torna disponível para esse trabalho, o status é alternado para "Processando" e o trabalho começa a agregar registros do Marketo.

Status do trabalho de pesquisa

O status do trabalho só pode ser recuperado para trabalhos criados pelo mesmo usuário da API.

A Extração de atividade em massa do Marketo é um endpoint assíncrono, portanto, o status do trabalho deve ser sondado para determinar quando o trabalho é concluído.  Consulte usando o ponto de extremidade Obter Status do Trabalho da Atividade de Exportação da seguinte maneira:

GET /bulk/v1/activities/export/{exportId}/status.json
{
   "requestId": "e42b#14272d07d78",
   "success": true,
   "result": [
      {
         "exportId": "ce45a7a1-f19d-4ce2-882c-a3c795940a7d",
         "status": "Completed",
         "createdAt": "2017-01-21T11:47:30-08:00",
         "queuedAt": "2017-01-21T11:48:30-08:00",
         "startedAt": "2017-01-21T11:51:30-08:00",
         "finishedAt": "2017-01-21T12:59:30-08:00",
         "format": "CSV",
         "numberOfRecords": 15423,
         "fileSize": 12342,
         "fileChecksum": "sha256:c16514c7e80fcac5ea055dacae9617fc3c29aff5365e3743071313ce0ed2a815"
      }
   ]
}

O campo de status pode responder com um dos seguintes valores:

  • Criado
  • Enfileirado
  • Processamento
  • Cancelado
  • Concluído
  • Falha

Recuperação de dados

Quando o trabalho for concluído, recupere seus dados usando o ponto de extremidade Obter Arquivo de Atividade de Exportação.

GET /bulk/v1/activities/export/{exportId}/file.json

A resposta contém um arquivo formatado da maneira que o trabalho foi configurado. O endpoint responde com o conteúdo do arquivo.

Se um campo de cliente em potencial solicitado estiver vazio (não contiver dados), then null será colocado no campo correspondente no arquivo de exportação.  No exemplo abaixo, o campo campaignId da atividade retornada está vazio.

marketoGUID,leadId,activityDate,activityTypeId,campaignId,primaryAttributeValueId,primaryAttributeValue,attributes
783957693,5414087,2022-02-13T14:06:20Z,104,8497,1670,MembershipTest1,"{""Reason"":""Changed by Smart Campaign MembershipTestCampaignStepChoice.MembershipTestCampaignStepChoiceSetUp action Change Data Value"",""Program Member ID"":3240303,""Acquired By"":true,""Old Status"":""Not in Program"",""New Status ID"":21,""Success"":false,""New Status"":""On List"",""Old Status ID"":20}"
783958220,5414094,2022-02-13T14:08:50Z,104,17240,3569,SuccessWebCPS,"{""Program Member ID"":3240305,""Acquired By"":false,""Old Status"":""Not in Program"",""New Status ID"":6,""Success"":true,""New Status"":""Attended"",""Old Status ID"":1}"
783958306,5414094,2022-02-13T14:09:16Z,104,17240,3569,SuccessWebCPS,"{""Program Member ID"":3240305,""Acquired By"":false,""Old Status"":""Attended"",""New Status ID"":6,""Success"":false,""New Status"":""Attended"",""Old Status ID"":6}"
783961924,5316669,2022-02-13T14:27:21Z,104,11614,2333,Nurture Automation,"{""Program Member ID"":3240306,""Acquired By"":false,""Old Status"":""Not in Program"",""New Status ID"":27,""Success"":false,""New Status"":""Member"",""Old Status ID"":26}"

Para oferecer suporte à recuperação parcial e de fácil retomada de dados extraídos, o ponto de extremidade do arquivo oferece suporte opcionalmente ao cabeçalho HTTP Range do tipo bytes.  Se o cabeçalho não estiver definido, todo o conteúdo será retornado.  Você pode ler mais sobre como usar o cabeçalho Intervalo com a Extração em massa do Marketo.

Cancelar um trabalho

Se um trabalho for configurado incorretamente ou se se tornar desnecessário, ele poderá ser facilmente cancelado usando o ponto de extremidade Cancelar Trabalho da Atividade de Exportação:

POST /bulk/v1/activities/export/{exportId}/cancel.json
{
   "requestId": "e42b#14272d07d78",
   "success": true,
   "result": [
      {
         "exportId": "ce45a7a1-f19d-4ce2-882c-a3c795940a7d",
         "status": "Cancelled",
         "createdAt": "2017-01-21T11:47:30-08:00",
         "format": "CSV"
      }
   ]
}

Essa resposta tem um status que indica que o trabalho foi cancelado.

recommendation-more-help
bb269a6d-047a-4bf7-9acd-23ad9a63dc59