Aller au contenu principal

Gérer les assignations d'offres

Introduction

La fonctionnalité de Gestion des Offres est un module optionnel qui permet aux marketers de stocker des offres commerciales, d'associer des codes de réduction uniques à une offre et d'attribuer cette offre à la sélection de profil adaptée, soit automatiquement, soit en masse.

Il vous permet d'utiliser toutes les interactions stockées dans Actito et le comportement des profils dans vos scénarios pour déterminer à qui attribuer quelle offre spécifique. Cela garantit que les bons profils reçoivent la bonne offre, au bon moment !

Grâce à la gestion de codes uniques, le module d'Offre vous aide désormais aussi à minimiser les flux de données nécessaires entre Actito et votre système central.

info

Si vous êtes intéressé par le module optionnel de Gestion des Offres, nous vous invitons à contacter votre gestionnaire de compte.

Modèle de données

La gestion des offres utilise le modèle de données standard. 2 table personnaliséss sont automatiquement créées lorsque ce module est activé :

  • Une table de référentiel "Offres", qui fait office de catalogue de toutes les offres commerciales disponibles.
  • Un tableau d'interactions "Assignation", dans lequel une nouvelle interaction est créée lorsqu'une offre (et éventuellement un code unique) est assignée à un profil.

alt text

Astuce

Le nom de chaque table peut être personnalisé lorsque le module est activé.
Pour plus de clarté, nous parlerons toujours des tables de référentiel "Offres" et d'interaction "Assignation".

Table de référentiel d'offres

La table "Offres" est une table référentielle, c'est à dire qu'elle contient un catalogue d'offres communes à tous les profils. Chaque ligne de la table "Offres" contient les informations générales d'1 offre spécifique.
Cette table peut être alimentée comme n'importe quel autre table personnalisée : via des API, des synchronisations ETL, ou même en créant de nouvelles offres directement dans l'interface.

Les offres qu'elle contient doivent être connues de votre système de caisse.

info

Système de caisse, E-shop, moteur d'offres commerciales dédié, voire directement votre CRM... il existe de nombreuses façons de gérer les offres pour votre activité commerciale quotidienne.
Par souci de concision, ce document fera toujours référence au système de caisse lorsqu'on parlera de la gestion centralisée des offres de votre côté.

La table de référentiel contient les attributs suivants :

  • name : le nom de l'offre (obligatoire)
  • description : une description de l'offre (facultatif)
  • toSynchronize : ce paramètre définit si l'assignation d'une offre à un profil doit être validée par votre système de caisse. Il détermine le statut de synchronisation par défaut de chaque interaction créée après une assignation d'offre.
    Si défini sur Oui, chaque assignation sera créée avec un statut "synchronized" à false, ce qui signifie que l'assignation doit être validée par votre système de caisse.
    Si défini sur Non, chaque assignation sera créée avec un statut "synchronized" à true, ce qui signifie qu'aucune synchronisation n'est requise et que l'offre est prête à être utilisée.
  • requireVouchers : ce paramètre définit si un code de coupon pré-généré doit être associé à l'interaction lorsqu'un profil se voit attribuer l'offre.
    Si la valeur est Oui, les profils se verront attribuer un code promotionnel issu de la liste de codes importés dans l'offre.
    Si défini sur Non, les profils ne seront pas associés à un coupon unique.
    astuce

    Voir les Cas d'usages ci-dessous pour des exemples pratiques en fonction des valeurs "toSynchronize" et "requireVouchers".

  • offerReference : ID de l'offre. C'est la clé de la table (obligatoire).
  • imageUrl : peut être utilisé pour afficher une image liée à l'offre, comme une bannière promotionnelle. Il s'agit de l'image globale de l'offre, et non d'une image unique par mission (facultatif).
  • webPageUrl peut être utilisé pour associer l'offre à un lien, comme la page de votre site internet expliquant votre offre (facultatif).

Comme toutes les tables personnalisées, elle contient également les id, updateMoment et creationMoment, qui sont automatiquement générés par Actito.

Table d'interaction des assignations

La table "Assignations" est une table d'interaction, ce qui signifie que chaque ligne de cette table est directement liée à un profil. Chaque ligne fait également référence à une offre existante de la table de référentiel "Offres".

