scan.is_first
Ce colis, la première fois
Le même code répond autrement la première fois que la suivante. is_first est vrai par code, pas par personne : exactement une fois dans la vie de cette étiquette, peu importe qui scanne. L'axe convient donc là où un code correspond à un exemplaire — sur une étiquette d'expédition. Sur un autocollant de porte, la même règle serait absurde : un seul passant au monde verrait la première branche.
- Où c'est accroché
- Étiquette de colis, intérieur du couvercle, étiquette de retour.
- Pourquoi le papier reste
- Deux codes QR sur une étiquette, et le destinataire scanne le mauvais.
Résolution en direct
scan.is_first = true- 1Ce colis, premier scan
- 2Ce colis, déjà scanné
- alwaysSinon
Premier scan de cette étiquette ?

Le jeu de règles
Valide, enregistrable, règle obligatoire à la fin.
Pas une description de ce que le moteur saurait faire — c'est le texte que porte un code. La première règle qui correspond gagne, et la dernière correspond toujours.
ruleset · version 1
{
"rules": [
{
"when": { "scan.is_first": { "eq": true } },
"then": { "type": "redirect", "url": "https://acme.com/setup" }
},
{
"when": { "scan.is_first": { "eq": false } },
"then": { "type": "redirect", "url": "https://acme.com/support" }
},
{
"when": "always",
"then": { "type": "redirect", "url": "https://acme.com/product" }
}
]
}La troisième règle attrape le cas où le compteur n'a pas pu être déterminé. Un scan ne finit malgré tout pas dans le vide.