# Actions personnalisées via l'API

{% hint style="info" %}
**Fonctionnalité Premium**: Surveillance avancée de la conformité
{% endhint %}

Les actions personnalisées permettent à votre organisation de personnaliser le comportement du bot Didomi lorsqu'il interagit avec votre avis de consentement et/ou votre domaine lors de l'analyse pour un rapport de conformité. Dans cet article, nous expliquerons comment tirer parti de l'API Didomi pour configurer des actions personnalisées dans le rapport de conformité de votre organisation.

### Ressources

Avant de poursuivre la lecture de cet article, nous recommandons que votre organisation se familiarise avec la manière d'interagir avec l'API Didomi. Consultez les ressources ci-dessous pour plus d'informations :

* [Introduction à l'API Didomi](https://developers.didomi.io/api-and-platform/introduction)
* [Spécification de l'API Didomi](https://didomi.stoplight.io/docs/didomi-api/4ac4424b6d533-create-one-or-many-properties)

### Cas d'utilisation

Il existe deux cas d'utilisation principaux pour configurer des actions personnalisées pour le bot Didomi qui analyse votre site web :

<table><thead><tr><th width="295">Cas d'utilisation</th><th>Description</th></tr></thead><tbody><tr><td><a href="#custom-scenario">Scénario personnalisé</a></td><td>Personnaliser le comportement du bot Didomi lors de la navigation d'un avis de consentement qui n'est pas compatible avec les actions par défaut du bot</td></tr><tr><td><a href="#accessing-a-logged-in-environment">Accès à un environnement authentifié</a></td><td>Personnaliser le comportement du bot Didomi lorsque la fourniture des identifiants est un processus en plusieurs étapes dans l'authentification </td></tr></tbody></table>

### Configurer la requête API d'action personnalisée&#x20;

Dans cette section, nous expliquerons comment configurer des actions personnalisées en utilisant l'API Didomi pour des cas d'utilisation spécifiques et illustrerons le processus à l'aide d'un exemple.&#x20;

{% tabs %}
{% tab title="Scénario personnalisé" %}
{% hint style="info" %}
Alternativement, les scénarios personnalisés pour le bot Didomi peuvent être configurés directement depuis la console Didomi. [Cliquez ici](/fr/surveillance-avancee-de-la-conformite-acm/rapport-de-conformite-acm/personnaliser-le-scenario-du-bot.md) pour en savoir plus.
{% endhint %}

Par défaut, la Surveillance avancée de la conformité analyse trois scénarios standard (Tout accepter, Tout refuser et Aucune action) afin de recueillir des données suffisantes pour générer le rapport de conformité.&#x20;

Il peut arriver que le bot Didomi utilisé pour l'analyse échoue parce que le comportement par défaut du bot pour les scénarios respectifs ne correspond pas à la façon dont votre CMP est configuré. Dans cet onglet, nous expliquerons comment personnaliser le comportement du bot pour un scénario via l'API.&#x20;

* [Exemple](#example)
* [Récupérer le(s) sélecteur(s) CSS](#retrieve-css-selector-s)
* [Requête API](#api-request)

***

#### Exemple

Dans l'exemple utilisé dans la requête API ci-dessous, nous analysons un avis de consentement où l'action de refuser tous les finalités et fournisseurs n'est présente que sur la deuxième couche de l'avis de consentement. Cependant, le comportement par défaut du bot Didomi est de ne rechercher cette action que sur la première couche de l'avis de consentement et, puisqu'il ne trouvera pas ce bouton, l'analyse pour ce scénario échouera.&#x20;

L'action personnalisée via l'API personnalisera le **Tout refuser** comportement du scénario pour le bot Didomi afin qu'il navigue vers la deuxième couche de l'avis de consentement où se trouve le bouton pour refuser toutes les finalités et tous les fournisseurs.

#### Récupérer le(s) sélecteur(s) CSS

Les valeurs des sélecteurs CSS indiquent au bot Didomi où cliquer (ou insérer du texte) pour naviguer dans votre avis de consentement. Pour collecter les valeurs des sélecteurs CSS :

1. Accédez à votre site web et chargez votre avis de consentement
2. Cliquez avec le bouton droit sur l'élément souhaité de l'avis de consentement sur lequel le bot Didomi doit cliquer (ou insérer du texte)
3. Sélectionnez **Inspecter** dans le menu qui s'affiche

<figure><img src="/files/748cda4c6a9d3b37c10396d7ba095e4ef9de1ef4" alt="" width="375"><figcaption></figcaption></figure>

L'élément devrait être mis en surbrillance dans l'inspecteur. Cliquez avec le bouton droit sur l'élément surligné dans l'inspecteur et sélectionnez **Copier > Copier le sélecteur** (ou **Sélecteur CSS** selon le navigateur).

<figure><img src="/files/43f004824f99f0f97ec26b9b7d01418749be4ee0" alt="" width="563"><figcaption></figcaption></figure>

Répétez si nécessaire pour les éléments sur lesquels le bot Didomi devra cliquer afin d'obtenir le comportement souhaité.

Pour notre scénario personnalisé Tout refuser, le bot Didomi devra cliquer sur le *En savoir plus* bouton de la première couche de l'avis de consentement puis cliquer sur le *Refuser tout* bouton de la deuxième couche de l'avis de consentement.&#x20;

#### Requête API

Dans cette section, nous expliquerons comment construire la requête API pour personnaliser le **Tout refuser** scénario.

{% hint style="info" %}
Didomi vous encourage vivement à consulter la [spécification de l'API pour créer une nouvelle propriété ](https://didomi.stoplight.io/docs/didomi-api/4ac4424b6d533-create-one-or-many-properties)pour le rapport de conformité pour tous les paramètres disponibles dans la requête. De plus, assurez-vous que votre requête contient également le [jeton bearer](https://developers.didomi.io/api-and-platform/introduction/authentication) dans l'en-tête Authorization.
{% endhint %}

**Point de terminaison**

Votre requête API doit être effectuée vers le point de terminaison suivant :

<table data-header-hidden><thead><tr><th></th><th width="530"></th><th data-hidden></th></tr></thead><tbody><tr><td><strong>Méthode</strong></td><td>POST</td><td></td></tr><tr><td><strong>URL</strong></td><td><a href="https://api.didomi.io/v1/reports/compliances/properties">https://api.didomi.io/v1/reports/compliances/properties</a></td><td></td></tr><tr><td><strong>Paramètre de requête</strong></td><td>organization_id</td><td></td></tr></tbody></table>

**Corps**

Lors de la construction du corps de la requête API, la configuration du scénario personnalisé est effectuée dans  `scenarios[].scenario_actions` pour le scénario respectif en cours de personnalisation. Ajoutez un objet à `scenarios[].scenario_actions` pour chaque étape que le bot Didomi doit effectuer pour exécuter le comportement désiré.&#x20;

Pour notre **Tout refuser** scénario personnalisé, le bot Didomi doit d'abord cliquer sur le *En savoir plus* bouton (identifié par le sélecteur CSS) puis sur le *Refuser tout* bouton (identifié par le sélecteur CSS). Voir les lignes 20-35 dans l'exemple ci-dessous.

<pre class="language-json" data-line-numbers data-expandable="true"><code class="lang-json">{
  "name": "Custom Action API",
  "website": "https://demosite.com",
  "scenarios": [
    {
      "enabled": true,
      "type": "accept_all",
      "scenario_actions": [
        {
          "type": "accept",
          "order": 0
        }
      ]
    },
    {
      "enabled": true,
      "type": "no_actions",
      "scenario_actions": []
    },
<strong>    {
</strong><strong>      "enabled": true,
</strong><strong>      "type": "refuse_all",
</strong><strong>      "scenario_actions": [
</strong><strong>        {
</strong><strong>          "type": "click",
</strong><strong>          "order": 0,
</strong><strong>          "css_selector": "#didomi-notice-learn-more-button"
</strong><strong>        },
</strong><strong>        {
</strong><strong>          "type": "click",
</strong><strong>          "order": 1,
</strong><strong>          "css_selector": "#btn-toggle-disagree"
</strong><strong>        }        
</strong><strong>      ]
</strong><strong>    }
</strong>  ],
  "enabled": true,
  "pages_count": 150,
  "country": "fr",
  "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)"
}
</code></pre>

{% endtab %}

{% tab title="Accès à un environnement authentifié" %}
{% hint style="info" %}
Si le formulaire de connexion de votre site web se trouve sur une seule page et comprend un nom d'utilisateur, un mot de passe et un bouton d'envoi, votre organisation peut alternativement utiliser la console Didomi pour configurer une analyse pour un domaine qui nécessite une connexion. [Cliquez ici](/fr/surveillance-avancee-de-la-conformite-acm/rapport-de-conformite-acm/scanner-un-domaine-necessitant-une-connexion.md) pour plus d'informations.
{% endhint %}

Dans cet onglet, nous expliquerons comment personnaliser le comportement du bot Didomi via l'API afin qu'il puisse naviguer avec succès selon la configuration de votre formulaire de connexion pour un domaine.

* [Exemple](#example-1)
* [Récupérer le(s) sélecteur(s) CSS](#retrieve-css-selector-s-1)
* [Requête API](#api-request)

***

#### Exemple

Dans l'exemple utilisé dans la requête API ci-dessous, le domaine pour lequel nous configurons un rapport de conformité possède un formulaire de connexion où l'utilisateur soumet d'abord son adresse e-mail puis son mot de passe.

#### Récupérer le(s) sélecteur(s) CSS

Les valeurs des sélecteurs CSS indiquent au bot Didomi où cliquer (ou insérer du texte) dans le formulaire de connexion. Pour collecter les valeurs des sélecteurs CSS :

1. Accédez au formulaire de connexion
2. Cliquez avec le bouton droit sur l'élément souhaité où le bot Didomi doit cliquer (ou insérer du texte)
3. Sélectionnez **Inspecter** dans le menu qui s'affiche

<figure><img src="/files/5127573e08d01189385fa8537f1ca7e9e6c1e993" alt="" width="375"><figcaption></figcaption></figure>

L'élément devrait être mis en surbrillance dans l'inspecteur. Cliquez avec le bouton droit sur l'élément surligné dans l'inspecteur et sélectionnez **Copier > Copier le sélecteur** (ou **Sélecteur CSS** selon le navigateur).

<figure><img src="/files/94e4ed9dde7286fae1e46abfebd3b9b6f0e2a737" alt="" width="563"><figcaption></figcaption></figure>

Répétez les étapes ci-dessus pour récupérer les sélecteurs CSS pour le champ du nom d'utilisateur, le champ du mot de passe et le bouton d'envoi.

#### Requête API

Dans cette section, nous expliquerons comment construire la requête API pour personnaliser la façon dont le bot Didomi navigue dans le formulaire de connexion

{% hint style="info" %}
Didomi vous encourage vivement à consulter la [spécification de l'API pour créer une nouvelle propriété ](https://didomi.stoplight.io/docs/didomi-api/4ac4424b6d533-create-one-or-many-properties)pour le rapport de conformité pour tous les paramètres disponibles dans la requête. De plus, assurez-vous que votre requête contient également le [jeton bearer](https://developers.didomi.io/api-and-platform/introduction/authentication) dans l'en-tête Authorization.
{% endhint %}

**Point de terminaison**

Votre requête API doit être effectuée vers le point de terminaison suivant :

<table data-header-hidden><thead><tr><th></th><th width="530"></th><th data-hidden></th></tr></thead><tbody><tr><td><strong>Méthode</strong></td><td>POST</td><td></td></tr><tr><td><strong>URL</strong></td><td><a href="https://api.didomi.io/v1/reports/compliances/properties">https://api.didomi.io/v1/reports/compliances/properties</a></td><td></td></tr><tr><td><strong>Paramètre de requête</strong></td><td>organization_id</td><td></td></tr></tbody></table>

**Corps**

Lors de la construction du corps de la requête API, l'action de connexion personnalisée est configurée dans l'objet `login` objet.

la configuration du scénario personnalisé est effectuée dans  `scenarios[].scenario_actions` pour le scénario respectif en cours de personnalisation. Ajoutez un objet à `scenarios[].scenario_actions` pour chaque étape que le bot Didomi doit effectuer pour exécuter le comportement désiré.&#x20;

sdfasdf
{% endtab %}
{% endtabs %}

1. Procédez de la même manière lorsqu'on vous demande le mot de passe. Récupérez le sélecteur d'entrée pour le champ du mot de passe.\
   ![](https://support.didomi.io/hs-fs/hubfs/image-png-Mar-05-2024-11-09-34-5302-AM.png?width=650\&height=1872\&name=image-png-Mar-05-2024-11-09-34-5302-AM.png)\
   ![](https://support.didomi.io/hs-fs/hubfs/image-png-Mar-05-2024-11-10-12-1147-AM.png?width=650\&height=1550\&name=image-png-Mar-05-2024-11-10-12-1147-AM.png)
2. Récupérez le sélecteur CSS pour le bouton d'envoi (continuer). \
   ![](https://support.didomi.io/hs-fs/hubfs/image-png-Mar-05-2024-11-11-35-4658-AM.png?width=652\&height=1565\&name=image-png-Mar-05-2024-11-11-35-4658-AM.png)\
   ![](https://support.didomi.io/hs-fs/hubfs/image-png-Mar-05-2024-11-12-10-8774-AM.png?width=651\&height=1535\&name=image-png-Mar-05-2024-11-12-10-8774-AM.png)

**Création du corps de la requête API**

La requête API typique a le format suivant :

<pre><code>{
    "name": "Custom action - login",
    "website": "https://console.didomi.io/",
    "scraper": {
        "schedule": "0 0 1 * *",
        "url": "https://console.didomi.io/",
        "pages": 10,
        "country": "fr",
<strong>        "enabled": true,
</strong>        "actions": [
            {
<strong>                "page": "first",
</strong>                "actions": [
                    {
<strong>                        "type": "type",
</strong>                        "params": {
                            "text":"&#x3C;username>",
                            "selector": "#username"
                        }
                    },
                    {
<strong>                        "type": "clickOnElement",
</strong>                        "params": {
                            "selector": "#submit-button"
                        }
                    },
                    {
<strong>                        "type": "type",
</strong>                        "params": {
                            "text":"&#x3C;password>",
                            "selector": "#Password"
                        }
                    },
                    {
<strong>                        "type": "clickOnElement",
</strong>                        "params": {
                            "selector": "#submit-button"
                        }
                    }
                ]
            }
        ],
<strong>        "scenarios":["NO_USER_CHOICE","CONSENT_TO_ALL","REFUSE_TO_ALL"]
</strong>    },
    "organization_id": "demo_org_id"
}
</code></pre>

Les éléments en **gras** sont toutes les étapes nécessaires pour que la connexion soit effectuée. Ces actions seront effectuées après l'interaction du bot avec l'avis. Dans le cas où l'avis s'affiche après la connexion, nous vous recommandons de continuer à ajouter en tant que scénario personnalisé l'interaction avec l'avis (voir l'exemple 1).&#x20;

#### Envoi de la requête

Maintenant que le corps de la requête a été créé avec succès, nous devons l'envoyer au point de terminaison POST /properties. Avant de le faire, nous vous conseillons de lire la documentation présentée [ici.](https://developers.didomi.io/api/introduction)

❗Après avoir ajouté une propriété à l'aide de l'API, il peut s'écouler quelques heures avant que le processus d'analyse ne soit déclenché. Si votre rapport ne contient toujours pas de données après 24 heures, veuillez contacter votre Responsable de compte Didomi.&#x20;


---

# 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://docs.didomi.io/fr/surveillance-avancee-de-la-conformite-acm/rapport-de-conformite-acm/actions-personnalisees-via-lapi.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.