Elle contient les attributs suivants :

  • usedVoucherCode : le code de réduction unique qui a été attribué à cette interaction spécifique, à partir de la liste des coupons importés dans l'offre. Cet attribut n'est renseigné que si le champ 'requireVouchers' de la table de référentiel est défini sur Oui.
  • synchronized : ce paramètre précise si l'assignation doit être validée par votre système de caisse. Sa valeur par défaut peut être vraie ou fausse selon la valeur du champ 'toSynchronize' de la table du référentiel (voir ci-dessus).
  • profileReference : l'ID du profil, en fonction de la clé unique de la base de données de profil vers laquelle il fait le lien
  • assignmentReference : la clé unique de l'interaction. Il s'agit d'une chaîne aléatoire de caractères générée automatiquement par Actito après une assignation.
  • offerReference : la référence de l'offre. Il s'agit d'un lien vers la table de référentiel "Offres", permettant d'utiliser les attributs de la table du référentiel dans les personnalisations et les ciblages.
  • createDate : le moment de l'assignation.

Comme toutes les tables personnalisées, elle contient également les id, updateMoment et creationMoment, qui sont automatiquement générés par Actito.

info

Ces champs sont les attributs par défaut présents automatiquement lorsque le module de Gestion des Offres est activé. Ils ne peuvent être ni supprimés ni modifiés (sauf leur nom d'affichage).
Cependant, de nouveaux champs peuvent être ajoutés au modèle ! Par exemple, un attribut "offerValidity" dans la table du référentiel, ou un champ booléen "voucherBurned" dans la table d'interaction, à mettre à jour lorsque le bon a été utilisé dans votre système de caisse.

Cas d'usage

La richesse du module de Gestion des offres lui permet de répondre à de nombreux cas d'usage : offre générique identique pour tous les profils, codes promo prédéfinis ou codes uniques générés à la volée avec de nombreux échanges avec votre système de caisse... tout cela est possible !

L'utilisation que vous ferez du module de gestion des offres dépendra principalement de si vous utilisez ou non des codes de réduction pré-générés et si chaque assignation doit être validée par votre système de caisse.

Passons en revue les différents cas d'usage :

  • Offre générique (requireVoucher = false et toSynchonize = false) : l'offre ne nécessite aucun code unique ni aucune identification.
    Elle est valable pour tout le monde, et vous utilisez le module Gestion des Offres principalement pour cibler les profils les plus susceptibles d'être intéressés par l'offre.
    Cela vous permet d'automatiser vos communications d'offres grâce à une personnalisation basée sur la table du référentiel d'offres, sans nécessiter de synchronisation supplémentaire.

  • Code généré après assignation (requireVoucher = false et toSynchonize = true) : l'offre est validée via un code de coupon unique généré après l'assignation.
    Lorsqu'une nouvelle ligne d'assignation est créée (avec synchronized = false), les informations sont poussées vers votre système de caisse (via un webhook, par exemple) et un code promo est généré à la volée par votre système.
    Ensuite, vous mettez à jour la ligne d'assignation (via un appel API, par exemple) pour pousser le code unique et mettre à jour le champ synchronized à true.

  • Code pré-généré avant assignation sans validation (requireVoucher = true et toSynchonize = false) : l'offre est associée à une liste de codes promo uniques pré-générés au préalable par votre système de caisse.
    Lorsque l'offre est attribuée au profil, un code existant est automatiquement attribué à l'interaction.
    Cela ne nécessite aucune validation car le code est déjà connu de votre système de caisse et vous ne validez pas l'identité du profil bénéficiant de ce code unique spécifique. Aucune autre synchronisation n’est donc nécessaire.

astuce

Grâce à la liste pré-générée de codes de réduction uniques, cette option minimise le besoin d'une synchronisation de données supplémentaire.

  • Code pré-généré avant assignation avec validation (requireVoucher = true et toSynchonize = true) : l'offre est associée à une liste de codes promo uniques pré-générés au préalable par votre système de caisse.
    Lorsque l'offre est assignée au profil, un code existant est automatiquement attribué à l'interaction mais le champ synchronized de l'interaction est mis à false. Même si le code est pré-généré, vous souhaitez le valider et les informations sont transmises à votre système de caisse (via un webhook, par exemple).
    Une fois ces informations reconnues, vous pouvez mettre à jour l'interaction et définir le champ synchronized à true (avec un appel API, par exemple).
astuce

Cette option est pertinente si vous souhaitez valider l'identité du profil qui peut utiliser ce code et donc votre système de caisse a besoin de savoir quel code est associé à quel profil. Ou si vous avez simplement besoin de savoir quels codes ont été attribués et sont susceptibles d'être utilisés.

Importer des coupons uniques

Si une offre est configurée pour attribuer automatiquement des codes de réduction uniques, une liste de codes existants doit être fournie et associée à cette offre.

note

Actito ne génère aucun code promo. Ils doivent être générés en externe par votre système de gestion des offres, puis importés dans Actito. Cela signifie que les codes peuvent être synchronisés immédiatement avec votre système de caisse et qu'une synchronisation après l'assignation d'une offre à un profil n'est pas obligatoire.
Actito génère uniquement une "assignmentReference" aléatoire pour chaque assignation réussie.

Pour importer des codes de réduction, rendez-vous dans Gérer les données de table dans l'interface, sélectionnez votre table de référentiel "Offres", puis sélectionnez la ligne d'offre à laquelle vous souhaitez associer des codes.

Cliquez sur "Plus" puis "Import de codes de réduction uniques".

alt text

info

Cette option n'est disponible que si l'attribut 'requireVouchers' de l'offre est défini sur Oui.

Vous pouvez désormais importer un fichier contenant des codes de réduction uniques.

Spécifications du fichier
  • Format : fichier .txt avec une valeur par ligne, une seule colonne, sans en-tête et encodé en UTF-8.
  • Un code promotionnel est limité à 100 caractères maximum
  • Taille max du fichier : 25Mo (cela équivaut à 250 000 codes de 100 caractères ou 500 000 codes de 50 caractères par exemple)
  • Le fichier ne peut pas contenir de lignes vides
  • Les codes en double sont ignorés

Un seul fichier peut être importé à la fois. Une fois réussi, un message récapitule le résultat de l'import. Un nouveau fichier peut maintenant être importé.

alt text

Compter les codes non-attribués

Après avoir importé les codes dans l'offre, vous pouvez vérifier combien de codes restent disponibles pour assignation. Sélectionnez l'offre, cliquez sur "Plus", puis sur "Compter les codes de réduction disponibles".

Vous obtenez le nombre de codes de réduction non-attribués.

alt text

Assigner une offre

Il existe deux manières d'attribuer une offre :

  • manuellement avec un ciblage
  • automatiquement via le module scénario

Assigner une offre manuellement

Cette option est préférable pour attribuer une offre à un grand nombre de profils à la fois, en fonction de critères de ciblage. Pour cela, allez dans 'Gérer les données de table', consultez la table de référentiel "Offres", sélectionnez l'offre concernée, puis cliquez sur 'Plus' et 'Assigner une offre'.

alt text

Cela ouvre une fenêtre modale où vous pouvez créer un ciblage avec des critères sur toutes les données disponibles dans Actito pour sélectionner les profils qui se verront attribuer cette offre.

Cette opération crée une interaction d'assignation pour chaque profil appartenant à la cible. Des scénarios peuvent être déclenchés par la création d’une interaction. Vous devez donc vous assurer que votre cible est correcte et cocher l'avertissement.

astuce

Pour compter le nombre de profils qui rentrent dans les critères de votre offre, nous vous conseillons d'utiliser un ciblage sauvegardé.

alt text

Après avoir lancé une assignation en masse, le ciblage sera calculé et des lignes d'assignation seront créées. Une fois que vous voyez le message "Assignation de masse terminée !", vous pouvez fermer la fenêtre.

alt text

Selon que vos assignations nécessitent d'être validées par votre système de caisse, cela peut déclencher soit des flux de données de synchronisation, soit directement un scénario pour diffuser votre offre via les canaux de communication Actito.

info

Si vous attribuez des codes de réduction pré-générés, l'assignation en masse tombera en erreur s'il n'y a pas suffisamment de codes uniques associés à l'offre. Merci d'importer de nouveaux codes avant de relancer l'assignation. alt text

Attribuer une offre via scénario

Cette option est idéale pour inclure la gestion des offres dans votre scénario d'automatisation et attribuer automatiquement des offres à vos profils en fonction de leur comportement, par exemple lorsqu'ils ouvrent un e-mail, atteignent un goal de visite d'une page Web ou tout événement de départ disponible dans les scénarios.

Pour ce faire, un nouveau bloc d'action est disponible lorsque le module Gestion des offres est activé.

alt text

Sélectionnez l'offre adéquate dans la liste déroulante affichant votre référentiel d'offres, puis enregistrez-la.

info

Si votre offre est définie pour attribuer des coupons uniques à partir de la liste importée et qu'il n'y a pas suffisamment de codes uniques disponibles pour l'assignation, l'interaction tombera dans la sortie erreur du bloc.

Assurez-vous de mettre un bloc de 'Sortie' après le nœud erreur du bloc Offre, sinon il sera traité comme un succès même si des codes sont manquants.

Configurer les flux de données

Si une assignation d'offre doit être validée par votre système de caisse (c'est-à-dire que l'offre est définie avec toSynchonize = true dans la table de référentiel), cela signifie que des flux de données doivent être implémentés entre Actito et ce système de caisse.

Ça peut être:

  • pour générer un code de réduction unique et mettre à jour l'interaction d'assignation (si vous n'utilisez pas la liste pré-générée de codes de réduction).
  • pour valider quel code a été attribué à quel profil (si vous utilisez la liste pré-générée de codes de réduction).

Accuser réception de l'assignation de l'offre à un profil

Dans tous les cas, cela signifie que lorsqu'une offre est assignée à un profil, vous devez recevoir des informations sur cette nouvelle interaction. La meilleure façon d’obtenir ces informations en temps réel consiste à utiliser un webhook.

En définissant un webhook sur les "nouvelles créations" dans la table d'interaction "Assignation", vous recevrez toutes les informations nécessaires pour accuser réception de cette assignation.

Veuillez suivre la documentation développeurs pour savoir comment configurer un webhook

astuce

Pour ce cas d'utilisation, il doit être défini comme suit :

  • "on" : CUSTOM_TABLE
  • "onElementId" : l'identifiant de la table d'interaction "Assignation"
  • "eventType": CREATE
  • "onFields" : les champs de l'interaction que vous devez connaître pour valider l'offre, comme l'identifiant du profil et le usedVoucherCode si vous utilisez les codes pré-générés
    Ces informations seront transmises à votre "targetUrl".

Si vous n'avez pas besoin de recevoir ces informations en temps réel, il est également possible d'utiliser un export incrémental de données d'interaction pour recevoir un fichier csv de toutes les nouvelles créations dans la table "Assignations" une fois par jour.

astuce

Cette export peut également être utile si vous n'avez pas besoin de valider une assignation dans votre système de caisse mais que vous souhaitez simplement savoir quels codes ont été attribués et sont susceptibles d'être utilisés.

Valider l'assignation dans Actito

Une fois que vous recevez des informations sur une assignation d'offre, cela doit déclencher un processus dans votre système de caisse, pour soit générer un code unique (si vous n'utilisez pas de code pré-généré), soit valider l'association entre un profil et un code existant.

Cette étape dépendra de votre moteur d’offres commerciales et de vos cas d’usage, et est entièrement gérée de votre côté.

Une fois cette étape accomplie, vous devez remonter les informations vers Actito et mettre à jour l'interaction d'Assignation.

Cela implique de :

  • pousser les informations personnalisées (comme un code unique généré par le système de caisse)
  • mettre à jour le champ synchronized à true

Le moyen le plus simple de le faire en temps réel consiste à utiliser un appel API pour mettre à jour la ligne d'interaction dont vous avez reçu l'ID via le webhook (ou l'export).

Si le temps réel n'est pas nécessaire, il est également possible d'utiliser des ETL quotidiens ou one-shot pour pousser le données en masse.

Après cet appel API, l'interaction d'assignation est désormais prête et peut déclencher des scénarios, par exemple.

Diffuser votre offre

Une fois l'offre attribuée aux profils concernés, vous pouvez désormais l'utiliser dans vos communications, pour informer ces profils qu'ils bénéficient d'une offre spéciale !

Vous pouvez :

  • Envoyer un e-mail immédiatement après l'assignation de l'offre. Si vous assignez votre offre via le module de scénario, vous pouvez suivre immédiatement la partie communication de votre stratégie de gestion des offres.

alt text

astuce

Ce suivi immédiat est adapté si l'assignation de l'offre n'a pas besoin d'être validée par votre système de caisse ('toSynchronize'= false).

  • Démarrer un nouveau scénario sur un bloc d'interaction sur la table "Assignation". La table "Assignation" est créée avec 2 événements déclencheurs qui peuvent être utilisés pour démarrer un nouveau scénario :
    • à la CREATION de l'interaction avec le champ 'synchronized' = true
    • lors de la MISE À JOUR d'une interaction existante lorsque 'synchronized' passe àtrue

alt text

astuce

Cela en fait la meilleure option si l'assignation de l'offre doit être validée par votre système de caisse.

Quel que soit le déclencheur de la communication, votre offre peut être partagée sur tous les canaux de communication Actito (e-mail, SMS, push) et le détail de l'offre ou le code unique peut être affiché par personnalisations basées sur la table "Assignation".

alt text