Adobe Experience Platform Extensibility

Adobe Experience Platform Extensibility marquee

Adobe Experience Platform helps customers to centralize and standardize their customer data and content across the enterprise – powering real-time customer profiles, enabling data science, and data governance to drive personalized experiences. AEP provides services that includes capabilities for data ingestion, wrangling and analyzing data and building predictive models and next best action. AEP makes the data, content, and insights available to experience-delivery systems to act upon in real time, yielding compelling experiences in the relevant moment. With AEP, enterprises will be able to utilize completely coordinated marketing and analytics solutions for driving meaningful customer interactions, leading to positive business results.

An integral part of AEP is leveraging data science to improve experiences for our clients as they work to deliver real-time experiences through our open and extensible platform.

Data Ingestion chart

API-first development.

Adobe Experience Platform has been designed and built from the ground up using the principles of API-first design.

1. The API is the primary interface into the application.
2. All platform functions, including administrative functions, are available via API.
3. Platform services, Adobe solutions, and third-party integrations use the same API.

Guided by these principles, as we build Adobe Experience Platform services and solutions, we start by looking at the service capabilities, design the API and then architect the platform from the ground up to support developer access to platform resources. Only once the API itself is built, do we build the user interface by making REST calls to the API. This means that the API, being built first, allows not only Adobe developers but any developer the same access to the core logic of Adobe Experience Platform services and solutions by means of the same API calls. This principal is not limited to REST based APIs. It also applies to other interfaces into Adobe Experience Platform like message-based interfaces. Message-based, event-driven interfaces allow developers to build responsive, reactive applications.

Because the platform is built API-first, it opens up a lot of integration opportunities with partners:
1. Partners who want to build their own data ingestion and egress capabilities, including 24-hour automated processes, can do so using the Catalog and Data Access services. This gives you full integration capabilities with Experience Platform’s data store.
2. Developers can build custom UIs to support specific task-driven use cases.

The openness and breadth offered by Experience Platform’s open API lets you construct a solution that integrates with Experience Platform or other Adobe solutions and offer almost any functionality you can conceive.

Experience Platform overview

Experience Platform Overview graphic

Adobe Experience Platform consists of multiple components. Its multilayer model provides a complete infrastructure on which to build your own custom solutions:
• Data Foundation
• Query Service
• Machine Learning
• Real-time customer profile, Identity, and Edge

Third party solutions graphic
Third party solutions & ingestion chart

Data Foundation

The Data Foundation layer gives developers the power to manage standard schemas, ingest data, manage datasets, apply DULE metadata, and access data. To make the best use of these capabilities, it’s vital that customer data be imported into Adobe Experience Platform in a standardized format that enables Experience Platform to interpret and analyze it. Adobe’s format for this purpose is the Experience Data Model (XDM), a format for representing the data for the Experience Business by putting customer data in standardized fields. Using XDM, you can create a Customer Data Model representing all your customer data in however many datasets you have from whatever data sources you use. You can take advantage of a number of third-party Extract-Transform-Load (ETL) solutions to import into Experience Platform’s Experience Data Lake. The data stored in the Data Lake can come from Adobe solutions like Adobe Analytics, Adobe Target, Adobe Audience Manager, third-party connectors (Microsoft Dynamics, Salesforce, S3, etc.), or through the available APIs.

Query Service

Using Query Service, you can query your data in the Experience Data Lake. Use any SQL-compliant reporting engine and connect it to Adobe Experience Platform. Your queries are executed in a highly scalable compute environment that allows you to run complex queries across a large amount of data and multiple datasets.

Machine Learning

The Machine Learning Framework offers predefined machine-learning models you can leverage in your own solutions, as well as the capability to custom-develop your own models. Through feature development, transforming your data in predefined schemas for machine learning, you can extract valuable insights from customer behavior by understanding their interactions and intentions. In combination with other attributes of the consumer’s profile, it creates a real-time view of the customer.

Unified Profile, Identity, and Edge

These services work together to enable you to build and activate audiences based on a complete profile of your customers’ attributes and behavior:

These services work together to bring your insights and audiences to life. You can segment your audiences, inspect individual profiles, and either make them available inside of Adobe solutions or consume the Unified Profile from a third-party application through the open APIs.

Services in Adobe Experience Platform

Services in Adobe Experience Platform graphic


Adobe Experience Platform’s integration capabilities are provided by a collection of services open to your integration through APIs. Some of the key services in Adobe Experience Platform include the following:

Services in Adobe Experience Platform - Service name chart

XDM Registry

The XDM Registry operationalizes Adobe’s Experience Data Model and other industry-standard schemas or customer-extended schemas. Working with a standard data model brings direct value to customers because they don’t have to label, transform, and match their fields for every individual operation. The XDM Registry also gives an overview of available vendor extensions for the various standard schemas and industry-specific use cases and verticalized solutions. A customer can create their own unique data model (Customer Data Model) according to their business needs, either by creating their own schemas or by extending the available standard schemas already available in the XDM Registry.

