Create a destination server configuration
- Topics:
- Destinations
CREATED FOR:
- Admin
- User
Creating a destination server is the first step in creating your own destination with Destination SDK. The destination server includes configuration options for the server and templating specs, the message format, and the file formatting options (for file-based destinations).
This page exemplifies the API request and payload that you can use to create your own destination server using the /authoring/destination-servers
API endpoint.
For a detailed description of the capabilities that you can configure through this endpoint, read the following articles:
Getting started with destination server API operations
Before continuing, please review the getting started guide for important information that you need to know in order to successfully make calls to the API, including how to obtain the required destination authoring permission and required headers.
Create a destination server configuration
You can create a new destination server configuration by making a POST
request to the /authoring/destination-servers
endpoint.
platform.adobe.io/data/core/activation/authoring/destination-servers
API format
POST /authoring/destination-servers
Depending on the destination type that you create, you need to configure a slightly different type of destination server.
Create static schema destination servers
See in the tabs below examples of destination servers for destinations which use static schemas.
The sample payloads below include all parameters supported by each destination server type. You do not need to include all the parameters in your request. The payload is customizable based on your needs.
Select each tab below to view the corresponding API requests.
Create a real-time (streaming) destination server
You need to create a real-time (streaming) destination server similar to the one shown below when you configure a real-time (streaming) API-based integration.
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '
{
"name":"Moviestar destination server",
"destinationServerType":"URL_BASED",
"urlBasedDestination":{
"url":{
"templatingStrategy":"PEBBLE_V1",
"value":"https://api.moviestar.com/data/{{customerData.region}}/items"
}
},
"httpTemplate":{
"httpMethod":"POST",
"requestBody":{
"templatingStrategy":"PEBBLE_V1",
"value":"{ \"attributes\": [ {% for ns in [\"external_id\", \"yourdestination_id\"] %} {% if input.profile.identityMap[ns] is not empty and first_namespace_encountered %} , {% endif %} {% set first_namespace_encountered = true %} {% for identity in input.profile.identityMap[ns]%} { \"{{ ns }}\": \"{{ identity.id }}\" {% if input.profile.segmentMembership.ups is not empty %} , \"AEPSegments\": { \"add\": [ {% for segment in input.profile.segmentMembership.ups %} {% if segment.value.status == \"realized\" or segment.value.status == \"existing\" %} {% if added_segment_found %} , {% endif %} {% set added_segment_found = true %} \"{{ destination.segmentAliases[segment.key] }}\" {% endif %} {% endfor %} ], \"remove\": [ {% for segment in input.profile.segmentMembership.ups %} {% if segment.value.status == \"exited\" %} {% if removed_segment_found %} , {% endif %} {% set removed_segment_found = true %} \"{{ destination.segmentAliases[segment.key] }}\" {% endif %} {% endfor %} ] } {% set removed_segment_found = false %} {% set added_segment_found = false %} {% endif %} {% if input.profile.attributes is not empty %} , {% endif %} {% for attribute in input.profile.attributes %} \"{{ attribute.key }}\": {% if attribute.value is empty %} null {% else %} \"{{ attribute.value.value }}\" {% endif %} {% if not loop.last%} , {% endif %} {% endfor %} } {% if not loop.last %} , {% endif %} {% endfor %} {% endfor %} ] }"
},
"contentType":"application/json"
}
}
name
Moviestar destination server
.destinationServerType
URL_BASED
for real-time (streaming) destinations.urlBasedDestination.url.templatingStrategy
Required.
- Use
PEBBLE_V1
if Adobe needs to transform the URL in thevalue
field below. Use this option if you have an endpoint likehttps://api.moviestar.com/data/{{customerData.region}}/items
, where theregion
part can differ between customers. In this case you also need to configureregion
as a customer data field in the [destination configuration](…/destination-configuration/create-destination-configuration.md. - Use
NONE
if no transformation is needed on the Adobe side, for example if you have an endpoint like:https://api.moviestar.com/data/items
.
urlBasedDestination.url.value
httpTemplate.httpMethod
GET
, PUT
, POST
, DELETE
, PATCH
.httpTemplate.requestBody.templatingStrategy
PEBBLE_V1
.httpTemplate.requestBody.value
Required. This string is the character-escaped version that transforms the data of Experience Platform customers to the format your service expects.
- For information on how to write the template, read the Using templating section.
- For more information about character escaping, refer to the RFC JSON standard, section seven.
- For an example of a simple transformation, refer to the Profile Attributes transformation.
httpTemplate.contentType
application/json
.Create an Amazon S3 destination server
You need to create an Amazon S3 destination server similar to the one shown below when you configure a file-based Amazon S3 destination.
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '
{
"name": "S3 destination",
"destinationServerType": "FILE_BASED_S3",
"fileBasedS3Destination": {
"bucket": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.bucket}}"
},
"path": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.path}}"
}
},
"fileConfigurations": {
"compression": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.compression}}"
},
"fileType": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.fileType}}"
},
"csvOptions": {
"quote": {
"templatingStrategy": "NONE",
"value": "\""
},
"quoteAll": {
"templatingStrategy": "NONE",
"value": "false"
},
"escape": {
"templatingStrategy": "NONE",
"value": "\\"
},
"escapeQuotes": {
"templatingStrategy": "NONE",
"value": "true"
},
"header": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreLeadingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreTrailingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"nullValue": {
"templatingStrategy": "NONE",
"value": ""
},
"dateFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd"
},
"timestampFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd'T':mm:ss[.SSS][XXX]"
},
"charToEscapeQuoteEscaping": {
"templatingStrategy": "NONE",
"value": "\\"
},
"emptyValue": {
"templatingStrategy": "NONE",
"value": ""
}
}
}
}
name
destinationServerType
FILE_BASED_S3
.fileBasedS3Destination.bucket.templatingStrategy
PEBBLE_V1
.fileBasedS3Destination.bucket.value
fileBasedS3Destination.path.templatingStrategy
PEBBLE_V1
.fileBasedS3Destination.path.value
fileConfigurations
Create an SFTP destination server
You need to create an SFTP destination server similar to the one shown below when you configure a file-based SFTP destination.
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '
{
"name":"File-based SFTP destination server",
"destinationServerType":"FILE_BASED_SFTP",
"fileBasedSFTPDestination":{
"rootDirectory":{
"templatingStrategy":"PEBBLE_V1",
"value":"{{customerData.rootDirectory}}"
},
"port": 22,
"encryptionMode" : "PGP"
},
"fileConfigurations": {
"compression": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.compression}}"
},
"fileType": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.fileType}}"
},
"csvOptions": {
"quote": {
"templatingStrategy": "NONE",
"value": "\""
},
"quoteAll": {
"templatingStrategy": "NONE",
"value": "false"
},
"escape": {
"templatingStrategy": "NONE",
"value": "\\"
},
"escapeQuotes": {
"templatingStrategy": "NONE",
"value": "true"
},
"header": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreLeadingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreTrailingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"nullValue": {
"templatingStrategy": "NONE",
"value": ""
},
"dateFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd"
},
"timestampFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd'T':mm:ss[.SSS][XXX]"
},
"charToEscapeQuoteEscaping": {
"templatingStrategy": "NONE",
"value": "\\"
},
"emptyValue": {
"templatingStrategy": "NONE",
"value": ""
}
}
}
}
name
destinationServerType
FILE_BASED_SFTP
.fileBasedSFTPDestination.rootDirectory.templatingStrategy
PEBBLE_V1
.fileBasedSFTPDestination.rootDirectory.value
fileBasedSFTPDestination.hostName.templatingStrategy
PEBBLE_V1
.fileBasedSFTPDestination.hostName.value
port
encryptionMode
Indicates whether to use file encryption. Supported values:
- PGP
- None
fileConfigurations
Create an Azure Data Lake Storage destination server
You need to create an Azure Data Lake Storage destination server similar to the one shown below when you configure a file-based Azure Data Lake Storage destination.
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '
{
"name":"ADLS destination server",
"destinationServerType":"FILE_BASED_ADLS_GEN2",
"fileBasedAdlsGen2Destination":{
"path":{
"templatingStrategy":"PEBBLE_V1",
"value":"{{customerData.path}}"
}
},
"fileConfigurations": {
"compression": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.compression}}"
},
"fileType": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.fileType}}"
},
"csvOptions": {
"quote": {
"templatingStrategy": "NONE",
"value": "\""
},
"quoteAll": {
"templatingStrategy": "NONE",
"value": "false"
},
"escape": {
"templatingStrategy": "NONE",
"value": "\\"
},
"escapeQuotes": {
"templatingStrategy": "NONE",
"value": "true"
},
"header": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreLeadingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreTrailingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"nullValue": {
"templatingStrategy": "NONE",
"value": ""
},
"dateFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd"
},
"timestampFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd'T':mm:ss[.SSS][XXX]"
},
"charToEscapeQuoteEscaping": {
"templatingStrategy": "NONE",
"value": "\\"
},
"emptyValue": {
"templatingStrategy": "NONE",
"value": ""
}
}
}
}
name
destinationServerType
FILE_BASED_ADLS_GEN2
.fileBasedAdlsGen2Destination.path.templatingStrategy
PEBBLE_V1
.fileBasedAdlsGen2Destination.path.value
fileConfigurations
Create an Azure Blob Storage destination server
You need to create an Azure Blob Storage destination server similar to the one shown below when you configure a file-based Azure Blob Storage destination.
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '
{
"name":"Blob destination server",
"destinationServerType":"FILE_BASED_AZURE_BLOB",
"fileBasedAzureBlobDestination":{
"path":{
"templatingStrategy":"PEBBLE_V1",
"value":"{{customerData.path}}"
},
"container":{
"templatingStrategy":"PEBBLE_V1",
"value":"{{customerData.container}}"
}
},
"fileConfigurations": {
"compression": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.compression}}"
},
"fileType": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.fileType}}"
},
"csvOptions": {
"quote": {
"templatingStrategy": "NONE",
"value": "\""
},
"quoteAll": {
"templatingStrategy": "NONE",
"value": "false"
},
"escape": {
"templatingStrategy": "NONE",
"value": "\\"
},
"escapeQuotes": {
"templatingStrategy": "NONE",
"value": "true"
},
"header": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreLeadingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreTrailingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"nullValue": {
"templatingStrategy": "NONE",
"value": ""
},
"dateFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd"
},
"timestampFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd'T':mm:ss[.SSS][XXX]"
},
"charToEscapeQuoteEscaping": {
"templatingStrategy": "NONE",
"value": "\\"
},
"emptyValue": {
"templatingStrategy": "NONE",
"value": ""
}
}
}
}
name
destinationServerType
FILE_BASED_AZURE_BLOB
.fileBasedAzureBlobDestination.path.templatingStrategy
PEBBLE_V1
.fileBasedAzureBlobDestination.path.value
fileBasedAzureBlobDestination.container.templatingStrategy
PEBBLE_V1
.fileBasedAzureBlobDestination.container.value
fileConfigurations
Create a Data Landing Zone (DLZ) destination server
You need to create a Data Landing Zone (DLZ) destination server similar to the one shown below when you configure a file-based Data Landing Zone (DLZ) destination.
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '
{
"name":"DLZ destination server",
"destinationServerType":"FILE_BASED_DLZ",
"fileBasedDlzDestination":{
"path":{
"templatingStrategy":"PEBBLE_V1",
"value":"{{customerData.path}}"
},
"useCase": "Your use case"
},
"fileConfigurations": {
"compression": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.compression}}"
},
"fileType": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.fileType}}"
},
"csvOptions": {
"quote": {
"templatingStrategy": "NONE",
"value": "\""
},
"quoteAll": {
"templatingStrategy": "NONE",
"value": "false"
},
"escape": {
"templatingStrategy": "NONE",
"value": "\\"
},
"escapeQuotes": {
"templatingStrategy": "NONE",
"value": "true"
},
"header": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreLeadingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreTrailingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"nullValue": {
"templatingStrategy": "NONE",
"value": ""
},
"dateFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd"
},
"timestampFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd'T':mm:ss[.SSS][XXX]"
},
"charToEscapeQuoteEscaping": {
"templatingStrategy": "NONE",
"value": "\\"
},
"emptyValue": {
"templatingStrategy": "NONE",
"value": ""
}
}
}
}
name
destinationServerType
FILE_BASED_DLZ
.fileBasedDlzDestination.path.templatingStrategy
PEBBLE_V1
.fileBasedDlzDestination.path.value
fileConfigurations
Create a Google Cloud Storage destination server
You need to create a Google Cloud Storage destination server similar to the one shown below when you configure a file-based Google Cloud Storage destination.
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '
{
"name":"Google Cloud Storage Server",
"destinationServerType":"FILE_BASED_GOOGLE_CLOUD",
"fileBasedGoogleCloudStorageDestination":{
"bucket":{
"templatingStrategy":"PEBBLE_V1",
"value":"{{customerData.bucket}}"
},
"path":{
"templatingStrategy":"PEBBLE_V1",
"value":"{{customerData.path}}"
}
},
"fileConfigurations": {
"compression": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.compression}}"
},
"fileType": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.fileType}}"
},
"csvOptions": {
"quote": {
"templatingStrategy": "NONE",
"value": "\""
},
"quoteAll": {
"templatingStrategy": "NONE",
"value": "false"
},
"escape": {
"templatingStrategy": "NONE",
"value": "\\"
},
"escapeQuotes": {
"templatingStrategy": "NONE",
"value": "true"
},
"header": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreLeadingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreTrailingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"nullValue": {
"templatingStrategy": "NONE",
"value": ""
},
"dateFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd"
},
"timestampFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd'T':mm:ss[.SSS][XXX]"
},
"charToEscapeQuoteEscaping": {
"templatingStrategy": "NONE",
"value": "\\"
},
"emptyValue": {
"templatingStrategy": "NONE",
"value": ""
}
}
}
}
name
destinationServerType
FILE_BASED_GOOGLE_CLOUD
.fileBasedGoogleCloudStorageDestination.bucket.templatingStrategy
PEBBLE_V1
.fileBasedGoogleCloudStorageDestination.bucket.value
fileBasedGoogleCloudStorageDestination.path.templatingStrategy
PEBBLE_V1
.fileBasedGoogleCloudStorageDestination.path.value
fileConfigurations
Create dynamic schema destination servers
Dynamic schemas allow you to dynamically retrieve the supported target attributes and generate schemas based on your own API. You need to configure a destination server for dynamic schemas before you can configure the schema.
See in the tab below an example of a destination server for destinations which use dynamic schemas.
The sample payload below includes all parameters required for a dynamic schema server.
Create a dynamic schema server
You need to create a dynamic schema server similar to the one shown below when you configure a destination that retrieves its profile schema from your own API endpoint. As opposed to a static schema, a dynamic schema does not use a profileFields
array. Instead, dynamic schemas use a dynamic schema server which connects to your own API from where it retrieves the schema configuration.
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '
{
"name":"Dynamic Schema Server",
"destinationServerType":"URL_BASED",
"urlBasedDestination":{
"url":{
"templatingStrategy":"PEBBLE_V1",
"value":"https://YOUR_API_ENDPOINT/"
}
},
"httpTemplate":{
"httpMethod":"GET"
},
"responseFields":[
{
"templatingStrategy":"PEBBLE_V1",
"value":"{\n \"type\":\"object\",\n \"title\": \"Contact Schema\",\n \"properties\": {\n {% for setDefinition in response.body.items %}\n \"{{setDefinition.key}}\": {\n \"title\" : \"{{setDefinition.name.value}}\",\n \"type\" : \"object\",\n \"properties\": {\n {% for attribute in setDefinition.attributes %}\n \"{{attribute.key}}\": {\n \"title\" : \"{{attribute.name.value}}\",\n \"type\" : \"string\"\n }\n {% if not loop.last %},{%endif%}\n {% endfor %}\n }\n }\n {% if not loop.last %},{%endif%}\n {% endfor %}\n }\n}",
"name":"schema"
}
]
}
name
destinationServerType
URL_BASED
for dynamic schema servers.urlBasedDestination.url.templatingStrategy
Required.
- Use
PEBBLE_V1
if Adobe needs to transform the URL in thevalue
field below. Use this option if you have an endpoint like:https://api.moviestar.com/data/{{customerData.region}}/items
. - Use
NONE
if no transformation is needed on the Adobe side, for example if you have an endpoint like:https://api.moviestar.com/data/items
.
urlBasedDestination.url.value
httpTemplate.httpMethod
GET
.responseFields.templatingStrategy
PEBBLE_V1
.responseFields.value
Required. This string is the character-escaped transformation template that transforms the response received from the partner API into the partner schema that will be displayed in the Experience Platform UI.
- For information on how to write the template, read the Using templating section.
- For more information about character escaping, refer to the RFC JSON standard, section seven.
- For an example of a simple transformation, refer to the Profile Attributes transformation.
Create dynamic dropdown destination servers
Use dynamic dropdowns to dynamically retrieve and populate dropdown customer data fields, based on your own API. For example, you could retrieve a list of existing user accounts which you want to use for a destination connection.
You need to configure a destination server for dynamic dropdowns before you can configure the dyamic dropwdown customer data field.
See in the tab below an example of a destination server used to dynamically retrieve the values to be displayed in a dropdown selector, from an API.
The sample payload below includes all parameters required for a dynamic schema server.
Create a dynamic dropdown server
You need to create a dynamic dropdown server similar to the one shown below when you configure a destination that retrieves the values for a dropdown customer data field from your own API endpoint.
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '
{
"name":"Server for dynamic dropdown",
"destinationServerType":"URL_BASED",
"urlBasedDestination":{
"url":{
"templatingStrategy":"PEBBLE_V1",
"value":"https://api.moviestar.com/data/{{customerData.users}}/items"
}
},
"httpTemplate":{
"httpMethod":"GET",
"headers":[
{
"header":"Authorization",
"value":{
"templatingStrategy":"PEBBLE_V1",
"value":"My Bearer Token"
}
},
{
"header":"x-integration",
"value":{
"templatingStrategy":"PEBBLE_V1",
"value":"{{customerData.integrationId}}"
}
},
{
"header":"Accept",
"value":{
"templatingStrategy":"NONE",
"value":"application/json"
}
}
]
},
"responseFields":[
{
"templatingStrategy":"PEBBLE_V1",
"value":"{% set list = [] %} {% for record in response.body %} {% set list = list|merge([{'name' : record.name, 'value' : record.id }]) %} {% endfor %}{{ {'list': list} | toJson | raw }}",
"name":"list"
}
]
}
name
destinationServerType
URL_BASED
for dynamic dropdown servers.urlBasedDestination.url.templatingStrategy
Required.
- Use
PEBBLE_V1
if Adobe needs to transform the URL in thevalue
field below. Use this option if you have an endpoint like:https://api.moviestar.com/data/{{customerData.region}}/items
. - Use
NONE
if no transformation is needed on the Adobe side, for example if you have an endpoint like:https://api.moviestar.com/data/items
.
urlBasedDestination.url.value
httpTemplate.httpMethod
GET
.httpTemplate.headers
responseFields.templatingStrategy
PEBBLE_V1
.responseFields.value
Required. This string is the character-escaped transformation template that transforms the response received from your API into the values that will be displayed in the Experience Platform UI.
- For information on how to write the template, read the Using templating section.
- For more information about character escaping, refer to the RFC JSON standard, section seven.
API error handling
Destination SDK API endpoints follow the general Experience Platform API error message principles. Refer to API status codes and request header errors in the Experience Platform troubleshooting guide.
Next steps
After reading this document, you now know how to create a new destination server through the Destination SDK /authoring/destination-servers
API endpoint.
To learn more about what you can do with this endpoint, see the following articles:
To understand where this endpoint fits into the destination authoring process, see the following articles: