# Actito

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

**Premium Feature:** Actito
{% endhint %}

Didomi allows you to synchronize your [Actito profiles](https://cdn.actito.be/fe/actito-documentation-client/sending/en/Profiles.html) subscriptions with the preferences collected through Didomi consent events.

{% hint style="info" %}
Alternatively, the Actito integration can be performed directly from the Didomi console for the Preference Management Platform (PMP).
{% endhint %}

## Implementation

### Connection

Didomi connects to your Actito account through an API Key to update the subscriptions of an Actito profile every time preferences are collected using the Didomi Platform. Users are matched between Didomi and Actito using the [Didomi user](/api-and-platform/consents/users.md#user-schema)'s `organization_user_id` property.

{% 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 contacts on Actito, 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 Actito, the consent update will not be propagated to Actito.
* **Bidirectional flow**: Actito can also be integrated in a bi-directional fashion by setting up a webhook on the Actito portal pointing to [webhooks.didomi.io](https://webhooks.didomi.io). This will sync Didomi with your Actito profile updates.

### **Mapping**

Didomi uses the entity profile of Actito and sends the subscription update. Hence consent events are mapped to the subscription properties of Actito profiles.

{% hint style="info" %}
**Important**: This integration will only synchronize the subscription properties present at the moment of the activation. If a new subscription property is added to Actito, make sure to update your Didomi integration accordingly.
{% endhint %}

## Configuration

Didomi needs the following configuration items to set up the connection with Actito:

| Property            | Description                                                                   | Required                  |
| ------------------- | ----------------------------------------------------------------------------- | ------------------------- |
| **Upsert mode**     | By setting upsert\_mode to true you allow Didomi to create contacts in Actito | No, Default value = false |
| **API Key**         | API key of the account to connect to the Actito servers                       | Yes                       |
| **Entity ID**       | ID of the Actito entity of the account.                                       | Yes                       |
| **Table name**      | Name of the Actito table where profiles are stored                            | Yes                       |
| **User unique key** | A unique user attribute to identify your users                                | Yes                       |
| Mappings            | List of subscription properties to match between Didomi and Actito            | Yes                       |

On top of the properties to map as subscriptions from the configuration, we also automatically include all the properties (if any) from the Didomi user's `metadata` object as Actito profile attributes.

### Example

```json
{
    "type_id": "actito",
    "authentication": {
        "private_api_key:" "PRIVATE_API_KEY"
    },
    "properties": {
        "entity_id": "ENTITY_NAME",
        "table_name": "TABLE_NAME",
        "user_unique_key": "USER_UNIQUE_KEY"
    },
    "mappings": [
        {
            "id": "ACTITO_EMAIL_SUBSCRIPTION",
            "value": "consents_channels_email_enabled",
        }
    ],
    "upsert_mode": true,
    "enable_webhooks": false,
    "enable_emailing": false
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.didomi.io/integrations/third-party-apps/actito.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