Catalog Service

The central Catalog Service tracks and organizes metadata for the data stored in Adobe Experience Platform. As such, it contains references to all available datasets, connections to streaming sources, connectors to external systems, and the states of all datasets in the platform. This central service updates the state of datasets and new batches of data as they come in. One of the first operations is to create a new dataset, based on an XDM Schema, before using the Ingestion Service to bring the actual data into the platform. The catalog service also takes care of the data lineage.

Using the Catalog Service API, create a new dataset and query Experience Platform to discover what data is in the platform, what state it’s in, and how much data has been processed. Then, get its XDM schema, find out what systems or processes have acted on it, understand the state of individual datasets, and more.

Data Ingestion services

Adobe Experience Platform provides two main modes of ingesting data: batch and streaming. Batch ingestion lets you import data in bulk, from any number of datasources and through any connection you define. You can import batch data by either uploading it through the API, or through available out-of-the-box connectors in Adobe Experience Platform. The ingestion service accepts Apache Parquet or CSV files. During ingestion, the data is validated against the schema of the target dataset. Multiple batches can be added to a single dataset.

Streaming data can be picked up from the data pipeline, which can be populated by Adobe Solutions or externally through the Data Collection Service API.

Data Usage Labeling & Enforcement

Adobe Experience Platform not only allows you to aggregate all data from associated Adobe Experience Cloud solutions, but allows you to ingest data from any other source, including commercial databases, third-party solutions, and more. Managing this data requires data governance, such as cataloging the data by its source and type, as well as tracking and enforcing any restrictions on its use.

The Data Usage Labeling & Enforcement (DULE) Framework, built into Experience Platform, enables data stewards to analyze internal Adobe Experience Cloud data and data coming from any external sources at the connection, dataset, or individual field level and apply labels to it that allow the DULE Policy Service to calculate whether any given data usage request is compliant with the laws, contractual restrictions, or corporate policies governing its use. This activates the data for use by marketers, who, through the seamless integration of DULE with Adobe’s marketing solutions, can get immediate feedback on any data usage request, comply with policy, and customize their marketing actions to use the data accordingly. The DULE Framework is also accessible through APIs that enable developers to apply DULE labels programmatically and query the DULE Policy Service for data governance decisions, thereby enabling third-party developers to integrate their applications with DULE governance.

Data Access

The platform is an open system. Datasets available in the platform can be read and exported. The Data Access Service provides a single point of access to the available datasets. The Data Access Service, in turn, depends on the Catalog Service to discover data sets and retrieve them from the Experience Platform’s data store. Using the Data Access API in conjunction with the Catalog Service API, developers can access data on any level—connection, dataset, or individual records—to extract it, transform it, or store it in a third-party system for further use, reference, and analysis.

Real-time customer profile service

The real-time customer profile service is the central service to activate the audiences that are developed within Adobe Experience Platform. As multiple datasets come into the platform and are transformed, eventually they will be consumed by the Profile service. Based on the Customer Data Model (consisting of schemas in XDM and third-party schemas), the service creates an aggregated real-time view of the consumer and allows you to inspect individual consumer profile attributes. Using segment definitions, the profile can return an audience that meets the segment criteria by stitching together the multiple data points coming from multiple datasets. The real-time customer profile service also supports individual point lookups to understand the preferences of a consumer and deliver the right experience. The real-time customer profile service will be consumed by Adobe Solutions, but is also available for integration into third-party activation solutions.

An example use case — Interactive Voice Response system.

For integrators, the Experience Platform APIs provide all capabilities of the platform that are offered throughout the user interface, but now with the ability to create customer workflows and automated data flows. As an integrator, you periodically check the status of datasets, set up new data ingestion procedures, and integrate your own audience activation solution with the Unified Profile.

Consider the world of Interactive Voice Response (IVR) systems and Call Center management software. The supplier can use the Experience Platform APIs to ingest historical information of the customer’s call center activity in the Experience Data Lake. If the data is ingested in the XDM ExperienceEvent Schema (a schema that expresses customer interactions), these interactions can be ingested with no friction directly into the Unified Profile Service. In this case, the “callerId” will be used as the customer’s identifier. The Identity service will take care of identity resolution and assist the Unified Profile Service to add any data points from recent interactions with the Call Center to the customer’s profile.

The next time a customer calls into the Call Center, they will first be answered by the IVR. To personalize the message and deliver an offer tailored to the caller, the IVR system needs to understand more about the caller. This is where API integration with the Unified Profile comes in. The IVR backend can contact the Unified Profile Service for a point lookup. Then, consult either the profile attributes that apply to just the call-center interactions or the full customer profile, which also has attributes for interactions on other touchpoints. By combining data from multiple data sources, using identity resolution, and the Unified Profile, the call center and IVR provider can deliver a tailored customer experience, supported by Adobe Experience Platform.

Development process.

Development process graphic

