Cette action ajoute des points au solde d’un client ou lui en retire. Utilisez-la quand un événement extérieur à JeriCommerce justifie que le client gagne des points, comme un avis, un sondage ou la participation à un événement, ou quand vous devez corriger un solde.

Pour un changement ponctuel, pas besoin d’automatisation : utilisez Update balance dans le profil du client, décrit dans Augmenter et diminuer le solde, ou les options de Ajuster le solde depuis Shopify. Si les clients peuvent répéter l’action qui rapporte les points, un parcours de gains personnalisé est mieux adapté, car il applique vos limites et affiche l’action parmi leurs moyens de gagner des points.

Ce qui se passe

  • Le montant est toujours un nombre positif. Vous choisissez si l’action ajoute ou retire des points, et vous indiquez un motif, enregistré avec la modification.
  • Le solde du client et sa carte de fidélité se mettent à jour, et un événement Balance changed est envoyé à votre webhook d’événements.
  • Quand vous ajoutez des points, une campagne de boost qui s’applique à Manual / API points multiplie le montant. Si la portée de votre facteur de niveau est Tier balance and points, le facteur de niveau s’applique aussi. Les points crédités peuvent donc être plus élevés que le montant que vous envoyez.
  • Avec des niveaux VIP basés sur les points, les points ajoutés comptent aussi pour le niveau du client, et les points retirés en sont déduits.
  • Le client reçoit une notification Wallet si les notifications de solde sont activées pour le programme et pour lui.

Un solde ne peut pas descendre sous zéro. Si le client a moins de points que le montant à retirer, rien n’est retiré.

Mise en place

Utilisez les actions JeriCommerce Balance increase et Balance decrease dans n’importe quel workflow Shopify Flow. Les deux fonctionnent avec le programme de fidélité JeriCommerce et avec LoyaltyLion.

1

Ajouter l’action

Dans Shopify, ouvrez Flow, créez ou modifiez un workflow, puis ajoutez Balance increase ou Balance decrease après votre déclencheur.

2

Remplir les champs

  • Email : l’adresse e-mail du client. Utilisez Add variable pour la reprendre du déclencheur.
  • Amount : le nombre de points, toujours positif.
  • Reason : la raison de la modification du solde.
3

Activer le workflow

Enregistrez et activez le workflow. Le solde change chaque fois que le déclencheur s’exécute.

Actions Shopify Flow pour mettre à jour le solde
Actions Shopify Flow pour le solde

La modification a lieu pendant que le workflow tourne. Si elle ne peut pas être appliquée, l’étape échoue et l’erreur apparaît dans l’historique d’exécution du workflow. Cela arrive quand l’adresse e-mail n’appartient à aucun client, que le client n’a pas encore de solde ou qu’il n’a pas assez de points à retirer.

Ajoutez une action Webhook à votre flow Klaviyo à l’endroit où le solde doit changer. Choisissez d’augmenter ou de diminuer, remplissez le générateur et copiez chaque valeur dans les paramètres du webhook.

Choisir une action

Vos informations

Retrouvez-le dans Settings > Technical > Program Information.

Créez-en une dans Settings > Technical > API Keys. Elle reste dans votre navigateur.

Détails de l’action

Copier et coller dans Klaviyo

Paramètres du webhook
Destination URL
https://api.jericommerce.com/v1/programs/your-program-slug/balance/increase
Headers
Key
api-key
Value
your-api-key
JSON body
[
  {
    "email": "{{ person.email|default:'' }}",
    "amount": 0,
    "reason": ""
  }
]

Vous pouvez aussi utiliser des variables Klaviyo dans le motif, par exemple "Bonus for reviewing {{ event.product_name }}", pour que chaque modification s’explique d’elle-même dans l’historique du client.

Les webhooks Klaviyo sont mis en file d’attente : Klaviyo envoie la requête et JeriCommerce applique la modification quelques secondes plus tard. Si l’adresse e-mail n’appartient à aucun client, ou s’il n’y a pas assez de points à retirer, la modification est ignorée et Klaviyo n’en est pas informé.

Quelques idées de flows : un bonus de bienvenue à l’inscription à votre liste, des points pour un avis produit, un bonus de reconquête pour les clients qui n’ont pas commandé depuis un moment, ou des points en plus pour leur anniversaire.

POST https://api.jericommerce.com/v1/programs/{program_slug}/balance/increase
POST https://api.jericommerce.com/v1/programs/{program_slug}/balance/decrease

Envoyez votre clé API dans l’en-tête api-key. Consultez Authentification via l’API. Les deux endpoints acceptent un tableau de 100 éléments maximum :

[
  {
    "email": "customer@example.com",
    "amount": 100,
    "reason": "Thanks for attending our launch event"
  }
]
Champ Type Obligatoire Remarques
email string Oui Adresse e-mail d’un client déjà présent dans le programme.
amount number Oui Points à ajouter ou à retirer, sous forme d’entier supérieur à 0.
reason string Oui La raison de la modification du solde. Enregistrée avec la modification.

L’API répond 201 avec un corps vide dès que la requête est valide, et applique la modification quelques secondes plus tard. Consultez les endpoints en file d’attente. Les clients qui n’existent pas sont ignorés, tout comme les diminutions supérieures au solde. Aucun de ces cas n’est signalé : vérifiez donc le résultat avec Obtenir les détails d’un client si vous devez en être sûr. Un client qui existe mais n’a pas encore de solde part de 0.

Code Statut Signification
MAX_ITEMS_PER_REQUEST_EXCEEDED 400 Le tableau contient plus de 100 éléments.
Erreurs de validation 400 Un champ est manquant, amount n’est pas un nombre positif ou reason est vide.

Construisez une requête prête à l’emploi avec vos propres valeurs :

Choisir une action

Vos informations

Retrouvez-le dans Settings > Technical > Program Information.

Créez-en une dans Settings > Technical > API Keys. Elle reste dans votre navigateur.

Détails de l’action

Votre requête

curl --request POST \
  --url 'https://api.jericommerce.com/v1/programs/your-program-slug/balance/increase' \
  --header 'api-key: your-api-key' \
  --header 'Content-Type: application/json' \
  --data '[
  {
    "email": "customer@example.com",
    "amount": 0,
    "reason": ""
  }
]'

Collez-la dans un terminal pour tester la requête avec votre programme.