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.
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.
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.
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 surOui
, 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 surNon
, 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 estOui
, les profils se verront attribuer un code promotionnel issu de la liste de codes importés dans l'offre.
Si défini surNon
, les profils ne seront pas associés à un coupon unique.
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.
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.
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).
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.
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".
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.
- 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é.
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.
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'.
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.
Pour compter le nombre de profils qui rentrent dans les critères de votre offre, nous vous conseillons d'utiliser un ciblage sauvegardé.
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.
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.
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.
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é.
Sélectionnez l'offre adéquate dans la liste déroulante affichant votre référentiel d'offres, puis enregistrez-la.
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
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.
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.
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
- à la CREATION de l'interaction avec le champ 'synchronized' =
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".