Use Adobe I/O to integrate with Adobe Experience Platform.

Developing with Adobe Experience Platform is straightforward. Adobe I/O is the place for developers looking to integrate, extend, or create apps and experiences based on Adobe’s products and technologies, including Adobe Experience Platform.

Use Adobe I/O to integrate with Adobe Experience Platform chart

Applications that access APIs for Experience Platform or Adobe Solutions are called integrations. To create an integration, you can use any developer tool or language you like to build your application. To interact with Adobe, however, you have to register your application as an integration through Adobe I/O Console (https://console.adobe.io). Adobe I/O Console provides access to Adobe SDKs as well as registration for your integration.

When you register your integration at Adobe I/O Console, the Adobe Identity Management Service (IMS) issues you an API key (a client ID) that determines the kind of access and permissions you have to Adobe APIs. To access APIs, the integration will authenticate itself using a JSON Web Token. Your integration will need to get an access token from IMS and pass it along with any API requests.

In addition to or instead of API access, you can choose to integrate with Adobe solutions by means of events. Adobe Events are notifications published by Adobe solutions whenever certain activities occur in the solution, such as a user uploading an image to Creative Cloud Assets. Using Adobe I/O Console, you can register your integration to receive Adobe Events from your chosen solution, for which you create a webhook to receive HTTP POSTs that send the substance of the event as a JSON object. This provides a one-way communication whereby your integration can be automatically notified of events in Adobe solutions. Alternatively, you can use the Journaling API to pull lists of events as you wish. You can combine event integration with API access as well.

Calling Adobe Experience Cloud solutions and Adobe Experience Platform.

Once your integration has been registered with Adobe I/O Console, actually calling Adobe APIs from your integration is as simple as HTTP. Your integration issues an HTTP GET request, and the appropriate Adobe API responds via HTTP as well, usually with a JSON object containing the data you asked for.

Here’s an example using the Data Access API to download a file. Suppose your integration first found the file using a request to the Catalog API to obtain the file ID, which in this case is f25a0dd3-rh6h-4ebe-b094. You could then issue a GET request as a curl command:

curl -X GET “https://platform.adobe.io/data/foundation/export/files/f25a0dd3-rh6h- ebe-b094”-H “Authorization: Bearer <access_token>”-H “x-api-key:<api_key>” -H “x-gw-ims-org-id: <IMS_
Org_for_caller>”

The API would respond with a JSON object, like this:

{
“data”: [
{
“name”: “adobe_profiles.csv”,
“length”: “2996”,
“_links”: {
“self”: {
“href”: “https://platform.adobe.io:443/data/foundation/export/files/f25a0dd3-rh6h-4ebe-b094?path=adobe_profiles.csv”
}
}
}
],
“_page”: {
“limit”: 100,
“count”: 1
}
}


Here is another example of a call to the Catalog API to get a list of available datasets:

curl -X GET “https://platform.adobe.io/data/foundation/catalog/
dataSets” -H “Authorization: Bearer <access_token>” -H “x-api-key:
<api_key>” -H “x-gw-ims-org-id: <IMS_Org_for_caller>”
{
“598d6e81b2745f000015edcb”: {
“version”: “1.0.0”,
“imsOrg”: “AdobeIMSOrganization@AdobeOrg”,
“connectorId”: “azure-blob”,
“name”: “CredentialsTest”,
“created”: 1502441089391,
“updated”: 1502441089669,
“dule”: {},
“aspect”: “production”,
“status”: “enabled”,
“fields”: [{
“name”: “name”,
“type”: “string”
},
{
“name”: “age”,
“type”: “string”
}
],
“fileDescription”: {
“persisted”: false
},
“transforms”: “@/dataSets/598d6e81b2745f000015edcb/views/
598d6e81b2745f000015edcc/transforms”,
“files”: “@/dataSets/598d6e81b2745f000015edcb/views/
598d6e81b2745f000015edcc/files”,
“children”: “@/dataSetViews/598d6e81b2745f000015edcc/children”,
“schema”: {},
“viewId”: “598d6e81b2745f000015edcc”
},
: }


To do a point lookup on the Unified Profile Service do the following:

curl -X GET “https://platform.adobe.io/data/core/ups/models/endcustomers
/<customerId>” -H “Authorization:Bearer <access_token>” -H “x-api-key:
<api_key>” -H “x-gw-ims-org-id: <IMS_Org_for_caller>”


As you can see, the common procedure is to issue the GET request to the API endpoint with parameters that indicate what you’re requesting, plus other parameters that provide your authentication information and your organization identifier. In each case, the response will be a JSON object.

Conclusion.

Adobe Experience Platform provides a rich API surface to allow developers of customers, integration partners, and ISVs to build on and extend the platform’s capabilities. The number of services and capabilities we provide will be built out over time. The website developer.adobe.com will provide a one-stop-shop to understand what new capabilities will be available for Adobe Experience Platform. Use developer.adobe.com to access SDKs for all Adobe Cloud solutions.