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

# Règles de tagging — exécutions & exemples

> Comment les exécutions d'évaluation d'étiquette appliquent les règles, ce qu'elles enregistrent, et une règle annotée complète.

## Exécutions d'évaluation d'étiquette

Les étiquettes sont (re)calculées par une **exécution d'évaluation d'étiquette** — manuelle, planifiée ou via API. Une exécution
évalue les règles actives (ou un sous-ensemble spécifique), puis **crée** les assignations pour les entités nouvellement correspondantes et **supprime** les assignations qui ne correspondent plus.

| Champ         | Signification                                                                         |
| ------------- | ------------------------------------------------------------------------------------- |
| `status`      | `PENDING → RUNNING → SUCCESS / FAILED`.                                               |
| `triggerType` | `MANUAL`, `SCHEDULED`, ou `API`.                                                      |
| `ruleIds`     | Les règles à évaluer (null = toutes les règles actives).                              |
| `stats`       | `{ rulesEvaluated, assignmentsCreated, assignmentsRemoved, durationMs }`.             |
| `logs`        | Entrées structurées (`DEBUG`/`INFO`/`WARN`/`ERROR`), plafonnées à 5000 par exécution. |

Parce qu'une exécution réconcilie les assignations (ajoute **et** supprime), les étiquettes restent en synchronisation avec vos
données au fil du temps — une entité qui cesse de correspondre perd l'étiquette à la prochaine exécution.

## Exemple complet

*Étiquetez les articles d'inventaire dont l'épuisement est prévu dans 7 jours.*

```json theme={null}
{
  "name": "Auto-tag: Stockout in 7 days",
  "tagId": "<resolved-uuid>",
  "conditions": {
    "operator": "AND",
    "rules": [
      {
        "type": "METRIC",
        "metricId": "<days-of-stock-metric-uuid>",
        "conditionOperator": "LOWER_OR_EQUAL",
        "thresholdValue": 7,
        "periodFilter": null
      }
    ]
  },
  "scope": { "entityType": "INVENTORY_ITEM" },
  "isActive": true
}
```

**Points à remarquer**

* Une seule condition de **métrique** (`jours de stock ≤ 7`) sous un groupe `AND`.
* La portée est juste `entityType: INVENTORY_ITEM` — pas de restriction de marque/taxonomie, pas
  de propagation (par défaut entity-only).
* À chaque exécution d'évaluation, les articles d'inventaire correspondants reçoivent l'étiquette ; les articles qui se rétablissent
  (plus de 7 jours de stock) la perdent.

Un deuxième exemple mixte — *nouveautés menswear ayant vendu 50+ unités le mois dernier* :

```json theme={null}
{
  "conditions": {
    "operator": "AND",
    "rules": [
      { "type": "METRIC", "metricId": "<gross-sales-qty>", "conditionOperator": "GREATER_OR_EQUAL", "thresholdValue": 50, "periodFilter": { "type": "LAST_30_DAYS" } },
      { "type": "COLUMN", "columnId": "dim_products.gender_full_path_1", "columnOperator": "STARTS_WITH", "value": "M" }
    ]
  },
  "scope": { "entityType": "PRODUCT", "propagationMode": "CASCADE_DOWN" }
}
```

Ici une condition de métrique et une condition de colonne se combinent, et `CASCADE_DOWN` propage l'étiquette de
chaque produit correspondant à ses variantes.

<Note>
  Une fois les entités étiquetées, pointez les [alertes](/fr/signals/alerts) et
  les [déclencheurs de workflow](/fr/developers/workflows/triggers) sur ces étiquettes pour surveiller ou
  automatiser contre elles.
</Note>
