Creare una connessione di origine e un flusso di dati per SugarCRM Accounts & Contacts utilizzando l'API del servizio Flusso
Creato per:
- Sviluppatore
Il seguente tutorial illustra i passaggi necessari per creare una connessione di origine SugarCRM Accounts & Contacts e un flusso di dati per portare i dati di account e contatti di SugarCRM a Adobe Experience Platform utilizzando l'API Flow Service 4}.
Introduzione
Questa guida richiede una buona conoscenza dei seguenti componenti di Experience Platform:
- Origini: Experience Platform consente di acquisire dati da varie origini e allo stesso tempo di strutturare, etichettare e migliorare i dati in arrivo tramite i servizi Experience Platform.
- Sandbox: Experience Platform fornisce sandbox virtuali che suddividono una singola istanza Experience Platform in ambienti virtuali separati, utili per le attività di sviluppo e aggiornamento delle applicazioni di esperienza digitale.
Le sezioni seguenti forniscono informazioni aggiuntive che è necessario conoscere per connettersi correttamente a SugarCRM utilizzando l'API Flow Service.
Raccogli le credenziali richieste
Per connettere SugarCRM Accounts & Contacts ad Experience Platform, è necessario fornire i valori per le seguenti proprietà di connessione:
Credenziali | Descrizione | Esempio |
---|---|---|
host | L’endpoint API di SugarCRM a cui l’origine si connette. | developer.salesfusion.com |
username | Nome utente dell’account sviluppatore SugarCRM. | abc.def@example.com@sugarmarketdemo000.com |
password | Password dell’account sviluppatore SugarCRM. | 123456789 |
Connetti SugarCRM Accounts & Contacts ad Experience Platform utilizzando l'API Flow Service
Di seguito vengono descritti i passaggi necessari per autenticare l'origine SugarCRM, creare una connessione di origine e creare un flusso di dati per portare i dati degli account e dei contatti in Experience Platform.
Creare una connessione di base
Una connessione di base mantiene le informazioni tra l’origine e Experience Platform, incluse le credenziali di autenticazione dell’origine, lo stato corrente della connessione e l’ID univoco della connessione di base. L’ID della connessione di base consente di esplorare e navigare tra i file dall’interno dell’origine e identificare gli elementi specifici che desideri acquisire, comprese le informazioni relative ai tipi di dati e ai formati.
Per creare un ID di connessione di base, eseguire una richiesta POST all'endpoint /connections
fornendo le credenziali di autenticazione SugarCRM Accounts & Contacts come parte del corpo della richiesta.
Formato API
POST /connections
Richiesta
La richiesta seguente crea una connessione di base per 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}"
}
}
}'
name
description
connectionSpec.id
auth.specName
auth.params.host
auth.params.username
auth.params.password
Risposta
In caso di esito positivo, la risposta restituisce la connessione di base appena creata, incluso il relativo identificatore univoco di connessione (id
). Questo ID è necessario per esplorare la struttura e il contenuto del file sorgente nel passaggio successivo.
{
"id": "f5421911-6f6c-41c7-aafa-5d9d2ce51535",
"etag": "\"4d08164f-0000-0200-0000-6368b7bf0000\""
}
Esplora l’origine
Utilizzando l’ID connessione di base generato nel passaggio precedente, puoi esplorare file e directory eseguendo le richieste di GET.
Utilizza le seguenti chiamate per trovare il percorso del file da importare in Experience Platform:
Formato API
GET /connections/{BASE_CONNECTION_ID}/explore?objectType=rest&object={OBJECT}&fileType={FILE_TYPE}&preview={PREVIEW}&sourceParams={SOURCE_PARAMS}
Quando esegui le richieste di GET per esplorare la struttura e il contenuto dei file dell’origine, devi includere i parametri di query elencati nella tabella seguente:
{BASE_CONNECTION_ID}
objectType=rest
rest
.{OBJECT}
json
.fileType=json
json
è l'unico tipo di file supportato.{PREVIEW}
{SOURCE_PARAMS}
Definisce i parametri per il file di origine che desideri portare in Experience Platform. Per recuperare il tipo di formato accettato per {SOURCE_PARAMS}
, è necessario codificare l'intera stringa in base64.
SugarCRM Accounts & Contacts supporta più API. A seconda del tipo di oggetto utilizzato, passare una delle seguenti operazioni:
accounts
: società con cui l'organizzazione ha una relazione.contacts
: singoli utenti con cui l'organizzazione ha una relazione stabilita.
SugarCRM Accounts & Contacts supporta più API. Di seguito è riportato un esempio di oggetto a seconda del tipo di oggetto che si sta sfruttando per la richiesta da inviare:
Richiesta
Per l'API Account SugarCRM il valore per {SOURCE_PARAMS}
è passato come {"object_type":"accounts"}
. Codificato in base64, equivale a eyJvYmplY3RfdHlwZSI6ImFjY291bnRzIn0=
come mostrato di seguito.
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}'
Per l'API Contatti SugarCRM il valore per {SOURCE_PARAMS}
è passato come {"object_type":"contacts"}
. Quando codificato in base64, equivale a eyJvYmplY3RfdHlwZSI6ImNvbnRhY3RzIn0=
come mostrato di seguito.
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}'
Risposta
Analogamente, a seconda del tipo di oggetto che si sta sfruttando la risposta ricevuta, è il seguente:
In caso di esito positivo, la risposta restituisce una struttura come indicato di seguito.
{
"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
}
]
}
In caso di esito positivo, la risposta restituisce una struttura come indicato di seguito.
{
"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
]
}
Creare una connessione sorgente
È possibile creare una connessione di origine effettuando una richiesta POST all'API Flow Service. Una connessione di origine è costituita da un ID di connessione, un percorso del file di dati di origine e un ID della specifica di connessione.
Formato API
POST /sourceConnections
Richiesta
La richiesta seguente crea una connessione di origine per SugarCRM Accounts & Contacts:
A seconda del tipo di oggetto utilizzato, seleziona una delle schede seguenti:
Per l'API Account SugarCRM il valore della proprietà object_type
deve essere 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"
}
}'
Per l'API Contatti SugarCRM il valore della proprietà object_type
deve essere 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"
}
}'
name
description
baseConnectionId
connectionSpec.id
data.format
json
.object_type
SugarCRM Accounts & Contacts supporta più API. A seconda del tipo di oggetto utilizzato, passare una delle seguenti operazioni:
accounts
: società con cui l'organizzazione ha una relazione.contacts
: singoli utenti con cui l'organizzazione ha una relazione stabilita.
path
object_type
.Risposta
In caso di esito positivo, la risposta restituisce l'identificatore univoco (id
) della connessione di origine appena creata. Questo ID è necessario in un passaggio successivo per creare un flusso di dati.
{
"id": "8f1fc72a-f562-4a1d-8597-85b5ca1b1cd3",
"etag": "\"ed05f1e1-0000-0200-0000-6368b8710000\""
}
Creare uno schema XDM di destinazione
Affinché i dati sorgente possano essere utilizzati in Experience Platform, è necessario creare uno schema di destinazione per strutturare i dati sorgente in base alle tue esigenze. Lo schema di destinazione viene quindi utilizzato per creare un set di dati Experience Platform in cui sono contenuti i dati di origine.
È possibile creare uno schema XDM di destinazione eseguendo una richiesta POST all'API Schema Registry.
Per i passaggi dettagliati su come creare uno schema XDM di destinazione, consulta l'esercitazione su creazione di uno schema utilizzando l'API.
Creare un set di dati di destinazione
È possibile creare un set di dati di destinazione eseguendo una richiesta POST all'API Catalog Service, fornendo l'ID dello schema di destinazione all'interno del payload.
Per i passaggi dettagliati su come creare un set di dati di destinazione, consulta l'esercitazione su creazione di un set di dati utilizzando l'API.
Creare una connessione di destinazione
Una connessione di destinazione rappresenta la connessione alla destinazione in cui devono essere memorizzati i dati acquisiti. Per creare una connessione di destinazione, devi fornire l’ID di specifica della connessione fissa che corrisponde al data lake. ID: c604ff05-7f1a-43c0-8e18-33bf874cb11c
.
Ora disponi degli identificatori univoci, di uno schema di destinazione, di un set di dati di destinazione e dell’ID della specifica di connessione al data lake. Utilizzando questi identificatori, è possibile creare una connessione di destinazione utilizzando l'API Flow Service per specificare il set di dati che conterrà i dati di origine in entrata.
Formato API
POST /targetConnections
Richiesta
La richiesta seguente crea una connessione di destinazione per 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"
}
}'
name
description
connectionSpec.id
6b137bf6-d2a0-48c8-914b-d50f4942eb85
.data.format
params.dataSetId
Risposta
Una risposta corretta restituisce l'identificatore univoco della nuova connessione di destinazione (id
). Questo ID è richiesto nei passaggi successivi.
{
"id": "6b137bf6-d2a0-48c8-914b-d50f4942eb85",
"etag": "\"8405a268-0000-0200-0000-6368b8c30000\""
}
Creare una mappatura
Per poter acquisire i dati di origine in un set di dati di destinazione, è necessario prima mapparli sullo schema di destinazione a cui il set di dati di destinazione aderisce. Ciò si ottiene eseguendo una richiesta POST all'API Data Prep API con mappature dati definite nel payload della richiesta.
Formato API
POST /conversion/mappingSets
Richiesta
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"
}
]
}'
outputSchema.schemaRef.id
mappings.sourceType
mappings.source
mappings.destination
Risposta
In caso di esito positivo, la risposta restituisce i dettagli della mappatura appena creata, incluso il relativo identificatore univoco (id
). Questo valore è necessario in un passaggio successivo per creare un flusso di dati.
{
"id": "059c69f7207b4d7e9b48c47e2fd966a6",
"version": 0,
"createdDate": 1597784069368,
"modifiedDate": 1597784069368,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}"
}
Creare un flusso
L'ultimo passaggio per portare dati da SugarCRM Accounts & Contacts ad Experience Platform consiste nella creazione di un flusso di dati. A questo punto sono stati preparati i seguenti valori obbligatori:
Un flusso di dati è responsabile della pianificazione e della raccolta di dati da un’origine. Puoi creare un flusso di dati eseguendo una richiesta POST e fornendo i valori precedentemente menzionati all’interno del payload.
Per pianificare un’acquisizione, devi prima impostare il valore dell’ora di inizio su tempo epoca in secondi. Quindi impostare il valore della frequenza su uno di hour
o day
. Il valore dell’intervallo indica il periodo tra due acquisizioni consecutive. Il valore dell'intervallo deve essere impostato come 1
o 24
a seconda della selezione scheduleParams.frequency
di hour
o day
.
Formato API
POST /flows
Richiesta
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
}
}'
name
description
flowSpec.id
6499120c-0b15-42dc-936e-847ea3c24d72
.flowSpec.version
1.0
.sourceConnectionIds
targetConnectionIds
transformations
transformations.name
transformations.params.mappingId
transformations.params.mappingVersion
0
.scheduleParams.startTime
scheduleParams.frequency
hour
o day
.scheduleParams.interval
1
o 24
a seconda della selezione scheduleParams.frequency
di hour
o day
.Risposta
In caso di esito positivo, la risposta restituisce l'ID (id
) del flusso di dati appena creato. Puoi usare questo ID per monitorare, aggiornare o eliminare il flusso di dati.
{
"id": "fcd16140-81b4-422a-8f9a-eaa92796c4f4",
"etag": "\"9200a171-0000-0200-0000-6368c1da0000\""
}
Appendice
La sezione seguente fornisce informazioni sui passaggi possibili per monitorare, aggiornare ed eliminare il flusso di dati.
Monitorare il flusso di dati
Una volta creato il flusso di dati, puoi monitorare i dati che vengono acquisiti tramite di esso per visualizzare informazioni sulle esecuzioni del flusso, sullo stato di completamento e sugli errori. Per esempi API completi, consulta la guida su monitoraggio dei flussi di dati di origine tramite API.
Aggiornare il flusso di dati
Aggiorna i dettagli del flusso di dati, ad esempio il nome e la descrizione, nonché la pianificazione dell'esecuzione e i set di mappatura associati, effettuando una richiesta PATCH all'endpoint /flows
dell'API Flow Service e fornendo al contempo l'ID del flusso di dati. Quando si effettua una richiesta PATCH, è necessario fornire etag
univoco del flusso di dati nell'intestazione If-Match
. Per esempi API completi, leggere la guida sull'aggiornamento dei flussi di dati di origine tramite API
Aggiornare l’account
Aggiornare il nome, la descrizione e le credenziali dell'account di origine eseguendo una richiesta PATCH all'API Flow Service e fornendo l'ID connessione di base come parametro di query. Quando si effettua una richiesta PATCH, è necessario fornire l'univoco etag
dell'account di origine nell'intestazione If-Match
. Per esempi API completi, consulta la guida in aggiornamento dell'account di origine tramite l'API.
Eliminare il flusso di dati
Elimina il flusso di dati eseguendo una richiesta DELETE all'API Flow Service e fornendo l'ID del flusso di dati che desideri eliminare come parte del parametro di query. Per esempi API completi, consulta la guida su eliminazione dei flussi di dati tramite l'API.
Elimina l’account
Eliminare l'account eseguendo una richiesta DELETE all'API Flow Service e fornendo l'ID connessione di base dell'account che si desidera eliminare. Per esempi API completi, leggere la guida in eliminazione dell'account di origine tramite l'API.