# Créateur de destination Javascript

Pour les utilisateurs plus avancés, nous proposons de créer des destinations personnalisées en utilisant server-side **javascript** (alias Node.js), mais avec un **facile et simplifié** sous-ensemble de Node.js : le ***Javascript Sandbox***.

## Javascript Sandbox

Sandboxed JavaScript est un JavaScript simplifié qui vous permet d’exécuter de manière sécurisée et facile une logique JavaScript arbitraire depuis votre destination personnalisée (pas besoin d’apprendre Node.js ni de comprendre la syntaxe async/await, par exemple. Si vous connaissez les bases de JavaScript ES5, cela suffit)

Ce JavaScript simplifié est basé sur [des helpers](/fr/fonctionnalites/destinations/destination-builder/javascript-destination-builder/serverside-js-helpers.md), un ensemble de méthodes qui vous permettent de traiter et d’envoyer vos données facilement et rapidement.

{% hint style="info" %}
La technologie du modèle javascript sandbox de la destination sur la plateforme est, dans une large mesure, compatible avec les modèles Google Tag manager.\
Dans la plupart des cas, les modèles écrits pour GTM fonctionnent dans Commanders'act sans aucune (ou avec peu de) modification(s)
{% endhint %}

{% hint style="info" %}
Vous pouvez également importer des modèles créés sur GTM dans votre catalogue en quelques clics avec une expérience 100 % no-code.
{% endhint %}

## Destination Event ou Audience

Vous pouvez choisir de créer une **Event** destination (pour transférer des événements comme un achat, une consultation de page...) ou une **Audience** destination (envoyer les utilisateurs qui ont rejoint ou ont été retirés d’un segment spécifique).

Pour **Event** destination, tous les [standard ](/fr/developers/tracking-and-integrations/tracking/events-reference.md)et les événements personnalisés peuvent être utilisés en entrée.

Pour **Audience** destination, seuls 2 événements système sont gérés :

* `user_enters_segment`
* `user_leaves_segment`

Ces 2 événements sont déclenchés automatiquement par le système lorsqu’un utilisateur rejoint ou quitte un segment.\
\
Format des événements d’audience :

```json
{
  "event_name": "user_enters_segment",
  "user": {
    "id": "user1",
    "email": "user1@example.com",
    "firstname": "john user1",
    "lastname": "Doe"
  },
  "context": {
    "segment_id": 1,
    "segment_name": "Audience 1"
  }
}
```

```json
{
  "event_name": "user_leaves_segment",
  "user": {
    "id": "user1",
    "email": "user1@example.com",
    "firstname": "john user1",
    "lastname": "Doe"
  },
  "context": {
    "segment_id": 1,
    "segment_name": "Audience 1"
  }
}
```

## L’éditeur de template

Le Template Editor vous permet de créer, prévisualiser et tester des templates personnalisés. Il comporte quatre zones principales de saisie pour vous aider à définir votre template de destination :

* **Informations :** Définissez les informations de base du template, comme le logo, la catégorie, le nom.
* **Champs :** Il s’agit d’un éditeur visuel par glisser-déposer pour ajouter des champs de saisie à votre template de destination.
* **Code :** Saisissez du JavaScript sandboxed pour définir comment votre destination mappera/transformera/enverra les données.
* **Publier :** Voir/modifier dans quels catalogues (workspaces) votre destination est visible.

<figure><img src="/files/feaa4849bc8937fc7264b439d3ac43e7a744590f" alt=""><figcaption><p>Glissez et déposez vos champs</p></figcaption></figure>

<figure><img src="/files/872d369f149f2b794aaedf71496ecdaaae34b3a5" alt=""><figcaption><p>Écrivez votre code et testez-le avec un événement</p></figcaption></figure>


---

# 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://doc.commandersact.com/fr/fonctionnalites/destinations/destination-builder/javascript-destination-builder.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.
