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

# Créer variable (si inexistante)

> Action de stratégie qui crée une variable utilisateur uniquement si elle n'existe pas encore. Si la variable existe déjà, sa valeur est laissée intacte.

L'action **"Créer variable (si inexistante)"** s'utilise dans une règle de [stratégie](/fr/advanced/jobs/autoreply#workflow) pour **poser une valeur initiale** sur une variable utilisateur — mais **seulement si cette variable n'existe pas déjà**. Si la variable est déjà présente, l'action ne fait rien et sa valeur actuelle est préservée.

C'est l'outil idéal pour initialiser une variable **une seule fois** dans la vie d'un utilisateur, sans risquer d'écraser une valeur posée plus tard.

## Cas d'usage typiques

* **Marquer la première rencontre** : créer `first_seen` avec la date courante à la première évaluation, sans jamais la réécrire ensuite.
* **Valeur par défaut** : garantir qu'une variable existe (par exemple `budget_estime` à `0`) avant que d'autres règles ne la lisent ou l'incrémentent.
* **Compteur à initialiser une fois** : poser un compteur à sa valeur de départ, puis le laisser évoluer via d'autres actions.
* **Drapeau d'onboarding** : créer `onboarding_fait` à `false` au premier passage, pour piloter une séquence d'accueil.

## Propriétés

| Propriété                         | Rôle                                                                                                                                                                                                  |
| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Nom de la variable** *(requis)* | Nom de la variable utilisateur à créer.                                                                                                                                                               |
| **Valeur** *(optionnel)*          | Valeur initiale affectée si la variable n'existe pas encore. Supporte les [jetons dynamiques](/fr/advanced/strategy/tokens) (par exemple `{{USERINFO_Firstname}}`), résolus au moment de l'exécution. |

<Note>
  Si vous laissez **Valeur** vide, la variable est tout de même créée, avec une valeur **vide**. Elle est alors considérée comme existante lors des passages suivants.
</Note>

## Détection automatique du type

La valeur saisie est analysée pour en **déduire son type**, dans cet ordre : **booléen** (`true` / `false`), puis **date**, puis **nombre**, et enfin **texte** par défaut.

Cette détection permet aux conditions de comparer correctement la variable ensuite : une valeur numérique fonctionne avec [Variable supérieure à](/fr/advanced/strategy/conditions/user-variables/uservar_greaterthan), une date est normalisée pour les comparaisons temporelles, et ainsi de suite.

## Différence avec "Définir variable"

* **Créer variable (si inexistante)** — écrit la valeur **uniquement** si la variable n'existe pas. Ne touche jamais une variable déjà présente.
* **Définir variable** — écrit **toujours** la valeur, en créant la variable ou en **remplaçant** sa valeur existante.

<Tip>
  Utilisez **Créer variable** pour une valeur qui ne doit être posée qu'une seule fois (date de première visite, valeur de départ d'un compteur), et **Définir variable** quand vous voulez systématiquement mettre à jour la valeur.
</Tip>

## Comportement à l'exécution

L'action est **idempotente** : quel que soit le nombre de fois où la règle matche, seule la **première** exécution pose la valeur. Les évaluations suivantes constatent que la variable existe et n'effectuent aucune modification.

Dans tous les cas, la stratégie **continue** avec les actions suivantes de la règle — que la variable ait été créée ou qu'elle existât déjà.

## Cas limites

* **Nom de variable vide** : l'action n'effectue aucune écriture. Si le nom manque, l'éditeur de stratégie affiche un avertissement sur la carte d'action, et la stratégie poursuit son cours normalement.
* **Variable déjà existante** : aucune écriture, la valeur en place est conservée.

## Voir aussi

* [Jetons dynamiques](/fr/advanced/strategy/tokens) — Insérer des valeurs contextuelles dans la valeur initiale.
* [Conditions sur les variables utilisateur](/fr/advanced/strategy/conditions/user-variables/uservar_exists) — Tester l'existence ou la valeur d'une variable dans vos règles.
* [Réponses automatiques](/fr/advanced/jobs/autoreply) — Le job qui exécute les stratégies.
