# Adobe Marketo Engage

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

**Premium Feature:** Adobe Marketo Engage&#x20;
{% endhint %}

Didomi allows you to update your Marketo contact attributes with the preferences collected through your preference management platform (PMP).

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

## Implementation

### **Connection**

Didomi connects to Adobe Marketo Engage on your behalf through the following credentials:

* **Client ID**: To get your client ID, navigate to your Marketo Engage Interface -> Admin -> Integration -> Launchpoint menu.
* **Client secret**: To get your client ID, navigate to your Marketo Engage Interface -> Admin -> Integration -> Launchpoint menu.
* **Instance**: Your instance is the Endpoint provided in Marketo Engage through Interface -> Integration -> Web services -> REST API

{% 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 leads in Marketo, by setting `upsert_mode` to true. Otherwise, when a consent is collected but the `organization_user_id` value does not match with any lead in Marketo, the consent update will not be propagated to Marketo.
* **Bidirectional flow**: Please note that the bidirectional flow is not supported at the moment.

### **Mapping**

Didomi uses the entity Person (Lead) of Marketo and sends the Lead attribute property when updating a lead. Hence consent events are mapped to Marketo's lead attributes.

| Property        | Description                                                                 | Required                  |
| --------------- | --------------------------------------------------------------------------- | ------------------------- |
| Upsert mode     | By setting upsert\_mode to true you allow Didomi to create leads in Marketo | No, Default value = false |
| Client ID       | A client ID from your Marketo account                                       | Yes                       |
| Client secret   | A client secret from your Marketo account                                   | Yes                       |
| Instance        | Your Marketo REST api endpoint                                              | Yes                       |
| User identifier | Identifier property for users. Options: `email`, `leadID`.                  | Yes                       |
| Mappings        | Mapping for properties between Didomi and Marketo                           | Yes                       |

### Example

```javascript
{
    "type_id": "marketo",
    "authentication": {
        "client_id": "your_client_id",
        "client_secret": "your_client_secret",
	"instance": "your_marketo_endpoint"
    },
    "properties": {
	"user_identifier": ["email"]
    },
    "mappings": [
        {
	    "id": "lead_attribute_api_name",
	    "value": "consents_purposes_newsletter_enabled"
	}
    ],
    "upsert_mode": true
}
```
