> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kameleoon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Ajouter et modifier du JavaScript dans la variation de l'expérience

> Injectez et mettez à jour du code JavaScript dans une variation d'expérience à l'aide de l'endpoint Partial Update Variation de l'Automation API.

## Prérequis

* `access token`

L'Automation API nécessite un [access token](/developer-docs/apis/automation-api-rest/get-started/get-started).
Récupérez le token de manière programmatique en suivant les instructions de la section [obtention d'un access token](/developer-docs/apis/automation-api-rest/get-started/get-started#1-obtain-an-access-token).

### Objectif

Mettez à jour la variation (`Variation 1`) de l'[expérience créée](./create-a-new-experiment) avec :

```javascript theme={null}
Kameleoon.API.Core.runWhenElementPresent("#bloc-567, .cta-button, #bloc-789", function(elements) {
  document.querySelector(".cta-button, #bloc-789").innerText = "More new text";
});
```

Puis modifiez le texte en **« Updated Text »**.
Consultez la [référence de l'API](/developer-docs/apis/activation-api-js/api-reference/api-reference#runwhenelementpresent) pour les détails du code.
La mise à jour utilise l'[endpoint Partial Update Variation](/api-reference/variation/partially-update-a-variation).

* `variationId` et `experimentId`

Trouvez les IDs en sélectionnant `Experiment_1` dans le dashboard :

<Frame>
  ![Variation1](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/api-tutorial/variation-1.jpg)
</Frame>

## Étapes

### 1. Injecter le code JavaScript

**Endpoint :**

```
PATCH https://api.kameleoon.com/variations/{variationId}
```

| Nom          | Type   | Description                            |
| ------------ | ------ | -------------------------------------- |
| jsCode       | String | Code JavaScript à mettre à jour.       |
| name         | String | Nom de la variation.                   |
| experimentId | String | L'ID de l'expérience associée au code. |

**Exemple :**

```bash theme={null}
curl -L -X PATCH 'https://api.kameleoon.com/variations/1053310' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <ACCESS_TOKEN>' \
--data-raw '{
  "experimentId": 283505,
  "jsCode": "Kameleoon.API.Core.runWhenElementPresent(\".cta-button, #bloc-789\", function(elements) { document.querySelector(\".cta-button, #bloc-789\").innerText = \"Text\";});"
}'
```

### 2. Vérifier l'injection du code

Vérifiez l'éditeur de code pour `Variation 1` :

<Frame>
  ![Variation1\_dashboard](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/api-tutorial/variation-1-update.jpg)
</Frame>

<Frame>
  ![Variation1\_code](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/api-tutorial/variation-1-updated-code.jpg)
</Frame>

### 3. Mettre à jour le code

Modifiez le texte en **« Updated Text »** :

```bash theme={null}
curl -L -X PATCH 'https://api.kameleoon.com/variations/1053310' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <ACCESS_TOKEN>' \
--data-raw '{
  "experimentId": 283505,
  "jsCode": "Kameleoon.API.Core.runWhenElementPresent(\"#bloc-567, .cta-button\", function(elements) { document.querySelector(\".cta-button, #bloc-789\").innerText = \"Updated Text\";});"
}'
```

### 4. Vérifier la mise à jour

Actualisez l'éditeur pour confirmer la mise à jour :

<Frame>
  ![Variation1\_button](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/api-tutorial/variation-1-updated-button-text.jpg)
</Frame>
