# Adobe Experience Cloud

{% hint style="success" %}
**Available for:** Consent Management Platform (CMP) & Preference Management Platform (PMP)

**Premium Feature:** Adobe Experience Cloud&#x20;
{% endhint %}

Didomi allows you to sync user preferences to your Adobe CDP through a server to server native integration with Adobe Experience Cloud.

{% hint style="info" %}
Alternatively, the Adobe Experience Cloud integration can be performed directly from the Didomi console for the Preference Management Platform (PMP).&#x20;

Organizations who wish to integrate Adobe Experience Cloud with the Consent Management Platform (CMP) will need to do so via API as detailed below.
{% endhint %}

## Implementation

### **Connection**

Didomi connects to Adobe Experience Cloud CDP on your behalf using OAuth2, hence the need to provide the following parameters:

* **Client ID**
* **Client secret**
* **API key**

In addition to that, and in order to target the exact workflow in your CDP you will also need to provide the following parameters:

* Your Adobe Experience organization ID
* Your schema ID
* Your Dataflow ID and endpoint
* Your Dataset ID

Learn more in [this Help center doc](https://support.didomi.io/adobe-experience-cloud-cdp-integration).

{% hint style="warning" %}
**Note**: In order to ensure that events are received, Didomi will retry at least five times in the span of five minutes before moving on when your endpoint is down.
{% endhint %}

### **Options**

**Upsert mode**

You can choose allowing Didomi to create contact in Adobe Experience Cloud, by setting `upsert_mode` to true. Otherwise, when a consent is collected but the `organization_user_id` value does not match with any contact in Adobe, the consent update will not be propagated.

**Bidirectional flow**

Please note that the bidirectional flow is not supported at the moment.

### **Mapping**

Didomi uses the entity profile of Adobe CDP and sends the profile attribute property when updating a profile. Hence consent events are mapped to Microsoft Dataverse's contact attributes.

## Configuration

<table><thead><tr><th>Property</th><th width="301.3333333333333">Description</th><th>Required</th></tr></thead><tbody><tr><td>Client ID</td><td>Client ID of your project created in <a href="https://developer.adobe.com/console">Adobe Experience Console</a></td><td>Yes</td></tr><tr><td>Client secret</td><td>Client secret of your project created in <a href="https://developer.adobe.com/console">Adobe Experience Console</a></td><td>Yes</td></tr><tr><td>API key</td><td>API key of your project created in <a href="https://developer.adobe.com/console">Adobe Experience Console</a></td><td>Yes</td></tr><tr><td>Organization ID</td><td>Your Adobe Organization ID (from your <a href="https://developer.adobe.com/console">Adobe Experience Console</a>)</td><td>Yes</td></tr><tr><td>Schema ID</td><td>The profile schema defined in <a href="https://experience.adobe.com/">Adobe Experience Platform</a></td><td>Yes</td></tr><tr><td>Dataflow ID</td><td>The ID of your HTTP API Dataflow in <a href="https://experience.adobe.com/">Adobe Experience Platform</a></td><td>Yes</td></tr><tr><td>Dataflow endpoint</td><td>The endpoint of your HTTP API Dataflow in <a href="https://experience.adobe.com/">Adobe Experience Platform</a></td><td>Yes</td></tr><tr><td>Dataset ID</td><td>The ID of the Dataset created in <a href="https://experience.adobe.com/">Adobe Experience Platform</a></td><td>Yes</td></tr><tr><td>User identifier</td><td>Identifier property for users. Options: <code>email</code>, <code>id</code>, <code>personID</code>.</td><td>Yes</td></tr><tr><td>Upsert mode</td><td>By setting upsert_mode to true you allow Didomi to create contacts in Adobe CDP</td><td>No, Default value = false</td></tr><tr><td>Mappings</td><td>Mapping for properties between Didomi and Adobe CDP</td><td>Yes</td></tr></tbody></table>

### API Example

```javascript
{
    "type_id": "adobe-experience-cloud",
    "authentication": {
        "client_id": "your_client_id",
        "client_secret": "your_client_secret",
        "api_key": "your_adobe_api_key",
    },
    "properties": {
        "organization_id": "your_adobe_organization_id",
        "dataflow_endpoint":"your_adobe_dataflow_endpoint",
        "dataflow_id":"your_adobe_dataflow_id",
	"schema_id": "your_schema_id",
	"dataset_id":"your_adobe_dataset_id",
	"user_identifier": ["email"]
    },
    "mappings": [
        {
	    "id": "adobe_profile_attribute_logical_name",
	    "value": "consents_purposes_newsletter_enabled"
	}
    ],
    "upsert_mode": true
}
```
