Aller au contenu principal

Changement de palier (tier/changed)

Enkore envoie un webhook à chaque fois qu'un consommateur change de palier (promotion, rétrogradation, affectation initiale, ou réévaluation périodique). Ce document décrit le payload de cet événement et ses déclencheurs.

Les headers, la signature HMAC et la politique de réessai sont communs à tous les webhooks et sont décrits dans Livraison et signature des webhooks.


Déclencheurs

Le webhook tier/changed est émis dans quatre situations :

Raison (reason)Description
promotionLe consommateur monte d'un palier (ex : passe de Silver à Gold)
demotionLe consommateur descend d'un palier (ex : passe de Gold à Silver)
initialLe consommateur est affecté à son premier palier
evaluationRéévaluation périodique sans changement de direction particulier

Format du payload

Enkore envoie une requête POST en application/json vers l'URL configurée dans le back-office.

Exemple de payload — promotion

{
"event": "tier/changed",
"customerId": 42,
"reason": "promotion",
"pointsInPeriod": 1250,
"from": {
"name": "Silver",
"slug": "silver",
"rank": 1,
"minPoints": 500
},
"to": {
"name": "Gold",
"slug": "gold",
"rank": 2,
"minPoints": 1000
}
}

Exemple de payload — affectation initiale

Lors de la première affectation d'un consommateur à un palier, le champ from est null.

{
"event": "tier/changed",
"customerId": 42,
"reason": "initial",
"pointsInPeriod": 0,
"from": null,
"to": {
"name": "Bronze",
"slug": "bronze",
"rank": 0,
"minPoints": 0
}
}

Description des champs

ChampTypeDescription
eventstringToujours "tier/changed"
customerIdnumberIdentifiant externe du consommateur (correspond à l'ID dans votre plateforme e-commerce)
reasonstringRaison du changement : promotion, demotion, initial, ou evaluation
pointsInPeriodnumberNombre de points cumulés sur la période d'évaluation
fromobject | nullPalier de départ. null si c'est la première affectation
from.namestringNom du palier de départ
from.slugstringSlug du palier de départ
from.ranknumberRang du palier de départ (0 = palier le plus bas)
from.minPointsnumberPoints minimum requis pour ce palier
toobjectPalier d'arrivée
to.namestringNom du nouveau palier
to.slugstringSlug du nouveau palier
to.ranknumberRang du nouveau palier
to.minPointsnumberPoints minimum requis pour ce palier

Points d'attention côté réception

  • L'envoi est asynchrone et intervient peu après la mise à jour du palier : ne présumez pas d'un ordre d'arrivée strict entre ce webhook et vos autres flux.
  • Un changement de palier fait le plus souvent suite à un gain de points. Un webhook points_event/created peut donc être immédiatement suivi d'un tier/changed pour le même consommateur.
  • Rendez le traitement idempotent : un même événement peut être livré plusieurs fois (voir la section déduplication de la page commune).