> For the complete documentation index, see [llms.txt](https://doc.commandersact.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.commandersact.com/fr/fonctionnalites/destinations/destination-builder/javascript-destination-builder.md).

# Constructeur de destinations 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 en toute sécurité et facilement n’importe quelle logique JavaScript 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 [helpers](/fr/fonctionnalites/destinations/destination-builder/javascript-destination-builder/serverside-js-helpers.md), ensemble de méthodes qui vous permettent de traiter et d’envoyer vos données rapidement et facilement.

{% hint style="info" %}
La technologie du sandbox JavaScript des modèles de 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 (ou avec peu de) modifications
{% endhint %}

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

## Destination Event ou Audience

Vous pouvez choisir de créer une **Event** destination (pour transmettre des events comme purchase, page view\...) ou **Audience** destination (envoyer les utilisateurs qui sont entrés ou ont été retirés d’un segment spécifique).

Pour **Event** destination, tous [standard ](/fr/developpeurs/tracking-and-integrations/tracking/events-reference.md)et les events 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 automatiquement déclenchés par le système lorsqu’un utilisateur entre 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 templates

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, telles que le logo, la catégorie et le nom.
* **Champs :** C’est un éditeur visuel en drag\&drop pour ajouter des champs de saisie à votre template de destination.
* **Code :** Saisissez du JavaScript sandboxé pour définir comment votre destination va mapper/transformer/envoyer les données.
* **Publication :** Voir/modifier dans quels catalogues (workspaces) votre destination est visible.

<figure><img src="/files/feaa4849bc8937fc7264b439d3ac43e7a744590f" alt=""><figcaption><p>Glissez-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
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://doc.commandersact.com/fr/fonctionnalites/destinations/destination-builder/javascript-destination-builder.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
