> 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 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 **simple 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 par exemple d’apprendre Node.js ou de comprendre la syntaxe async/await. 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), 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 template javascript sandbox de la destination sur la plateforme est, dans une large mesure, compatible avec les templates Google Tag Manager.\
Dans la plupart des cas, les templates écrits pour GTM s'exécutent dans Commanders'act sans (ou avec très peu de) modifications
{% endhint %}

{% hint style="info" %}
Vous pouvez également importer en quelques clics dans votre catalogue des templates créés sur GTM, 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 page vue...) ou **Audience** destination (envoie les utilisateurs qui sont entrés dans un segment spécifique ou en ont été retirés).

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

Pour **Audience** une destination Audience, 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 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

L’éditeur de template 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 en drag\&drop pour ajouter des champs de saisie à votre template de destination.
* **Code :** Saisissez du sandboxed JavaScript pour définir comment votre destination mappera/transformera/enverra les données.
* **Publier :** Affichez/modifiez 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.
