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

# Variables et sélecteur de données

> TruePath intègre un système sophistiqué de gestion des variables qui permet de capturer, stocker et réutiliser des informations tout au long du graphe conversationnel. Ce système facilite la création d'interactions personnalisées et dynamiques en permettant aux agents d'accéder aux données collectées lors des échanges précédents.

## Vue d'ensemble

Le sélecteur de données constitue l'interface principale pour accéder aux variables extraites dans les noeuds précédents de votre graphe. Cette fonctionnalité s'active automatiquement au focus dans les champs de formulaire marqués de l'icône <Icon icon="brackets-curly" iconType="solid" />, indiquant la possibilité d'injection de variables dynamiques.

## Interface

L'interface du sélecteur de données se compose de plusieurs éléments clés :

* **Panneau de sélection des variables** : Zone d'affichage des variables disponibles selon le mode choisi
* **Commutateur de mode** : Bouton à bascule pour basculer entre les modes `Contexte global` et `Variables scopées par noeud`
* **Bouton d'ajout** : Confirmation de l'injection de la variable dans le champ cible

<Info>
  TruePath propose deux modes distincts de sélection des variables, chacun adapté à des besoins spécifiques d'utilisation.
</Info>

## Mode contexte global

<Frame>
  <img src="https://mintcdn.com/weengage/1STKBOQ8nOwjQf0A/images/agents/truepath/volubile-truepath-data-selector-global-context.png?fit=max&auto=format&n=1STKBOQ8nOwjQf0A&q=85&s=1fbc146734050fee67967bae061c685c" width="1891" height="1249" data-path="images/agents/truepath/volubile-truepath-data-selector-global-context.png" />
</Frame>

Le mode contexte global agrège automatiquement toutes les variables extraites dans l'ensemble des noeuds précédents du graphe conversationnel. Cette approche offre une vision unifiée des données collectées avec les caractéristiques suivantes :

### Fonctionnement

* **Agrégation automatique** : Collecte de toutes les variables depuis le début du graphe
* **Conservation de la dernière version** : En cas de variables homonymes, le système conserve la valeur la plus récente
* **Accès simplifié** : Interface unique présentant toutes les variables disponibles sans référence aux noeuds source

### Exemple de configuration avancée

Dans un scénario de prise de rendez-vous avec plusieurs tentatives de modification :

```
Noeud 3. Prise de rendez-vous initial
├── appointmentDay → "lundi"
├── appointmentTime → "14:00"

Noeud 7. Modification de la prise de rendez-vous
├── appointmentDay → "mercredi"
├── appointmentTime → "16:00"
```

Le mode global permet de choisir la dernière version d'une variable.

### Variables système disponibles

Le mode global inclut automatiquement des variables système essentielles.

<Card title="Variable système" icon="brackets-curly" href="../prompt/context#contexte-système" horizontal>
  Retrouver les variable système disponibles
</Card>

## Mode scopé par noeud

<Frame>
  <img src="https://mintcdn.com/weengage/1STKBOQ8nOwjQf0A/images/agents/truepath/volubile-truepath-data-selector-scoped-context.png?fit=max&auto=format&n=1STKBOQ8nOwjQf0A&q=85&s=be5c1bb28facb041322902bd088832c6" width="1889" height="1254" data-path="images/agents/truepath/volubile-truepath-data-selector-scoped-context.png" />
</Frame>

Le mode variables scopées par noeud offre un accès granulaire aux variables en préservant leur contexte d'extraction spécifique à chaque noeud. Cette approche permet un contrôle précis sur l'origine des données utilisées.

### Fonctionnement

* **Conservation du contexte** : Maintien de la valeur d'une variable au moment exact de son extraction
* **Sélection par noeud** : Possibilité de choisir la version d'une variable selon le noeud source
* **Traçabilité complète** : Identification claire de l'origine de chaque variable

### Structure d'organisation

Le mode scopé organise les variables selon une hiérarchie claire :

```
Noeud Source
├── Variable 1
├── Variable 2
└── Variable n
```

### Exemple de configuration avancée

Dans un scénario de prise de rendez-vous avec plusieurs tentatives de modification :

```
Noeud 3. Prise de rendez-vous initial
├── appointmentDay → "lundi"
├── appointmentTime → "14:00"

Noeud 7. Modification de la prise de rendez-vous
├── appointmentDay → "mercredi"
├── appointmentTime → "16:00"
```

Le mode scopé permet de choisir précisément quelle version utiliser selon le contexte métier.

## Injection de variables dans les formulaires

### Champs dynamiques

Les champs marqués de l'icône <Icon icon="brackets-curly" iconType="solid" /> dans les formulaires TruePath supportent l'injection dynamique de variables. Ces champs peuvent contenir :

* **Variables pures** : Injection directe d'une variable (`{appointmentDay}`)
* **Texte mixte** : Combinaison de texte fixe et de variables (`"Votre rendez-vous du {appointmentDay} à {appointmentTime}"`)
* **Variables système** : Utilisation des données contextuelles (`"Appel reçu le {system.date}"`)

<Warning>
  L'injection de variables fonctionne uniquement si la variable a été ajouté depuis le sélecteur de données. L'injection manuelle de texte entre accolades `{}` n'est pas supportée.
</Warning>

### Processus d'injection

1. **Identification du champ** : Clic sur un champ marqué de l'icône <Icon icon="brackets-curly" iconType="solid" />
2. **Activation du sélecteur de données** : Ouverture automatique du panneau de sélection
3. **Choix du mode** : Sélection entre Global Context et Scoped by Node
4. **Sélection de la variable** : Choix de la variable appropriée
5. **Validation** : Confirmation via le bouton "Add"

<Tip>
  #### Bonnes pratiques pour l'utilisation des variables

  * Utilisez le mode context global pour les graphes simples et les données système
  * Privilégiez le mode scopé pour les logiques métier complexes
  * Testez systématiquement l'injection de variables avant publication
  * Utilisez des noms de variables explicites pour améliorer la lisibilité
</Tip>
