O Zendesk A fonte está em beta. Consulte a visão geral das fontes para obter mais informações sobre o uso de fontes com rótulo beta.
O tutorial a seguir o orienta pelas etapas para criar uma conexão de origem e um fluxo de dados para trazer Zendesk dados para a plataforma usando a Flow Service API.
Este guia requer uma compreensão funcional dos seguintes componentes do Experience Platform:
As seções a seguir fornecem informações adicionais que você precisará saber para se conectar com êxito ao Zendesk usando o Flow Service API.
Para acessar o Zendesk na Platform, você deve fornecer valores para as seguintes credenciais:
Credencial | Descrição | Exemplo |
---|---|---|
host |
O domínio exclusivo específico da sua conta criado durante o processo de registro. | https://yoursubdomain.zendesk.com |
accessToken |
Token da API do Zendesk. | 0lZnClEvkJSTQ7olGLl7PMhVq99gu26GTbJtf |
Para obter mais informações sobre como autenticar seu Zendesk na fonte, consulte o Zendesk visão geral da fonte.
O tutorial a seguir o orienta pelas etapas para criar um Zendesk conexão de origem e criar um fluxo de dados para trazer Zendesk dados para a plataforma usando a Flow Service API.
Uma conexão base retém informações entre a fonte e a Plataforma, incluindo as credenciais de autenticação da fonte, o estado atual da conexão e a ID de conexão base exclusiva. A ID de conexão básica permite explorar e navegar pelos arquivos da fonte e identificar os itens específicos que deseja assimilar, incluindo informações sobre os tipos e formatos de dados.
Para criar uma ID de conexão base, faça uma solicitação de POST para a variável /connections
endpoint enquanto fornece seu Zendesk credenciais de autenticação como parte do corpo da solicitação.
Formato da API
POST /connections
Solicitação
A solicitação a seguir cria uma conexão base para Zendesk:
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Zendesk base connection",
"description": "Zendesk base connection to authenticate to Platform",
"connectionSpec": {
"id": "0a27232b-2c6e-4396-b8c6-c9fc24e37ba4",
"version": "1.0"
},
"auth": {
"specName": "OAuth2 Refresh Code",
"params": {
"host": "{HOST}",
"accessToken": "{ACCESS_TOKEN}"
}
}
}'
Propriedade | Descrição |
---|---|
name |
O nome da sua conexão básica. Certifique-se de que o nome da sua conexão base seja descritivo, pois você pode usá-lo para pesquisar informações sobre a sua conexão base. |
description |
Um valor opcional que pode ser incluído para fornecer mais informações sobre a sua conexão básica. |
connectionSpec.id |
A ID de especificação de conexão da sua origem. Essa ID pode ser recuperada depois que a fonte é registrada e aprovada por meio do Flow Service API. |
auth.specName |
O tipo de autenticação que você está usando para autenticar sua origem na Plataforma. |
auth.params. |
Contém as credenciais necessárias para autenticar sua fonte. |
auth.params.host |
O domínio exclusivo específico da sua conta criado durante o processo de registro. O formato do subdomínio é https://yoursubdomain.zendesk.com . |
auth.params.accessToken |
O token de acesso correspondente usado para autenticar sua fonte. Isso é necessário para a autenticação baseada em OAuth. |
Resposta
Uma resposta bem-sucedida retorna a conexão base recém-criada, incluindo seu identificador de conexão exclusivo (id
). Essa ID é necessária para explorar a estrutura e o conteúdo do arquivo da sua origem na próxima etapa.
{
"id": "70383d02-2777-4be7-a309-9dd6eea1b46d",
"etag": "\"d64c8298-add4-4667-9a49-28195b2e2a84\""
}
Usando a ID de conexão básica gerada na etapa anterior, você pode explorar arquivos e diretórios executando solicitações do GET.
Use as chamadas a seguir para encontrar o caminho do arquivo que deseja trazer para o Platform:
Formato da API
GET /connections/{BASE_CONNECTION_ID}/explore?objectType=rest&object={OBJECT}&fileType={FILE_TYPE}&preview={PREVIEW}&sourceParams={SOURCE_PARAMS}
Ao executar solicitações do GET para explorar a estrutura de arquivos e o conteúdo de sua origem, você deve incluir os parâmetros de consulta listados na tabela abaixo:
Parâmetro | Descrição |
---|---|
{BASE_CONNECTION_ID} |
A ID de conexão básica gerada na etapa anterior. |
objectType=rest |
O tipo de objeto que você deseja explorar. No momento, esse valor está sempre definido como rest . |
{OBJECT} |
Esse parâmetro é necessário somente ao visualizar um diretório específico. Seu valor representa o caminho do diretório que você deseja explorar. |
fileType=json |
O tipo de arquivo do arquivo que você deseja trazer para a plataforma. Atualmente, json é o único tipo de arquivo compatível. |
{PREVIEW} |
Um valor booleano que define se o conteúdo da conexão suporta pré-visualização. |
{SOURCE_PARAMS} |
Define parâmetros para o arquivo de origem que deseja trazer para a Plataforma. Para recuperar o tipo de formato aceito para {SOURCE_PARAMS} , você deve codificar o todo parameter string em base64. No exemplo abaixo, "{}" codificado em base64 é igual a e30 . |
Solicitação
curl -X GET \
'https://platform.adobe.io/data/foundation/flowservice/connections/70383d02-2777-4be7-a309-9dd6eea1b46d/explore?objectType=rest&object=json&fileType=json&preview=true&sourceParams=e30' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
Resposta
Uma resposta bem-sucedida retorna a estrutura do arquivo consultado. No exemplo abaixo, dentro da variável data[]
a carga útil é mostrada somente um único registro, no entanto, pode haver vários registros.
{
"format": "hierarchical",
"schema": {
"type": "object",
"properties": {
"result": {
"type": "object",
"properties": {
"organization_id": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"external_id": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"role_type": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"custom_role_id": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"default_group_id": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"phone": {
"type": "string"
},
"shared_phone_number": {
"type": "boolean"
},
"alias": {
"type": "string"
},
"last_login_at": {
"type": "string"
},
"signature": {
"type": "string"
},
"details": {
"type": "string"
},
"notes": {
"type": "string"
},
"photo": {
"type": "string",
"media": {
"binaryEncoding": "base64",
"type": "image/png"
}
},
"active": {
"type": "boolean"
},
"created_at": {
"type": "string"
},
"email": {
"type": "string"
},
"iana_time_zone": {
"type": "string"
},
"id": {
"type": "integer"
},
"locale": {
"type": "string"
},
"locale_id": {
"type": "integer"
},
"moderator": {
"type": "boolean"
},
"name": {
"type": "string"
},
"only_private_comments": {
"type": "boolean"
},
"report_csv": {
"type": "boolean"
},
"restricted_agent": {
"type": "boolean"
},
"result_type": {
"type": "string"
},
"role": {
"type": "integer"
},
"shared": {
"type": "boolean"
},
"shared_agent": {
"type": "boolean"
},
"suspended": {
"type": "boolean"
},
"ticket_restriction": {
"type": "string"
},
"time_zone": {
"type": "string"
},
"two_factor_auth_enabled": {
"type": "boolean"
},
"updated_at": {
"type": "string"
},
"url": {
"type": "string"
},
"verified": {
"type": "boolean"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
},
"data": [
{
"result": {
"id": 6106699702801,
"url": "https://{YOURSUBDOMAIN}.zendesk.com/api/v2/users/6106699702801.json",
"name": "test",
"email": "test@org.com",
"created_at": "2022-05-13T08:04:22Z",
"updated_at": "2022-05-13T08:04:22Z",
"time_zone": "Asia/Kolkata",
"iana_time_zone": "Asia/Kolkata",
"locale_id": 1,
"locale": "en-US",
"role": "end-user",
"verified": false,
"active": true,
"shared": false,
"shared_agent": false,
"two_factor_auth_enabled": false,
"moderator": false,
"ticket_restriction": "requested",
"only_private_comments": false,
"restricted_agent": true,
"suspended": false,
"report_csv": false,
"result_type": "user"
}
}
]
}
Você pode criar uma conexão de origem fazendo uma solicitação de POST para o Flow Service API. Uma conexão de origem consiste em uma ID de conexão, um caminho para o arquivo de dados de origem e uma ID de especificação de conexão.
Formato da API
POST /sourceConnections
Solicitação
A solicitação a seguir cria uma conexão de origem para Zendesk:
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/sourceConnections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Zendesk Source Connection",
"description": "Zendesk Source Connection",
"baseConnectionId": "70383d02-2777-4be7-a309-9dd6eea1b46d",
"connectionSpec": {
"id": "0a27232b-2c6e-4396-b8c6-c9fc24e37ba4",
"version": "1.0"
},
"data": {
"format": "json"
},
"params": {}
}'
Propriedade | Descrição |
---|---|
name |
O nome da sua conexão de origem. Certifique-se de que o nome da conexão de origem seja descritivo, pois você pode usá-lo para pesquisar informações sobre a conexão de origem. |
description |
Um valor opcional que pode ser incluído para fornecer mais informações sobre a conexão de origem. |
baseConnectionId |
A ID de conexão básica de Zendesk. Essa ID foi gerada em uma etapa anterior. |
connectionSpec.id |
A ID da especificação de conexão que corresponde à sua origem. |
data.format |
O formato do Zendesk dados que você deseja assimilar. Atualmente, o único formato de dados compatível é json . |
Resposta
Uma resposta bem-sucedida retorna o identificador exclusivo (id
) da conexão de origem recém-criada. Essa ID é necessária em uma etapa posterior para criar um fluxo de dados.
{
"id": "246d052c-da4a-494a-937f-a0d17b1c6cf5",
"etag": "\"712a8c08-fda7-41c2-984b-187f823293d8\""
}
Para que os dados de origem sejam usados na Platform, um schema de target deve ser criado para estruturar os dados de origem de acordo com suas necessidades. O schema de destino é usado para criar um conjunto de dados da plataforma no qual os dados de origem estão contidos.
Um esquema XDM de destino pode ser criado executando-se uma solicitação de POST para a API do Registro de Schema.
Para obter etapas detalhadas sobre como criar um esquema XDM de destino, consulte o tutorial em criação de um schema usando a API.
Um conjunto de dados de destino pode ser criado executando uma solicitação de POST para a API do Serviço de catálogo, fornecendo a ID do schema do target no payload.
Para obter etapas detalhadas sobre como criar um conjunto de dados de destino, consulte o tutorial em criação de um conjunto de dados usando a API.
Uma conexão de destino representa a conexão com o destino onde os dados assimilados devem ser armazenados. Para criar uma conexão de destino, você deve fornecer a ID de especificação de conexão fixa que corresponde ao lago de dados. Essa ID é: c604ff05-7f1a-43c0-8e18-33bf874cb11c
.
Agora você tem os identificadores exclusivos em um esquema de destino em um conjunto de dados de destino e a ID de especificação de conexão no lago de dados. Usando esses identificadores, você pode criar uma conexão de target usando o Flow Service API para especificar o conjunto de dados que conterá os dados de origem de entrada.
Formato da API
POST /targetConnections
Solicitação
A solicitação a seguir cria uma conexão de destino para o Zendesk:
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/targetConnections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Zendesk Target Connection",
"description": "Zendesk Target Connection",
"connectionSpec": {
"id": "c604ff05-7f1a-43c0-8e18-33bf874cb11c",
"version": "1.0"
},
"data": {
"format": "json"
},
"params": {
"dataSetId": "624bf42e16519d19496e3f67"
}
}'
Propriedade | Descrição |
---|---|
name |
O nome da conexão de destino. Certifique-se de que o nome da conexão de destino seja descritivo, pois você pode usá-lo para pesquisar informações sobre a conexão de destino. |
description |
Um valor opcional que pode ser incluído para fornecer mais informações sobre a conexão de destino. |
connectionSpec.id |
A ID da especificação de conexão que corresponde ao lago de dados. Essa ID fixa é: c604ff05-7f1a-43c0-8e18-33bf874cb11c . |
data.format |
O formato do Zendesk dados que você deseja trazer para a plataforma. |
params.dataSetId |
A ID do conjunto de dados de destino recuperada em uma etapa anterior. |
Resposta
Uma resposta bem-sucedida retorna o identificador exclusivo da nova conexão de destino (id
). Essa ID é necessária em etapas posteriores.
{
"id": "7c96c827-3ffd-460c-a573-e9558f72f263",
"etag": "\"a196f685-f5e8-4c4c-bfbd-136141bb0c6d\""
}
Para que os dados de origem sejam assimilados em um conjunto de dados de destino, eles devem primeiro ser mapeados para o schema de destino ao qual o conjunto de dados de destino adere. Isso é feito executando uma solicitação POST para Data Prep API com mapeamentos de dados definidos na carga da solicitação.
Formato da API
POST /conversion/mappingSets
Solicitação
curl -X POST \
'https://platform.adobe.io/data/foundation/conversion/mappingSets' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"version": 0,
"xdmSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/995dabbea86d58e346ff91bd8aa741a9f36f29b1019138d4",
"xdmVersion": "1.0",
"mappings": [
{
"sourceType": "ATTRIBUTE",
"source": "result.id",
"destination": "_extconndev.id",
"name": "id",
"description": "Zendesk"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.external_id",
"destination": "_extconndev.external_id"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.role_type",
"destination": "_extconndev.role_type"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.custom_role_id",
"destination": "_extconndev.custom_role_id"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.default_group_id",
"destination": "_extconndev.default_group_id"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.phone",
"destination": "_extconndev.phone"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.shared_phone_number",
"destination": "_extconndev.shared_phone_number"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.verified",
"destination": "_extconndev.verified"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.alias",
"destination": "_extconndev.alias"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.last_login_at",
"destination": "_extconndev.last_login_at"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.signature",
"destination": "_extconndev.signature"
}, {
"sourceType": "ATTRIBUTE",
"source": "result.details",
"destination": "_extconndev.details"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.notes",
"destination": "_extconndev.notes"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.active",
"destination": "_extconndev.active"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.created_at",
"destination": "_extconndev.created_at"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.email",
"destination": "_extconndev.email"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.iana_time_zone",
"destination": "_extconndev.iana_time_zone"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.organization_id",
"destination": "_extconndev.organization_id"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.locale",
"destination": "_extconndev.locale"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.locale_id",
"destination": "_extconndev.locale_id"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.moderator",
"destination": "_extconndev.moderator"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.name",
"destination": "_extconndev.name"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.only_private_comments",
"destination": "_extconndev.only_private_comments"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.report_csv",
"destination": "_extconndev.report_csv"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.restricted_agent",
"destination": "_extconndev.restricted_agent"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.result_type",
"destination": "_extconndev.result_type"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.role",
"destination": "_extconndev.role"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.shared",
"destination": "_extconndev.shared"
}, {
"sourceType": "ATTRIBUTE",
"source": "result.shared_agent",
"destination": "_extconndev.shared_agent"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.time_zone",
"destination": "_extconndev.time_zone"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.two_factor_auth_enabled",
"destination": "_extconndev.two_factor_auth_enabled"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.suspended",
"destination": "_extconndev.suspended"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.updated_at",
"destination": "_extconndev.updated_at"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.url",
"destination": "_extconndev.url"
},
{
"sourceType": "ATTRIBUTE",
"source": "result.verified",
"destination": "_extconndev.verified"
}
]
}'
Propriedade | Descrição |
---|---|
xdmSchema |
A ID do esquema XDM de destino gerado em uma etapa anterior. |
mappings.destinationXdmPath |
O caminho XDM de destino para o qual o atributo de origem está sendo mapeado. |
mappings.sourceAttribute |
O atributo de origem que precisa ser mapeado para um caminho XDM de destino. |
mappings.identity |
Um valor booleano que designa se o conjunto de mapeamento será marcado para Identity Service. |
Resposta
Uma resposta bem-sucedida retorna detalhes do mapeamento recém-criado, incluindo seu identificador exclusivo (id
). Esse valor é necessário em uma etapa posterior para criar um fluxo de dados.
{
"id": "bf5286a9c1ad4266baca76ba3adc9366",
"version": 0,
"createdDate": 1597784069368,
"modifiedDate": 1597784069368,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}"
}
O último passo para trazer dados do Zendesk para a Platform é criar um fluxo de dados. Por enquanto, você terá os seguintes valores obrigatórios preparados:
Um fluxo de dados é responsável por agendar e coletar dados de uma fonte. Você pode criar um fluxo de dados executando uma solicitação de POST e, ao mesmo tempo, fornecendo os valores mencionados anteriormente dentro da carga útil.
Para agendar uma assimilação, primeiro defina o valor de hora de início como época em segundos. Em seguida, você deve definir o valor de frequência para uma das cinco opções: once
, minute
, hour
, day
ou week
. O valor do intervalo designa o período entre duas ingestões consecutivas, no entanto, a criação de uma ingestão única não requer a definição de um intervalo. Para todas as outras frequências, o valor do intervalo deve ser definido como igual ou superior a 15
.
Formato da API
POST /flows
Solicitação
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/flows' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Zendesk dataflow",
"description": "Zendesk dataflow",
"flowSpec": {
"id": "6499120c-0b15-42dc-936e-847ea3c24d72",
"version": "1.0"
},
"sourceConnectionIds": [
"246d052c-da4a-494a-937f-a0d17b1c6cf5"
],
"targetConnectionIds": [
"7c96c827-3ffd-460c-a573-e9558f72f263"
],
"transformations": [
{
"name": "Mapping",
"params": {
"mappingId": "bf5286a9c1ad4266baca76ba3adc9366",
"mappingVersion": "0"
}
}
],
"scheduleParams": {
"startTime": "1625040887",
"frequency": "minute",
"interval": 15
}
}'
Propriedade | Descrição |
---|---|
name |
O nome do seu fluxo de dados. Certifique-se de que o nome do seu fluxo de dados seja descritivo, pois você pode usá-lo para pesquisar informações no seu fluxo de dados. |
description |
Um valor opcional que pode ser incluído para fornecer mais informações sobre o fluxo de dados. |
flowSpec.id |
A ID de especificação de fluxo necessária para criar um fluxo de dados. Essa ID fixa é: 6499120c-0b15-42dc-936e-847ea3c24d72 . |
flowSpec.version |
A versão correspondente da ID de especificação de fluxo. Esse valor assume como padrão 1.0 . |
sourceConnectionIds |
O ID de conexão de origem gerado em uma etapa anterior. |
targetConnectionIds |
O target connection ID gerado em uma etapa anterior. |
transformations |
Essa propriedade contém as várias transformações necessárias para serem aplicadas aos seus dados. Essa propriedade é necessária ao trazer dados não compatíveis com XDM para a plataforma. |
transformations.name |
O nome atribuído à transformação. |
transformations.params.mappingId |
O ID de mapeamento gerado em uma etapa anterior. |
transformations.params.mappingVersion |
A versão correspondente da ID de mapeamento. Esse valor assume como padrão 0 . |
scheduleParams.startTime |
Essa propriedade contém informações sobre o agendamento de assimilação do fluxo de dados. |
scheduleParams.frequency |
A frequência com que o fluxo de dados coletará dados. Os valores aceitáveis incluem: once , minute , hour , day ou week . |
scheduleParams.interval |
O intervalo designa o período entre duas execuções consecutivas de fluxo. O valor do intervalo deve ser um número inteiro diferente de zero. O intervalo não é necessário quando a frequência é definida como once e deve ser maior que ou igual a 15 para outros valores de frequência. |
Resposta
Uma resposta bem-sucedida retorna a ID (id
) do fluxo de dados recém-criado. Você pode usar essa ID para monitorar, atualizar ou excluir seu fluxo de dados.
{
"id": "993f908f-3342-4d9c-9f3c-5aa9a189ca1a",
"etag": "\"510bb1d4-8453-4034-b991-ab942e11dd8a\""
}
Depois que o fluxo de dados tiver sido criado, você poderá monitorar os dados que estão sendo assimilados por meio dele para ver informações sobre execuções de fluxo, status de conclusão e erros.
Formato da API
GET /runs?property=flowId=={FLOW_ID}
Solicitação
A solicitação a seguir recupera as especificações de um fluxo de dados existente.
curl -X GET \
'https://platform.adobe.io/data/foundation/flowservice/runs?property=flowId==993f908f-3342-4d9c-9f3c-5aa9a189ca1a' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
Resposta
Uma resposta bem-sucedida retorna detalhes sobre a execução do fluxo, incluindo informações sobre a data de criação, as conexões de origem e de destino, bem como o identificador exclusivo da execução do fluxo (id
).
{
"items": [
{
"createdAt": 1596656079576,
"updatedAt": 1596656113526,
"createdBy": "{CREATED_BY}",
"updatedBy": "{UPDATED_BY}",
"createdClient": "{CREATED_CLIENT}",
"updatedClient": "{UPDATED_CLIENT}",
"sandboxId": "1bd86660-c5da-11e9-93d4-6d5fc3a66a8e",
"sandboxName": "prod",
"id": "9830305a-985f-47d0-b030-5a985fd7d004",
"flowId": "993f908f-3342-4d9c-9f3c-5aa9a189ca1a",
"etag": "\"510bb1d4-8453-4034-b991-ab942e11dd8a\"",
"metrics": {
"durationSummary": {
"startedAtUTC": 1596656058198,
"completedAtUTC": 1596656113306
},
"sizeSummary": {
"inputBytes": 24012,
"outputBytes": 17128
},
"recordSummary": {
"inputRecordCount": 100,
"outputRecordCount": 99,
"failedRecordCount": 1
},
"fileSummary": {
"inputFileCount": 1,
"outputFileCount": 1,
"activityRefs": [
"promotionActivity"
]
},
"statusSummary": {
"status": "success",
"errors": [
{
"code": "CONNECTOR-2001-500",
"message": "Error occurred at promotion activity."
}
],
"activityRefs": [
"promotionActivity"
]
}
},
"activities": [
{
"id": "copyActivity",
"updatedAtUTC": 1596656095088,
"durationSummary": {
"startedAtUTC": 1596656058198,
"completedAtUTC": 1596656089650,
"extensions": {
"windowStart": 1596653708000,
"windowEnd": 1596655508000
}
},
"sizeSummary": {
"inputBytes": 24012,
"outputBytes": 24012
},
"recordSummary": {},
"fileSummary": {
"inputFileCount": 1,
"outputFileCount": 1
},
"statusSummary": {
"status": "success",
"extensions": {
"type": "one-time"
}
},
"sourceInfo": [
{
"id": "c0e18602-f9ea-44f9-a186-02f9ea64f9ac",
"type": "SourceConnection",
"reference": {
"type": "AdfRunId",
"ids": [
"8a8eb0cc-e283-4605-ac70-65a5adb1baef"
]
}
}
]
},
{
"id": "promotionActivity",
"updatedAtUTC": 1596656113485,
"durationSummary": {
"startedAtUTC": 1596656095333,
"completedAtUTC": 1596656113306
},
"sizeSummary": {
"inputBytes": 24012,
"outputBytes": 17128
},
"recordSummary": {
"inputRecordCount": 100,
"outputRecordCount": 99,
"failedRecordCount": 1
},
"fileSummary": {
"inputFileCount": 2,
"outputFileCount": 1,
"extensions": {
"manifest": {
"fileInfo": "https://platform.adobe.io/data/foundation/export/batches/01EF01X41KJD82Y9ZX6ET54PCZ/meta?path=input_files"
}
}
},
"statusSummary": {
"status": "success",
"errors": [
{
"code": "CONNECTOR-2001-500",
"message": "Error occurred at promotion activity."
}
],
"extensions": {
"manifest": {
"failedRecords": "https://platform.adobe.io/data/foundation/export/batches/01EF01X41KJD82Y9ZX6ET54PCZ/meta?path=row_errors",
"sampleErrors": "https://platform.adobe.io/data/foundation/export/batches/01EF01X41KJD82Y9ZX6ET54PCZ/meta?path=row_error_samples.json"
},
"errors": [
{
"code": "INGEST-1212-400",
"message": "Encountered 1 errors in the data. Successfully ingested 99 rows. Review the associated diagnostic files for additional details."
},
{
"code": "MAPPER-3700-400",
"recordCount": 1,
"message": "Mapper Transform Error"
}
]
}
},
"targetInfo": [
{
"id": "47166b83-01c7-4b65-966b-8301c70b6562",
"type": "TargetConnection",
"reference": {
"type": "Batch",
"ids": [
"01EF01X41KJD82Y9ZX6ET54PCZ"
]
}
}
]
}
]
}
],
"_links": {}
}
Propriedade | Descrição |
---|---|
items |
Contém uma única carga de metadados associada à sua execução de fluxo específica. |
metrics |
Define características dos dados na execução do fluxo. |
activities |
Define como os dados são transformados. |
durationSummary |
Define a hora inicial e final da execução do fluxo. |
sizeSummary |
Define o volume dos dados em bytes. |
recordSummary |
Define a contagem de registros dos dados. |
fileSummary |
Define a contagem de arquivos dos dados. |
statusSummary |
Define se a execução do fluxo é bem-sucedida ou uma falha. |
Para atualizar o cronograma de execução, o nome e a descrição do seu fluxo de dados, execute uma solicitação de PATCH para a Flow Service API, fornecendo a ID do fluxo, a versão e o novo agendamento que deseja usar.
O If-Match
é necessário usar o cabeçalho ao fazer uma solicitação de PATCH. O valor desse cabeçalho é a tag exclusiva do fluxo de dados que você deseja atualizar.
Formato da API
PATCH /flows/{FLOW_ID}
Solicitação
A solicitação a seguir atualiza o agendamento da execução do fluxo, bem como o nome e a descrição do seu fluxo de dados.
curl -X PATCH \
'https://platform.adobe.io/data/foundation/flowservice/flows/993f908f-3342-4d9c-9f3c-5aa9a189ca1a' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
-H 'If-Match: "1a0037e4-0000-0200-0000-602e06f60000"' \
-d '[
{
"op": "replace",
"path": "/scheduleParams/frequency",
"value": "day"
},
{
"op": "replace",
"path": "/name",
"value": "New dataflow name"
},
{
"op": "replace",
"path": "/description",
"value": "Updated dataflow description"
}
]'
Parâmetro | Descrição |
---|---|
op |
A chamada de operação usada para definir a ação necessária para atualizar o fluxo de dados. As operações incluem: add , replace e remove . |
path |
O caminho do parâmetro a ser atualizado. |
value |
O novo valor com o qual você deseja atualizar seu parâmetro. |
Resposta
Uma resposta bem-sucedida retorna a ID do fluxo e uma tag atualizada. Você pode verificar a atualização fazendo uma solicitação do GET para o Flow Service API, enquanto fornece a ID do fluxo.
{
"id": "993f908f-3342-4d9c-9f3c-5aa9a189ca1a",
"etag": "\"50014cc8-0000-0200-0000-6036eb720000\""
}
Com uma ID de fluxo existente, é possível excluir um fluxo de dados executando uma solicitação de DELETE para a Flow Service API.
Formato da API
DELETE /flows/{FLOW_ID}
Parâmetro | Descrição |
---|---|
{FLOW_ID} |
O único id para o fluxo de dados que deseja excluir. |
Solicitação
curl -X DELETE \
'https://platform.adobe.io/data/foundation/flowservice/flows/993f908f-3342-4d9c-9f3c-5aa9a189ca1a' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
Resposta
Uma resposta bem-sucedida retorna o status HTTP 204 (Sem conteúdo) e um corpo em branco. É possível confirmar a exclusão tentando uma solicitação de pesquisa (GET) para o fluxo de dados. A API retornará um erro HTTP 404 (Not Found), indicando que o fluxo de dados foi excluído.
Para atualizar o nome, a descrição e as credenciais da conexão, execute uma solicitação de PATCH para a Flow Service API ao fornecer a ID de conexão básica, a versão e as novas informações que deseja usar.
O If-Match
é necessário usar o cabeçalho ao fazer uma solicitação de PATCH. O valor desse cabeçalho é a versão exclusiva da conexão que você deseja atualizar.
Formato da API
PATCH /connections/{BASE_CONNECTION_ID}
Parâmetro | Descrição |
---|---|
{BASE_CONNECTION_ID} |
O único id para a conexão que deseja atualizar. |
Solicitação
A solicitação a seguir fornece um novo nome e descrição, bem como um novo conjunto de credenciais, para atualizar sua conexão.
curl -X PATCH \
'https://platform.adobe.io/data/foundation/flowservice/connections/139f6a5f-a78b-4744-9f6a-5fa78bd74431' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
-H 'If-Match: 1400dd53-0000-0200-0000-5f3f23450000' \
-d '[
{
"op": "replace",
"path": "/auth/params",
"value": {
"username": "{USERNAME}",
"password": "{NEW_PASSWORD}",
"securityToken": "{NEW_SECURITY_TOKEN}"
}
},
{
"op": "replace",
"path": "/name",
"value": "Zendesk connection"
},
{
"op": "add",
"path": "/description",
"value": "Zendesk connection"
}
]'
Parâmetro | Descrição |
---|---|
op |
A chamada de operação usada para definir a ação necessária para atualizar a conexão. As operações incluem: add , replace e remove . |
path |
O caminho do parâmetro a ser atualizado. |
value |
O novo valor com o qual você deseja atualizar seu parâmetro. |
Resposta
Uma resposta bem-sucedida retorna a ID de conexão básica e uma tag atualizada. Você pode verificar a atualização fazendo uma solicitação do GET para o Flow Service API, enquanto fornece a ID de conexão.
{
"id": "139f6a5f-a78b-4744-9f6a-5fa78bd74431",
"etag": "\"3600e378-0000-0200-0000-5f40212f0000\""
}
Depois de ter uma ID de conexão base existente, execute uma solicitação de DELETE para a Flow Service API.
Formato da API
DELETE /connections/{CONNECTION_ID}
Parâmetro | Descrição |
---|---|
{BASE_CONNECTION_ID} |
O único id para a conexão básica que deseja excluir. |
Solicitação
curl -X DELETE \
'https://platform.adobe.io/data/foundation/flowservice/connections/dd3631cd-d0ea-4fea-b631-cdd0ea6fea21' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
Resposta
Uma resposta bem-sucedida retorna o status HTTP 204 (Sem conteúdo) e um corpo em branco.
Você pode confirmar a exclusão tentando uma solicitação de pesquisa (GET) para a conexão.