O tutorial a seguir guiará você pelas etapas para criar um SugarCRM Accounts & Contacts conexão de origem e criar um fluxo de dados para trazer SugarCRM dados de contas e contatos para a Adobe Experience Platform usando o Flow Service API.
Este guia requer entendimento prático 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 SugarCRM usando o Flow Service API.
Para se conectar SugarCRM Accounts & Contacts Para o Platform, você deve fornecer valores para as seguintes propriedades de conexão:
Credencial | Descrição | Exemplo |
---|---|---|
host |
O ponto de extremidade da API do SugarCRM ao qual a origem se conecta. | developer.salesfusion.com |
username |
Seu nome de usuário da conta de desenvolvedor do SugarCRM. | abc.def@example.com@sugarmarketdemo000.com |
password |
A senha da sua conta de desenvolvedor do SugarCRM. | 123456789 |
A seguir estão descritas as etapas que devem ser realizadas para autenticar o SugarCRM , crie uma conexão de origem e um fluxo de dados para trazer seus dados de contas e contatos para o Experience Platform.
Uma conexão base retém informações entre sua origem e a Platform, incluindo as credenciais de autenticação da origem, o estado atual da conexão e sua ID de conexão base exclusiva. A ID de conexão básica permite explorar e navegar pelos arquivos de dentro da origem e identificar os itens específicos que deseja assimilar, incluindo informações sobre os tipos de dados e formatos.
Para criar um ID de conexão base, faça uma solicitação POST ao /connections
ao fornecer sua SugarCRM Accounts & Contacts 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 básica para SugarCRM Accounts & Contacts:
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: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "SugarCRM Accounts & Contacts base connection",
"description": "Create a live inbound connection to your SugarCRM Accounts & Contacts instance, to ingest both historic and scheduled data into Experience Platform",
"connectionSpec": {
"id": "59a4b493-a615-40f9-bd38-f823d0909a2b",
"version": "1.0"
},
"auth": {
"specName": "OAuth2 Refresh Code",
"params": {
"host": "developer.salesfusion.com",
"username": "{SUGARCRM_DEVELOPER_ACCOUNT_USERNAME}",
"password": "{SUGARCRM_DEVELOPER_ACCOUNT_PASSWORD}"
}
}
}'
Propriedade | Descrição |
---|---|
name |
O nome da sua conexão básica. Certifique-se de que o nome da sua conexão básica seja descritivo, pois você pode usá-lo para pesquisar informações sobre a sua conexão básica. |
description |
Um valor opcional que pode ser incluído para fornecer mais informações sobre 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 origem é 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 Platform. |
auth.params.host |
O host da API do SugarCRM: developer.salesfusion.com |
auth.params.username |
Seu nome de usuário da conta de desenvolvedor do SugarCRM. |
auth.params.password |
A senha da sua conta de desenvolvedor do SugarCRM. |
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 de arquivos e o conteúdo da fonte na próxima etapa.
{
"id": "f5421911-6f6c-41c7-aafa-5d9d2ce51535",
"etag": "\"4d08164f-0000-0200-0000-6368b7bf0000\""
}
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 seguintes chamadas para encontrar o caminho do arquivo que deseja trazer para a 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 e o conteúdo do arquivo de 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. Para essa fonte, o valor seria json . |
fileType=json |
O tipo do arquivo que você deseja trazer para a Platform. Atualmente, json é o único tipo de arquivo compatível. |
{PREVIEW} |
Um valor booliano que define se o conteúdo da conexão oferece suporte à visualização. |
{SOURCE_PARAMS} |
Define parâmetros para o arquivo de origem que você deseja trazer para a Platform. Para recuperar o tipo de formato aceito para {SOURCE_PARAMS} , você deve codificar toda a cadeia de caracteres em base64. SugarCRM Accounts & Contacts O é compatível com várias APIs. Dependendo do tipo de objeto que você estiver utilizando, passe uma das opções abaixo:
|
A variável SugarCRM Accounts & Contacts O é compatível com várias APIs. Dependendo do tipo de objeto que você está usando, a solicitação a ser enviada é como a seguir:
Solicitação
Para SugarCRM API de contas exibe o valor de {SOURCE_PARAMS}
é passado como {"object_type":"accounts"}
. Quando codificado em base64, ele equivale a eyJvYmplY3RfdHlwZSI6ImFjY291bnRzIn0=
conforme mostrado abaixo.
curl -X GET \
'https://platform.adobe.io/data/foundation/flowservice/connections/f5421911-6f6c-41c7-aafa-5d9d2ce51535/explore?objectType=rest&object=json&fileType=json&preview=true&sourceParams=eyJvYmplY3RfdHlwZSI6ImFjY291bnRzIn0=' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
Para SugarCRM API de Contatos exibe o valor de {SOURCE_PARAMS}
é passado como {"object_type":"contacts"}
. Quando codificado em base64, ele equivale a eyJvYmplY3RfdHlwZSI6ImNvbnRhY3RzIn0=
conforme mostrado abaixo.
curl -X GET \
'https://platform.adobe.io/data/foundation/flowservice/connections/f5421911-6f6c-41c7-aafa-5d9d2ce51535/explore?objectType=rest&object=json&fileType=json&preview=true&sourceParams=eyJvYmplY3RfdHlwZSI6ImNvbnRhY3RzIn0=' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
Resposta
Da mesma forma, dependendo do tipo de objeto que você está usando a resposta recebida, veja abaixo:
Alguns registros foram truncados para permitir uma apresentação melhor.
Uma resposta bem-sucedida retorna uma estrutura, como abaixo.
{
"format": "hierarchical",
"schema": {
"type": "object",
"properties": {
"next": {
"type": "string"
},
"page_number": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"previous": {},
"total_count": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"count": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"results": {
"type": "object",
"properties": {
"owner": {
"type": "string"
},
"key_account": {
"type": "boolean"
},
"owner_id": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"custom_score_field": {
"type": "string"
},
"created_by": {
"type": "string"
},
"billing_city": {
"type": "string"
},
"account_id": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"phone": {
"type": "string"
},
"account_name": {
"type": "string"
},
"updated_by": {
"type": "string"
},
"updated_by_id": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"created_date": {
"type": "string"
},
"updated_date": {
"type": "string"
},
"created_by_id": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"account_score": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"account": {
"type": "string"
},
"contacts": {
"type": "string"
}
}
},
"page_size": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
}
}
},
"data": [
{
"next": "https://developer.salesfusion.com/api/2.0/accounts/?date_field=updated_date&page=2",
"page_number": 1,
"total_count": 101148,
"count": 101148,
"results": {
"account_id": 1,
"account": "https://developer.salesfusion.com/api/2.0/accounts/1/",
"account_name": "No Company",
"owner_id": 1,
"owner": "https://developer.salesfusion.com/api/2.0/users/1/",
"created_date": "2022-06-22T23:35:00Z",
"created_by": "https://developer.salesfusion.com/api/2.0/users/1/",
"updated_date": "2019-08-29T15:18:00Z",
"updated_by": "https://developer.salesfusion.com/api/2.0/users/1/",
"contacts": "https://developer.salesfusion.com/api/2.0/accounts/1/contacts/",
"created_by_id": 1,
"updated_by_id": 1,
"custom_score_field": "0",
"account_score": 0,
"key_account": false
},
"page_size": 100
},
{
"next": "https://developer.salesfusion.com/api/2.0/accounts/?date_field=updated_date&page=2",
"page_number": 1,
"total_count": 101148,
"count": 101148,
"results": {
"account_id": 2,
"account": "https://developer.salesfusion.com/api/2.0/accounts/2/",
"account_name": "360 Vacations",
"owner_id": 45,
"owner": "https://developer.salesfusion.com/api/2.0/users/45/",
"phone": "+1 - 384 - 735 - 3844",
"created_date": "2022-09-22T23:35:00Z",
"created_by": "https://developer.salesfusion.com/api/2.0/users/45/",
"updated_date": "2022-02-03T21:55:00Z",
"updated_by": "https://developer.salesfusion.com/api/2.0/users/45/",
"billing_city": "New York City",
"contacts": "https://developer.salesfusion.com/api/2.0/accounts/2/contacts/",
"created_by_id": 45,
"updated_by_id": 45,
"custom_score_field": "0",
"account_score": 0,
"key_account": false
},
"page_size": 100
},
{
"next": "https://developer.salesfusion.com/api/2.0/accounts/?date_field=updated_date&page=2",
"page_number": 1,
"total_count": 101148,
"count": 101148,
"results": {
"account_id": 50,
"account": "https://developer.salesfusion.com/api/2.0/accounts/50/",
"account_name": "Waverly Trading House",
"owner_id": 40,
"owner": "https://developer.salesfusion.com/api/2.0/users/40/",
"phone": "+1 - 964 - 226 - 4552",
"created_date": "2022-09-18T23:35:00Z",
"created_by": "https://developer.salesfusion.com/api/2.0/users/40/",
"updated_date": "2022-02-03T21:55:00Z",
"updated_by": "https://developer.salesfusion.com/api/2.0/users/40/",
"billing_city": "Minneapolis",
"contacts": "https://developer.salesfusion.com/api/2.0/accounts/50/contacts/",
"created_by_id": 40,
"updated_by_id": 40,
"custom_score_field": "0",
"account_score": 0,
"key_account": false
},
"page_size": 100
}
]
}
{
"format": "hierarchical",
"schema": {
"type": "object",
"properties": {
"next": {
"type": "string"
},
"page_number": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"previous": {},
"total_count": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"count": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"results": {
"type": "object",
"properties": {
"opt_out": {
"type": "string"
},
"custom_score_field": {
"type": "string"
},
"contact_id": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"title": {
"type": "string"
},
"deleted_date": {},
"contact": {
"type": "string"
},
"account_name": {
"type": "string"
},
"first_name": {
"type": "string"
},
"del_date": {},
"email": {
"type": "string"
},
"delivered_date": {},
"owner": {
"type": "string"
},
"owner_name": {
"type": "string"
},
"last_name": {
"type": "string"
},
"created_by": {
"type": "string"
},
"account_id": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"opt_out_date": {},
"phone": {
"type": "string"
},
"crm_id": {
"type": "string"
},
"crm_type": {
"type": "string"
},
"updated_by": {
"type": "string"
},
"updated_by_id": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"deliverability_status": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"deliverability_message": {},
"created_date": {
"type": "string"
},
"updated_date": {
"type": "string"
},
"created_by_id": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"account": {
"type": "string"
},
"status": {
"type": "string"
}
}
},
"page_size": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
}
}
},
"data": [
{
"next": "https://developer.salesfusion.com/api/2.0/contacts/?date_field=updated_date&page=2",
"page_number": 1,
"total_count": 135704,
"count": 135704,
"results": {
"contact_id": 1,
"contact": "https://developer.salesfusion.com/api/2.0/contacts/1/",
"first_name": "Cynthia",
"last_name": "Rose",
"phone": "+1 - 000 - 000 - 000",
"email": "test.user@hotmail.com",
"account_id": 10,
"account_name": "Sunyvale Reporting Ltd",
"account": "https://developer.salesfusion.com/api/2.0/accounts/10/",
"owner_name": "Sarah Smith",
"owner": "https://developer.salesfusion.com/api/2.0/users/41/",
"created_date": "2022-06-23T23:35:00Z",
"created_by": "https://developer.salesfusion.com/api/2.0/users/41/",
"updated_date": "2022-02-03T21:55:00Z",
"updated_by": "https://developer.salesfusion.com/api/2.0/users/41/",
"created_by_id": 41,
"updated_by_id": 41,
"crm_id": "f53c3982-84ea-11ec-874a-06a1e215b98e",
"opt_out": "N",
"crm_type": "Lead",
"status": "Assigned",
"title": "Director Operations",
"custom_score_field": "0",
"deliverability_status": 0
},
"page_size": 100
},
{
"next": "https://developer.salesfusion.com/api/2.0/contacts/?date_field=updated_date&page=2",
"page_number": 1,
"total_count": 135704,
"count": 135704,
"results": {
"contact_id": 2,
"contact": "https://developer.salesfusion.com/api/2.0/contacts/2/",
"email": "test.user@outlook.com",
"created_date": "2022-06-21T23:35:00Z",
"updated_date": "2022-02-03T21:55:00Z",
"opt_out": "N",
"crm_type": "Contact",
"deliverability_status": 0
},
"page_size": 100
},
{
"next": "https://developer.salesfusion.com/api/2.0/contacts/?date_field=updated_date&page=2",
"page_number": 1,
"total_count": 135704,
"count": 135704,
"results": {
"contact_id": 3,
"contact": "https://developer.salesfusion.com/api/2.0/contacts/3/",
"first_name": "Jonathan",
"last_name": "Ryan",
"phone": "+1 - 000 - 000 - 0000",
"email": "test.user@yahoo.com",
"account_id": 52,
"account_name": "Q3 ARVRO III PR",
"account": "https://developer.salesfusion.com/api/2.0/accounts/52/",
"owner_name": "Max Jensen",
"owner": "https://developer.salesfusion.com/api/2.0/users/45/",
"created_date": "2022-07-02T23:35:00Z",
"created_by": "https://developer.salesfusion.com/api/2.0/users/45/",
"updated_date": "2022-02-03T21:55:00Z",
"updated_by": "https://developer.salesfusion.com/api/2.0/users/45/",
"created_by_id": 45,
"updated_by_id": 45,
"crm_id": "f54a1840-84ea-11ec-9546-06a1e215b98e",
"opt_out": "N",
"crm_type": "Lead",
"status": "New",
"title": "Director Sales",
"custom_score_field": "0",
"deliverability_status": 0
},
"page_size": 100
]
}
Você pode criar uma conexão de origem fazendo uma solicitação 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 SugarCRM Accounts & Contacts:
Dependendo do tipo de objeto que você estiver utilizando, selecione uma das guias abaixo:
Para SugarCRM API de contas o object_type
o valor da propriedade deve ser accounts
.
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: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "SugarCRM Source Connection",
"description": "SugarCRM Source Connection",
"baseConnectionId": "f5421911-6f6c-41c7-aafa-5d9d2ce51535",
"connectionSpec": {
"id": "63d2b27b-69a5-45c9-a7fe-78148a25de3c",
"version": "1.0"
},
"data": {
"format": "json"
},
"params": {
"object_type": "accounts",
"path": "accounts"
}
}'
Para SugarCRM API de Contatos a object_type
o valor da propriedade deve ser contacts
.
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: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "SugarCRM Source Connection",
"description": "SugarCRM Source Connection",
"baseConnectionId": "f5421911-6f6c-41c7-aafa-5d9d2ce51535",
"connectionSpec": {
"id": "63d2b27b-69a5-45c9-a7fe-78148a25de3c",
"version": "1.0"
},
"data": {
"format": "json"
},
"params": {
"object_type": "contacts",
"path": "contacts"
}
}'
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 base de SugarCRM Accounts & Contacts. Essa ID foi gerada em uma etapa anterior. |
connectionSpec.id |
A ID de especificação de conexão que corresponde à sua origem. |
data.format |
O formato do SugarCRM Accounts & Contacts dados que você deseja assimilar. No momento, o único formato de dados compatível é json . |
object_type |
SugarCRM Accounts & Contacts O é compatível com várias APIs. Dependendo do tipo de objeto que você estiver utilizando, passe uma das opções abaixo:
|
path |
Ele terá o mesmo valor selecionado para object_type . |
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": "8f1fc72a-f562-4a1d-8597-85b5ca1b1cd3",
"etag": "\"ed05f1e1-0000-0200-0000-6368b8710000\""
}
Para que os dados de origem sejam usados na Platform, um esquema de destino deve ser criado para estruturar os dados de origem de acordo com suas necessidades. O esquema de destino é usado para criar um conjunto de dados da Platform no qual os dados de origem estão contidos.
Um schema XDM de destino pode ser criado executando uma solicitação POST para o API do registro de esquema.
Para obter etapas detalhadas sobre como criar um esquema XDM de destino, consulte o tutorial sobre criação de um schema usando a API.
Um conjunto de dados de destino pode ser criado executando uma solicitação POST para o API do serviço de catálogo, fornecendo a ID do schema de destino na carga útil.
Para obter etapas detalhadas sobre como criar um conjunto de dados de destino, consulte o tutorial sobre criação de um conjunto de dados usando a API.
Uma conexão de destino representa a conexão com o destino em que 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 data lake. Essa ID é: c604ff05-7f1a-43c0-8e18-33bf874cb11c
.
Agora você tem os identificadores exclusivos, um esquema de destino, um conjunto de dados de destino e a ID de especificação da conexão para o data lake. Usando esses identificadores, você pode criar uma conexão de destino 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 SugarCRM Accounts & Contacts:
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: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "SugarCRM Target Connection Generic Rest",
"description": "SugarCRM Target Connection Generic Rest",
"connectionSpec": {
"id": "63d2b27b-69a5-45c9-a7fe-78148a25de3c",
"version": "1.0"
},
"data": {
"format": "parquet_xdm",
"schema": {
"id": "https://ns.adobe.com/{TENANT_ID}/schemas/b156e6f818f923e048199173c45e55e20fd2487f5eb03d22",
"version": "1.22"
}
},
"params": {
"dataSetId": "6365389d1d37d01c077a81da"
}
}'
Propriedade | Descrição |
---|---|
name |
O nome da sua 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 da conexão que corresponde ao data lake. Essa ID fixa é: 6b137bf6-d2a0-48c8-914b-d50f4942eb85 . |
data.format |
O formato do SugarCRM Accounts & Contacts dados que você deseja assimilar. |
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 nas etapas posteriores.
{
"id": "6b137bf6-d2a0-48c8-914b-d50f4942eb85",
"etag": "\"8405a268-0000-0200-0000-6368b8c30000\""
}
Para que os dados de origem sejam assimilados em um conjunto de dados de destino, eles devem primeiro ser mapeados para o esquema 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: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"outputSchema": {
"schemaRef": {
"id": "https://ns.adobe.com/{TENANT_ID}/schemas/b156e6f818f923e048199173c45e55e20fd2487f5eb03d22",
"contentType": "application/vnd.adobe.xed-full+json;version=1"
}
},
"mappings": [
{
"sourceType": "ATTRIBUTE",
"source": "results.account",
"destination": "_extconndev.account"
},
{
"sourceType": "ATTRIBUTE",
"source": "results.account_id",
"destination": "_extconndev.account_id"
},
{
"sourceType": "ATTRIBUTE",
"source": "results.acount_name",
"destination": "_extconndev.account_name"
},
{
"sourceType": "ATTRIBUTE",
"source": "results.account_score",
"destination": "_extconndev.account_score"
},
{
"sourceType": "ATTRIBUTE",
"source": "results.billing_city",
"destination": "_extconndev.billing_city"
},
{
"sourceType": "ATTRIBUTE",
"source": "results.contacts",
"destination": "_extconndev.contacts"
},
{
"sourceType": "ATTRIBUTE",
"source": "results.created_by",
"destination": "_extconndev.created_by"
},
{
"sourceType": "ATTRIBUTE",
"source": "results.created_by_id",
"destination": "_extconndev.created_by_id"
},
{
"sourceType": "ATTRIBUTE",
"source": "results.created_date",
"destination": "_extconndev.created_date"
},
{
"sourceType": "ATTRIBUTE",
"source": "results.custom_score_field",
"destination": "_extconndev.custom_score_field"
},
{
"sourceType": "ATTRIBUTE",
"source": "results.key_account",
"destination": "_extconndev.key_account"
},
{
"sourceType": "ATTRIBUTE",
"source": "results.owner",
"destination": "_extconndev.owner"
},
{
"sourceType": "ATTRIBUTE",
"source": "results.owner_id",
"destination": "_extconndev.owner_id"
},
{
"sourceType": "ATTRIBUTE",
"source": "results.phone",
"destination": "_extconndev.phone_no"
},
{
"sourceType": "ATTRIBUTE",
"source": "results.updated_by",
"destination": "_extconndev.updated_by"
},
{
"sourceType": "ATTRIBUTE",
"source": "results.updated_by_id",
"destination": "_extconndev.updated_by_id"
},
{
"sourceType": "ATTRIBUTE",
"source": "results.updated_date",
"destination": "_extconndev.updated_date"
}
]
}'
Propriedade | Descrição |
---|---|
outputSchema.schemaRef.id |
A ID do esquema XDM do público-alvo gerada em uma etapa anterior. |
mappings.sourceType |
O tipo de atributo de origem que está sendo mapeado. |
mappings.source |
O atributo de origem que precisa ser mapeado para um caminho XDM de destino. |
mappings.destination |
O caminho XDM de destino para o qual o atributo de origem está sendo mapeado. |
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": "059c69f7207b4d7e9b48c47e2fd966a6",
"version": 0,
"createdDate": 1597784069368,
"modifiedDate": 1597784069368,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}"
}
O último passo para trazer dados de SugarCRM Accounts & Contacts para a Platform é criar um fluxo de dados. Até agora, você tem os seguintes valores necessários preparados:
Um fluxo de dados é responsável por agendar e coletar dados de uma origem. Você pode criar um fluxo de dados executando uma solicitação POST enquanto fornece os valores mencionados anteriormente na carga.
Para agendar uma assimilação, primeiro defina o valor da hora inicial como a época em segundos. Em seguida, defina o valor de frequência como um de hour
ou day
. O valor do intervalo designa o período entre duas assimilações consecutivas. O valor do intervalo deve ser definido como 1
ou 24
dependendo de scheduleParams.frequency
seleção de hour
ou day
.
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: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "SugarCRM Connector Description Flow Generic Rest",
"description": "SugarCRM Connector Description Flow Generic Rest",
"flowSpec": {
"id": "6499120c-0b15-42dc-936e-847ea3c24d72",
"version": "1.0"
},
"sourceConnectionIds": [
"8f1fc72a-f562-4a1d-8597-85b5ca1b1cd3"
],
"targetConnectionIds": [
"6b137bf6-d2a0-48c8-914b-d50f4942eb85"
],
"transformations": [
{
"name": "Mapping",
"params": {
"mappingId": "059c69f7207b4d7e9b48c47e2fd966a6",
"mappingVersion": "0"
}
}
],
"scheduleParams": {
"startTime": "1625040887",
"frequency": "hour",
"interval": 1
}
}'
Propriedade | Descrição |
---|---|
name |
O nome do fluxo de dados. Verifique se o nome do fluxo de dados é descritivo, pois você pode usá-lo para pesquisar informações sobre o 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 é padronizado como 1.0 . |
sourceConnectionIds |
A variável ID da conexão de origem gerada em uma etapa anterior. |
targetConnectionIds |
A variável ID da conexão de destino gerada 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 Platform. |
transformations.name |
O nome atribuído à transformação. |
transformations.params.mappingId |
A variável ID do mapeamento gerada em uma etapa anterior. |
transformations.params.mappingVersion |
A versão correspondente da ID de mapeamento. Esse valor é padronizado como 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: hour ou day . |
scheduleParams.interval |
O intervalo designa o período entre duas execuções de fluxo consecutivas. O valor do intervalo deve ser um inteiro diferente de zero. O valor do intervalo deve ser definido como 1 ou 24 dependendo de scheduleParams.frequency seleção de hour ou day . |
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": "fcd16140-81b4-422a-8f9a-eaa92796c4f4",
"etag": "\"9200a171-0000-0200-0000-6368c1da0000\""
}
A seção a seguir fornece informações sobre as etapas que podem ser seguidas para monitorar, atualizar e excluir o fluxo de dados.
Depois que o fluxo de dados for 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. Para obter exemplos completos de API, leia o guia em monitoramento de fluxos de dados de origens usando a API.
Atualize os detalhes do seu fluxo de dados, como nome e descrição, bem como o agendamento de execução e os conjuntos de mapeamento associados fazendo uma solicitação PATCH para o /flows
endpoint de Flow Service ao fornecer a ID do fluxo de dados. Ao fazer uma solicitação PATCH, você deve fornecer os atributos exclusivos de seu fluxo de dados etag
no If-Match
cabeçalho. Para obter exemplos completos de API, leia o guia em atualização de fluxos de dados de origens usando a API
Atualize o nome, a descrição e as credenciais da sua conta de origem executando uma solicitação PATCH para a Flow Service ao fornecer a ID de conexão básica como um parâmetro de consulta. Ao fazer uma solicitação PATCH, você deve fornecer as informações exclusivas de sua conta de origem etag
no If-Match
cabeçalho. Para obter exemplos completos de API, leia o guia em atualização da conta de origem usando a API.
Exclua seu fluxo de dados executando uma solicitação DELETE para o Flow Service ao fornecer a ID do fluxo de dados que você deseja excluir como parte do parâmetro de consulta. Para obter exemplos completos de API, leia o guia em exclusão de fluxos de dados usando a API.
Exclua sua conta executando uma solicitação DELETE para o Flow Service ao fornecer a ID de conexão básica da conta que você deseja excluir. Para obter exemplos completos de API, leia o guia em exclusão da conta de origem usando a API.