Marketing Office Hours
Personnalisation magique des emails avec le Velocity Script - Marketo Office Hour spécial 2021 09 10
178 vues
View transcript
Merci à tous d'être là. Je vous ai préparé une petite session sur le Velocity Script et comme je ne suis pas un expert, je dis vraiment "préparé", j'y suis depuis hier après-midi pour essayer de faire quatre pauvres cas qui marchent, et je me suis un peu arraché les cheveux parce que j'ai un peu appris en marchant. Donc je vous propose qu'on fasse quelques exercices du plus simple au plus compliqué pour vraiment que vous compreniez les possibilités du Velocity Script. Alors, quand on parle de Velocity Script, moi je pensais tout de suite custom object, mais en fait les applications sont bien plus larges que ça, on peut tout à fait utiliser du Velocity Script avec les champs de la personne. Vous savez, dans Marketo, il y a cette fonctionnalité côté base de données pour faire des champs calculés. Si tel champ contient telle valeur, alors le champ calculé contiendra telle valeur. Par exemple, si la civilité c'est "Mister", alors le champ calculé, ce sera "Cher Monsieur" par exemple. Ou si c'est "Madame", ce sera "Chère Madame". Donc ça c'est pas mal, mais vous voyez bien qu'on n'a qu'une seule dimension. Premièrement, on n'a qu'une seule dimension, c'est-à-dire qu'on ne peut faire dépendre un champ que d'un autre champ, et deuxièmement le résultat c'est un champ. On ne peut que concaténer des champs mais on ne peut pas tellement aller plus loin. Et qu'est-ce qui se passe quand, par exemple, on veut faire dépendre un champ de deux autres champs, ou imaginons qu'on aimerait, en fonction d'une valeur de champ, carrément mettre un bloc d'html. Donc, comme Charles disait juste avant, c'est Amazon, vous avez collecté des préférences sur vos visiteurs et vous aimeriez leur proposer dans les emails, par exemple, les produits qui les intéressent en fait. Et ça dynamiquement, sans avoir à se lancer dans des segmentations ultra compliquées. Et donc, c'est ce type de dynamique que va permettre le Velocity Script. Le cas classique c'est : on a un custom object, là j'avais pris l'exemple des bateaux, les bateaux achetés par une personne qui sont alimentés par le CRM, et on voulait envoyer un email à une personne avec l'ensemble des bateaux qu'il avait à sa disposition en listant, en faisant un joli tableau avec le nom du bateau, la gamme, la longueur, le nom, tout ça. Ou alors faire une alerte en interne quand un nouveau bateau est acheté par exemple. Ça suppose qu'on va chercher les informations du custom object, c'est là où Velocity Script est intéressant. Alors je vous propose de jouer avec moi. Donc si vous avez votre Marketo sous la main, vous pouvez, dans votre dossier-test, créer un petit programme. On a besoin d'un programme pour pouvoir mettre des tokens, et puis on va avoir besoin d'une liste qui contient vos personnes exemples, et puis juste un email. C'est assez light à préparer. Je vous laisse 30 secondes pour éventuellement préparer un programme défaut, enfin on n'a pas besoin de plus que ça, et puis on va se retrouver dans les tokens. Alors quand vous êtes sur votre programme, dans l'onglet token ici, vous connaissez les tokens, et sur ce token type email script, vous ne l'avez sûrement jamais trop utilisé, donc vous l'attrapez, vous le déplacez sur les tokens, et puis ça va créer un token email script. Vous lui donnez un nom, moi j'ai mis… Donc là on va faire un test, on va juste aller chercher le nom de la personne. Ce n'est pas très intéressant, vu qu'on peut faire ça d'habitude avec les tokens Marketo, c'est juste pour commencer. Donc nommez le nom, et puis on va entrer dedans, et si vous l'ouvrez, il faut toujours attendre quelques secondes pour que la hiérarchie à droite apparaisse. Il ne faut surtout pas commencer à écrire tant que ça, ce n'est pas apparu, sinon ça pose des problèmes. Ce que vous écrivez n'est pas sauvegardé assez souvent, enfin ça pose des problèmes assez étranges. Et vous devriez en retrouver au moins avec ça, les opportunités, les personnes, les membres de programme, et puis les éventuels custom objects que vous avez synchronisés avec votre CRM. Alors certains sont natifs Marketo comme Mobile App et Mobile App Install, et Predictive Person Properties, et puis tout le reste, ce sont des choses que j'ai synchronisées moi avec mon CRM. Ici on va pouvoir taper du code. Alors évidemment, je ne suis pas un développeur, donc je suis allé chercher un peu de docs, mais la première chose qu'on peut faire, on peut déployer Person ici, et vous allez trouver tous les champs de la personne, y compris les segmentations supprimées que vous avez… Alors c'est un peu dommage parce qu'ici on ne peut pas trop agrandir la largeur, c'est un peu compliqué. Mais ici, vous retrouvez tous les champs de la personne que vous avez sur l'objet Lead, avec leur nom affiché, enfin leur métier ici, mais si vous allez chercher le Last Name et que vous le "drag and dropez" ici, vous devriez avoir ça. Donc là il va apparaître avec son nom API, son nom technique. Il va apparaître avec un dollar, donc quand on veut utiliser une variable, on met toujours dollar et on va la mettre entre accolades, juste une accolade. Et ce qu'il ne faut surtout pas oublier, c'est que si vous utilisez cette variable, il faut la cocher ici dans la liste pour que Marketo puisse la processer. Ça, c'est une erreur qu'on fait assez souvent quand on fait les tests. Vous rapatriez les variables dont vous avez besoin ici, vous les mettez dans un petit script et puis vous oubliez de les cocher ici et en fait Marketo ne va jamais les remplacer par des valeurs. Ça, c'est une première erreur, un premier pied dans le tapis, ne pas cocher les variables que vous utilisez ici. Une fois que vous avez votre variable ici, vous avez coché Last Name ici, vous pouvez sauvegarder et vous avez votre premier script Velocity qui en fait va vous afficher le nom de la personne. Alors pour voir que ça marche bien, vous prenez votre email là, vous l'éditez et ici vous allez chercher en fait avec le My votre token Velocity Script, Email Script, le premier que vous avez créé et vous le mettez, moi je l'ai mis juste ici. Et donc ça va vous remonter le nom. Alors ce que j'ai fait, moi j'ai préparé une liste avec des gens test que je voulais tester mais ça marche aussi avec les personnes normalement. Ils recommandent plutôt de tester avec des listes en fait. Et donc ici, j'ai comme si j'avais utilisé le token standard Last Name, il va bien me chercher ma valeur. Donc ce que vous pouvez faire au préalable, pour tester un petit peu, c'est dans la liste statique que vous avez créée, aller mettre quelques personnes de votre base, notamment vous avec votre adresse perso pour que vous puissiez facilement appeler la liste ici et avoir quelques cas test. Est-ce que tu peux nous remontrer comment tu as eu le View By List, s'il-te-plait ? Oui. Quand je suis ici, dans le preview ici, tu as soit voir la vue par défaut, soit choisir une personne. Donc là tu peux taper un email et tu peux aussi choisir ici une liste et tu tapes le nom de ta liste que tu as préparée au préalable. Et ensuite, on passe à travers toutes les personnes de la liste grâce aux flèches qui sont là. Moi j'ai un petit problème avec la liste. Comment on fait pour se rajouter par exemple ? Alors il faut que tu ailles côté Database, tu cherches la personne. Si je veux m'ajouter là, je vais faire côté Database, je cherche Sylvain Davril par exemple, on ne peut pas le faire depuis la liste malheureusement. Ah d'accord, justement j'essayais de faire ça mais je n'y arrivais pas. Et ensuite, une fois que tu es côté Database dans la liste des gens, ici tu peux ensuite dans PersonAction, Add To List. D'accord, merci. Ou alors, tu te fais une Smart Campaign, tu fais "email adress égale", tu listes toutes tes email adresses et tu fais Add to List dans le flow. Ok. Pour l'instant, évidemment, ça n'a pas renversé la table, mais c'est le début. Ce qui est important à retenir, c'est qu'on peut faire apparaître n'importe quelle variable en la mettant entre accolades ici, en utilisant bien son nom technique et en mettant un petit dollar et puis en cochant surtout dans la liste. Et je peux vous assurer que c'est simple en recommandation, on les oublie au bout du quatrième cas d'usage et puis en une demi-heure, on cherche ce qui ne va pas et on a oublié de mettre ses accolades par exemple ou on a oublié de cocher dans la liste. Normalement, il y a un petit truc là-dessus, c'est que vous pouvez sélectionner à droite et le drag and drop sur la gauche. Du coup ça rajoute exactement les accolades qu'il faut. Oui, on peut faire ça. Deuxième exercice, un peu plus rigolo, on va concaténer des champs, on va concaténer trois champs, un peu comme avec les champs calculés Marketo. Si je regarde ce que ça donne là, on concatène la civilité, le prénom et le nom, donc rien de compliqué mais ça permet de voir comment on concatène. Donc ici dans mon token, on va faire un deuxième token e-mail script, donc attrapez-le et glissez-le au milieu. Et cette fois-ci, on va, alors là j'ai mis un petit commentaire, on met double dièse et on peut écrire des commentaires. Et on peut taper du texte qui va apparaître et puis ensuite enchaîner les variables tout en n'oubliant pas de les cocher. Normalement je dois avoir First Name qui doit être coché, Last Name et Salutations. Et j'avais lu dans la doc qu'on pouvait enlever les accolades, donc j'avais fait un test, ça a l'air de marcher. Ça marche quand on les met comme ça pour faire apparaître du texte mais dès lors qu'on veut utiliser une fonction, un test logique, on ne pourra pas, il faudra utiliser les accolades. Exactement. Pour concaténer, quand on met ça, ça va vraiment faire apparaître le "bonjour", l'espace qui est là, on n'a pas besoin d'ajouter des espaces, ça va faire exactement ce qu'on a tapé là, c'est tout bête. Donc je vous invite à "drag and droper" les trois variables depuis la partie droite ici sur la partie gauche et puis de les mettre dans le bon ordre et ça vous fera votre premier champ concaténé, sans conditions pour l'instant, on ajoutera les conditions dans l'exercice juste après. Est-ce que tu as refait un drag and drop de e-mail script sur la gauche ? Oui, je suis allé rechercher un e-mail script effectivement. Parce que c'est bizarre, l'arborescence à droite n'apparaît plus et à chaque fois que je refais un drag and drop, ça me met Standard Object mais vide, je n'ai rien du tout sur la droite. Moi aussi j'ai eu ça ce matin. Donc, tu fermes, tu fais comme ça là, tu rafraîchis Marketo et puis tu rouvres, un petit instant et ça va marcher. Ça, c'est un peu la magie de Marketo. Le temps de chargement des objets est plus ou moins long et des fois ça n'apparaît pas, il ne faut pas hésiter à refermer, rouvrir et ainsi de suite. Des fois fermer votre instance, rouvrir. À force de l'utiliser, on s'en rend compte qu'il est un peu capricieux à l'ouverture parce qu'il a énormément d'objets. En fait, il a tout vos champs à charger dans ce petit onglet et par conséquent, il prend plus ou moins de temps et ça dépend aussi de l'utilisation de votre instance. Si vous avez des collègues américains qui sont en train d'envoyer plein d'emails et ainsi de suite, forcément les ressources pour ouvrir ça, ne sont pas mises en priorité. D'accord. Sylvain, est-ce que tu peux nous redire pourquoi tu as enlevé les parenthèses parce que moi je les ai autour des… ? Oui, on peut mettre des accolades, ça fonctionne. C'est juste que j'avais lu dans la doc que quand on souhaitait utiliser les variables pour les afficher, on pouvait les enlever. Donc, j'en ai profité pour tester, voir si ça fonctionnait et puis je ne les ai pas remises, mais ça doit fonctionner. D'accord. Et après, la ligne d'espace que tu as mise entre ton commentaire et le début du code, elle est obligatoire ou on s'en fiche ? Non. D'ailleurs, je me rends compte qu'il ne l'affiche pas en fait. Il n'y a pas d'espace au-dessus. Donc, il ne tient pas compte des espaces avant le texte. Là, je peux tout à fait modifier mon e-mail script, le sauvegarder et, en étant dans l'e-mail que j'ai déjà préparé, je peux tester si ça marche en fait. Je n'ai pas besoin de refermer et de rouvrir l'e-mail. C'est pratique. Et les deux petits dièses, ils sont obligatoires ? Ça, c'est pour mettre un commentaire. Tout ce que tu mets derrière les deux petits dièses, c'est du commentaire dans le script classique. Ok. Si tu fais un script, c'est une bonne pratique de commenter ce que tu fais pour que les autres sachent ta logique. Ok, merci. Donc, quand vous avez réussi, vous sauvegardez. Vous faites soit un second e-mail, vous clonez votre e-mail ou vous utilisez le premier e-mail que vous avez fait. Et puis, vous ajoutez le script ici, juste en dessous. Vous mettez dans un e-mail pour pouvoir tester. Et ensuite, vous faites un petit test de preview pour voir si ça fonctionne. Donc, juste pour bien comprendre les Velocity Scripts, c'est uniquement utilisable sur des e-mails en asset ou tu peux les utiliser aussi sur… Alors, j'ai vu des cas où tu peux les utiliser dans d'autres… Enfin, c'est principalement fait pour utiliser dans les e-mails. Mais je ne suis pas encore allé assez loin. Peut-être que Charles, tu peux répondre sur ce sujet ? Est-ce qu'il y a d'autres cas d'usage pour les Velocity Scripts ? En fait, c'est essentiellement pour les e-mails parce qu'en fait, techniquement, ce n'est qu'un bloc Javascript que vous voulez rajouter et ça, dans les landing pages, normalement, vous pouvez rajouter ça directement. Mais dans les e-mails, c'est plus compliqué. Donc, c'est pour ça qu'ils ont proposé leur propre interface. Après, je crois me souvenir qu'on peut les utiliser quand même dans les landing pages. Mais le cas d'application, c'est plus pour du dynamisme. Effectivement, j'ai rarement vu utiliser dans les landing pages. Généralement, c'est vraiment utilisé pour faire des tests, des ifs et afficher ce que vous voulez dans un e-mail. Ça va être notre… D'accord, merci. … cas numéro trois, effectivement. C'est bon, tout le monde a réussi à concaténer ses trois champs, à les faire apparaître ? ####Troisième exercice. On va, justement, essayer les conditions, cette fois-ci. Donc là, le cas que je voulais faire, c'est une signature d'e-mail en disant, si dans mon e-mail, le pays de la personne qui va recevoir l'e-mail est France et que le commercial Salesforce n'est pas lead, ni Marketo, alors je vais mettre le nom du commercial. Sinon, si le pays est Venezuela, alors le commercial, ce sera Pedro Sanchez, par exemple, en toutes lettres. Et puis sinon, c'est Merlin Léona. Donc ça, c'est vraiment le cas d'usage assez classique qu'on va avoir. On a des conditions qui sont trop compliquées pour faire un champ calculé et on veut mettre de l'intelligence dans l'e-mail. Donc, on va utiliser cette notation if, else if, else end, qui est vraiment assez, qu'on retrouve assez souvent. Donc, si ici, on va poser la condition. Donc, la condition, la première condition, ça va être celle-ci. On va la regarder juste après. Donc, si la condition est remplie, le Marketo va afficher ça. Donc là, vous reconnaissez ce qu'on a fait, c'est-à-dire ces deux champs de la base qui sont le prénom du propriétaire de la personne et le nom du propriétaire de la personne. Donc ça, c'est exactement l'exercice qu'on vient de faire. Sinon, deuxième condition, si le pays est égal à Venezuela. Donc là, on va faire apparaître Pedro Sanchez et sinon, c'est Merlin Léona, voilà. Donc, bien retenir la numérotation if avec des dièses, un seul dièse. Ensuite, on peut utiliser le else if, il est optionnel. Si on n'a qu'une seule condition, on n'a pas besoin du else if. Le else, il est aussi optionnel. C'est-à-dire qu'on n'est pas obligés de mettre une condition par défaut, mais ça permet de mettre une condition par défaut, puis il ne faut pas oublier de le end. Donc ça, c'est la première chose à retenir. La deuxième chose que j'ai faite ici, alors il faut savoir qu'après un if, il faut toujours mettre des parenthèses. Donc, ça fonctionne bien. Donc là, j'ai des parenthèses juste qui commencent, qui se finissent. Et je vais vouloir ajouter des conditions. Donc là, les conditions, elles sont séparées par ces et, là. Donc le et, le end de la smart liste de Marketo, en fait, ici, il faut l'écrire double et commerciale. C'est le et du 1, là. Et les ou, ce serait les doubles barres, les barres du 6. Donc, une fois que vous avez ça en tête, effectivement, la première fois qu'on voit ça, on se dit, mais c'est quoi ces doubles et. Si on sait que c'est juste et, ça démystifie. Ici, ce que j'ai utilisé, j'ai utilisé le nom de la variable. Charles nous dit qu'effectivement, l'e-mail ne s'effectuera pas dans une landing page, seulement dans. Oui, en fait, je viens de vérifier, ça affichera seulement le nom du token, mais le script que vous avez mis dedans n'appliquera pas. Après, je pense que si vous affichez juste un texte, ça peut être utilisé comme ça, mais l'intérêt est réduit. Donc ici, on a accès à certaines fonctions, en fait. Alors, on ne peut pas toutes les lister, mais celle-ci est assez pratique. Donc, quand je ramène ici le nom d'une variable, j'ai pris le nom du propriétaire du lead que j'ai target dropé. J'ai enlevé les accolades et quand on met point isEmpty, ça se transforme en fonction qui va me dire vrai si ce champ est le lead et qui va me dire non si ce champ n'est pas lead. Et j'ai ajouté ce petit point d'exclamation devant, qui, en fait, qui équivaut à non, à not. Donc ça, ça se lit si le nom du propriétaire de la personne n'est pas vide. C'est assez concaténé, vous voyez, c'est assez ramassé. Une fois qu'on a compris ça, il faut juste ça. Alors, je vais vous passer le script. Parce que là, c'est un petit peu compliqué à taper, donc je vais vous le mettre dans le tchat. Si vous voulez le récupérer. Donc, si le nom du propriétaire n'est pas vide, et donc encore, je ramène l'autre variable, si le nom du propriétaire equals marketo, donc là, pour le égal, on peut soit mettre, je pourrais écrire double égal ici en double. Puis, je mettrais Marketo entre double equal juste après. Soit on peut utiliser cette fonction equals et mettre la valeur ici juste après Marketo. Et encore une fois, j'ai mis le point d'exclamation ici pour dire, pour inverser la négation, pour donner la négation, pardon. Et ici, j'ai mis le pays est France. Si ces trois conditions sont remplies, alors on affiche le prénom et nom du propriétaire. Sinon, si le pays est chez moi, à Venezuela, c'est ce que me donne Salesforce. Donc, faut que je l'écrive comme ça. Mais du coup, c'est quoi l'intérêt par rapport à utiliser des snippets et du dynamique? En fait, c'est que ça te donne une plus grande liberté. D'accord, parce que moi, typiquement, ça, par exemple, je l'aurais fait en utilisant du dynamique, mais. Oui, tu as beaucoup plus déjà. OK, je comprends. Un snippet, c'est utilisé par rapport à des segments. Là, tu peux faire du one to one, par exemple, qui est à la portée de tous avec le script token. C'est par exemple, si vous avez un scoring dans votre base et que vous avez… vous pouvez définir un critère, par exemple, les gens qui sont proches d'être MQL ou qui sont MQL, vous leur mettez ou leur ajoutez une bannière dans l'e-mail tout en bas, genre nous contacter pour une démo. Ça, c'est une application super simple à faire, qui est au cas par cas. Et seul le script token vous permet de faire ça. D'accord, oui, je vois. Ça évite de devoir créer des segments à chaque fois. Voilà, et surtout que c'est vraiment, vous pouvez aller de ça, mais vraiment, tout est imaginable. Il y a un peu la beauté de Marc et d'autres qui ont laissé cette petite fonctionnalité parce que c'est vraiment une intelligence dans l'intelligence. Alors là, c'est un exemple tout bête, Céline, mais tu as accès à des fonctions qui sont assez avancées, notamment des fonctions mathématiques qui… Donc, tu peux tout à fait faire des calculs, en fait, dans ton script ici, ce qui n'est pas possible dans les segments. Tu ne peux pas dire, tu vois, si, je ne sais pas, si tu es à moins de 5 jours de ton anniversaire, je fais ça. Ouais, ouais, non, je vois tout à fait. C'est du fonction qui te permet de faire… Supérieur, inférieur, égal. Ouais, ouais, tu peux aller très loin, en fait. Puis, il y a toutes les petites autres fonctions de JavaScript, parce que le velocity script, qui est le langage de Marketo, qui est un dérivé, il y a toutes les petites fonctionnalités de, je veux remettre en majuscule. Par exemple, les gens n'ont pas tapé en majuscule, vous les forcez à mettre la première lettre en majuscule. Donc ça, c'est des fonctions simples. Et vous êtes sûr que vous n'aurez plus jamais d'erreur ou ça n'affichera pas. Vous aurez des standards. Il y a plein de petites fonctions comme ça à connaître et ça facilite un peu la vie. Ouais, et donc le cas d'usage, le cas d'usage très classique, effectivement, ce que disait Charles, c'est de faire apparaître ou pas des blocs dans les e-mails en fonction de qui va recevoir. Parce qu'ici, là, on a mis Pedro Sanchez, mais vous voyez bien qu'on pourrait mettre en fait un bloc HTML complet qui sera un bloc de votre e-mail. Donc, si vous avez des informations confidentielles, par exemple, à faire afficher juste à certaines personnes et pas d'autres, ou des conditions en fonction de si t'es MQL, si t'es de tel pays, on peut faire ça. Et que les conditions de déclenchement sont plus compliquées que juste un champ ou un segment, on peut passer par le velocity script. J'ai une question là. Il y a une ligne du commentaire. En fait, ce Velocity Script, ça permet aussi de vous pousser à une étape plus loin au niveau des nurture. Sans doute que vous utilisez beaucoup les programmes nurture utilisés par Marketo pour faire votre campagne de nurturing auprès de vos clients. Mais en fait, ils reçoivent tous à peu près le même content et dans la même cadence et ainsi de suite. Là, ça vous donne une étape supplémentaire que dans le content du nurture que la personne va recevoir, vous pouvez aller un cran au-dessus dans la personnalisation. Si vous avez un centre de préférence, par exemple, et vous savez que la personne est intéressée par la thématique Velocity Script, vous pouvez lui afficher tout un message plutôt qu'un autre s'il est plutôt intéressé pour apprendre à mieux utiliser les campagnes e-mail ou les campagnes default. Vous pouvez vraiment pousser le joujou à son maximum. On pourrait faire des newsletters thématiques qui afficheraient les préférences, qui seraient dynamiques en fonction des préférences des utilisateurs. Par exemple, vous avez peut-être tous un premier e-mail ou suivant si vous gérez plusieurs pays des double opt-in, c'est aussi un moyen simple sans avoir à s'amuser à faire 46 000 segments. Vous vous basez sur le champ pays et vous affichez le message suivant si la personne a besoin d'un double opt-in ou pas. Là, c'est la latitude de faire des tests par rapport à chaque champ et de rajouter des messages. C'est vraiment ce qui permet à Marketo dans les e-mails de faire du marketing one-to-one. C'est-à-dire que vous pouvez mettre un message quasiment personnalisé à chaque personne. Ce qui devient un peu plus complexe après, si imaginons vous poussez jusque-là, mais le client sera très content parce qu'il aura un message personnalisé. Par contre, avoir la visualisation de ce que la personne a reçu sera plus compliqué, parce que chaque personne en recevant votre e-mail de nurturing aura reçu un contenu personnalisé. Mais ça, vous pouvez vraiment aller très très loin. C'est ce qui est fait en gros à Amazon. Vous avez acheté tel produit, les autres clients ont acheté ça, ça, ça. C'est vraiment l'exemple type de ce que vous pouvez faire avec cette fonctionnalité. Pas d'autre dans Marketo vous permet de faire ça. D'ailleurs, je crois que Amazon utilise Marketo. En fait, quand on veut faire apparaître du contenu de la dynamique dans un e-mail qui ne dépend que d'une dimension, effectivement, une ou deux, les segments sont… On peut faire ça. Moi, par exemple, je prenais l'exemple du nurture ou de l'e-mail qui se basait sur le fait que… Moi, j'en ai fait un qui se base sur le fait que tu ais visité ou pas le centre de préférence juste après l'arrivée de la RGPD. Et effectivement, j'avais un petit bandeau qui t'invitait à passer sur le centre de préférence si tu n'avais pas visité. Et si tu avais visité, tu n'avais pas le bandeau. Quand tu as une seule dimension, effectivement, les segments sont tout à fait pertinents. Mais le script, ça devient utile quand tu as 3, 4, 5 critères qui vont se mélanger, parce que si tu veux faire une segmentation qui dépend de 4, 5 dimensions, en fait, le nombre de segments de valeur qu'il va falloir créer est exponentiel, en fait. C'est factoriel 4, factoriel 5, factoriel 6. Et donc, moi, j'ai fait dans mon centre de préférence un truc sur 4, déjà 4 dimensions en factoriel. J'ai dit, je ne fais pas plus, parce que je ne connaissais pas le VelociScript. Mais je me dis maintenant, je l'aurais fait en VelociScript, j'aurais eu un script. Effectivement, il faut quand même se taper tous les cas dans le VelociScript, mais c'est quand même plus facile à maintenir que de devoir faire… Pour le coup, j'avais dû faire 32 SmartPis, donc c'est un peu compliqué. Puis aussi, vous n'avez toujours… Des fois, vous n'avez pas la main sur le nombre de segmentations que vous pouvez mettre dans votre instance Marketo, parce que vous partagez votre instance avec votre autre filiale et ainsi de suite. Et vous voulez plutôt des segmentations claires et vous ne voulez pas que tout le monde s'amuse du jour au lendemain à créer leur propre segment, et bien ça, c'est une bonne solution pour avoir un peu un esprit novateur sur votre marché et pouvoir en fait faire des campagnes vraiment personnalisées. Par contre, on est d'accord qu'il faut savoir un peu, qu'il faut connaître un peu JavaScript. Après, c'est des else, if, tout ça va, mais c'est un peu, mais il faut connaître un peu. Vous allez un peu loin, oui, mais vous montrez aussi que ce n'est pas non plus très très compliqué. Non, ce que je vous disais là, c'est le… par exemple, vous voulez faire afficher une bannière pour, par exemple, quelqu'un qui est déjà un MQL chez vous et vous voulez vraiment qu'il prenne contact avec votre sales et ainsi de suite, en fait, cette bannière que vous avez le code que vous pouvez déjà préformater dans votre email, vous reprenez juste ce bout de code et en fait, vous faites vos conditions logiques et si ça match, vous affichez ce bout de code, si ça ne marche pas, vous ne le mettez pas et dans l'email, vous remplacez juste le bout de la bannière, le code par ce token et le tour est joué et c'est transparent pour tout le monde, sauf ceux qui matchent la condition. Ça, c'est vraiment une application facile et qui généralement plaît bien en interne, parce que vous dites ah, vous faites un peu de email personnalisé, ce n'est pas l'email massif bête et méchant. VélociScript, ça permet aussi surtout d'aller chercher l'information sur les objets enfants et parfois petits enfants, des personnes et des comptes. Donc, un cas tout bête, je vais remonter le montant de ma dernière opportunité. J'ai pris un exemple qu'il ne faut pas faire dans la vraie vie, parce que je suis juste allé prendre le montant de l'opportunité et je l'ai drag & dropé ici, juste pour qu'on voit ce que ça fait. Donc ici, vous voyez, au lieu d'avoir le nom de l'objet point le nom du champ, on a déjà une liste ici, c'est marqué liste, et puis on a get 0. Pourquoi ? Parce qu'une personne, elle peut être très bien liée à 0, une ou plusieurs opportunités. Donc, on n'est plus sur quand j'appelle un champ, j'ai une valeur, j'ai soit 0, soit… soit c'est vide, soit j'ai une valeur, là, c'est potentiellement cinq opportunités qui sont attachées à la personne. Donc, en fait, Marketo va nous ramener par défaut une liste d'opportunités qu'on va pouvoir passer en revue avec get 0, get 1, get 2, get 3, get 4. Et là, évidemment, le problème, c'est qu'on ne sait pas à l'avance combien il va y avoir d'opportunités. Est-ce que c'est 0, une ou deux ? Donc, c'est pour ça qu'il ne faut pas faire ça, parce qu'il faut mettre des codes sécurité autour de ça. Mais si je fais ça, vous allez voir, mon e-mail, c'est celui-là, le 4, là. Ici, j'aurais dû faire un édit, pardon, pour vous montrer, je l'ai mis en… Donc, j'ai posé juste ce token tout bête. Voilà, c'est le simple, là. Et si je reprends ma liste, je sais que le numéro 3, il a des opportunités, les autres n'en ont pas. Donc là, pour ceux qui n'ont pas d'opportunités, il va mettre le nom du token. Ce n'est pas beau, parce que je n'ai pas mis de test sur le fait que la liste contenait quelque chose ou pas. Donc là, il va me remettre le nom. Là encore, et sur le 3, il va mettre le montant de la dernière opportunité. Donc là, j'ai le montant de la dernière opportunité. Le deuxième point, c'est qu'on ne sait pas trop dans quel ordre Marketo nous ramène la liste, dans quel ordre elle est triée. Donc, quand on dit la dernière, en fait, c'est la dernière, mais par rapport à quoi ? Par rapport à quel champ ? Donc, il vaut mieux être explicite avec Marketo et ne pas lui laisser le choix de comment il trie. Donc, ce qu'on va faire, ici, quand on veut remonter… ####Par exemple, vous souhaitez envoyer un email en interne, en marketing, quand une opportunité de plus d'un certain montant est gagnée par un commercial, et puis sonner le gong, par exemple. Donc là, on va utiliser, encore une fois, un « if » avec un « end ». Donc là, je n'ai pas le « else if », je n'ai pas le « else », parce que je veux juste afficher l'opportunité, juste afficher ce texte quand les conditions seront remplies. Donc là, ma condition, c'est si ma liste existe, je crois, Charles, tu me corriges, si elle n'est pas vide. Et si elle n'est pas vide, donc ça, c'est les deux tests qui me permettent de vérifier que ça va sortir quelque chose. Ensuite, avec « set », je peux définir une variable. Donc là, je vais définir cette variable qui s'appelle « liste triée », et je vais utiliser une fonction « sortErsort » ici, où je vais pouvoir dire « tu me tries la liste d'opportunités selon ce champ et dans quel sens ». Évidemment, c'est là où il faut connaître les fonctions, il faut connaître comment ça fonctionne. Et ensuite, si cette condition est remplie, je vais mettre « bravo pour l'opportunité ». Je vais récupérer ma variable « sortIsList », et si, je peux aller chercher tous les champs. Je prends l'occurrence numéro 0, donc la première triée dans le sens descendant de la mise à jour côté Marketo. Je vais chercher le nom et je vais chercher le montant de l'opportunité. Évidemment, j'aurais coché les trois champs, « name amount » et « marketo update » Et donc ça, ça me donne pour les gens qui ont une opportunité. Bravo pour l'opportunité test 2 d'un montant de 20 000 €. Et si je tombe sur quelqu'un qui n'a pas d'opportunité, j'ai rien. Donc c'est à conjuguer avec, évidemment, le trigger. Un trigger « opportunity is updated » et une contrainte « montant est supérieur à 10 000 € » par exemple, pour que seules les personnes qui viennent d'avoir, qui sont attachées à une opportunité, sortent. Et qu'on n'ait pas les gens qui sont inutiles. Donc c'est un peu plus compliqué. Alors je vous passe le script. Vous voyez mon écran de nouveau ? Donc ça, on commence à travailler sur les objets qui sont en dessous de la personne. Et forcément, il faut un qu'on aille chercher les objets, qu'on s'assure qu'il y a une liste qui est remplie et qu'on la trie dans un certain ordre. Et une fois qu'on a fait ça, généralement, on peut commencer à mettre dans l'e-mail les champs qui nous intéressent. C'est à peu près toujours le même travail. Charles, un commentaire sur ça ? C'est souvent le truc comme ça ? Non, non, c'est… Oui, il y a des… Par exemple, il y a des gens qui utilisent ça pour faire les récapitulatifs des commandes. Donc votre dernière commande à acheter, voici votre panier. Merci pour la commande. Donc ça, c'est ce que j'ai fait… Alors là, on ne va pas faire les tests, parce que ça suppose que vous ayez les opportunités, que vous ayez… Trouver les gens qui sont attachés. C'est un peu compliqué. Mais quand on va un peu plus loin… Si on reprend l'exemple de l'e-mail pour Beneteau avec l'histoire des bateaux… Vous voyez, là, j'ai juste ce token New Purchase. Et si je vois… Si je prends quelqu'un qui a des bateaux chez moi qui s'appelle Pierre Bonnevin… Donc là, en fait, c'était, félicitation pour l'achat de votre nouveau Monte-Carlo 52 dans la gamme Monte-Carlo. Et après, évidemment, on pourra mettre une photo du bateau. Et j'en ai un autre qui doit lister tous les bateaux. Là, je fais l'ensemble des bateaux, si je me souviens bien. C'est l'exemple que tu citais, Charles, où, en fait, on va aller chercher, là, pour le coup, l'ensemble des bateaux possédés par la personne. On va même faire un petit calcul sur le nombre de bateaux qu'il possède. Et on va… Voilà, c'est une espèce de récapitulatif de la commande qui s'est faite. Et donc, le script va mélanger à la fois de la donnée. On va aller chercher de la donnée, puis on va la mettre en forme à travers un tableau. Donc, à quoi ça ressemble une fois qu'on fait ça ? Si je prends New Purchase, là… Ça ressemble beaucoup à ce qu'on vient de faire, si ce n'est que c'est pas avec les opportunités. Là, je suis allé chercher l'objet bateau. Donc, il s'appelle bateau, underscore, clist. Donc, si j'ai une liste et qu'elle n'est pas vide, je trie ma liste de bateaux par la date de remise du bateau qui a été chargée dans le Custom Object par le CRM. Et je mets en texte, exactement comme j'ai fait, juste après, on va chercher le modèle et la gamme. Et je pourrais ajouter autant de champs que je veux, je pourrais ajouter une image, je pourrais ajouter… Côté du tableau… C'est là où on va avoir un tableau. Il y a une autre fonction qu'on va utiliser, on va faire une boucle. On va créer cette liste et on va parcourir la liste grâce à une boucle qui commence par Forage ici. Pour chaque bateau dans la liste des bateaux, on va faire un row avec toutes les colonnes et on va mettre tous les champs en colonne ici. C'est un bateau Coque. Et puis, on va faire un compteur qui va nous compter le nombre de bateaux. On va revenir… Il va revenir… Tant que la liste n'est pas finie, il va partir en boucle et puis à la fin, il va afficher, vous possédez, on va sortir la variable Count et il va nous dire qu'il n'y a qu'un bateau. Donc, on a utilisé un If de NLs, on a utilisé une fonction qui fixe la variable ici, de la mise en forme avec du html classique que vous reconnaissez des bateaux, des tableaux pardon, et puis une boucle qui est un truc un peu nouveau là. Quand on veut passer en revue, quand on veut parcer et passer toutes les valeurs d'une liste, c'est cette fonction qu'on va utiliser, qui est assez pratique. On ne peut pas faire ça en cinq minutes, il faut un peu s'entraîner, mais avec un petit peu d'huile de coude, on y arrive et ça permet d'accéder à des fonctions qui ne seraient normalement pas accessibles dans Marketo. Qu'est-ce que vous en pensez ? C'est génial. Après, je me demande si Marketo va, à un moment donné, le rendre… Je ne sais pas comment expliquer, va le rendre accessible à tous, on va dire, ou on pourra sélectionner directement en fonction de la logique, du If, du LS, etc. Enfin, qui vont un peu vulgariser le JavaScript. Après, je pense que ça empêchera, ça limitera forcément au niveau des possibilités. Étant donné que ce n'est pas encore accessible à tous, je me demande si derrière il va y avoir un peu de développement là-dessus ou pas. Après, ce qui est important, c'est de savoir ce que ça peut faire, parce qu'une fois que vous savez que vous pouvez le faire avec le Velocity Script, le fait que ce soit vous qui le fassiez ou pas, ce n'est pas très important. L'important, c'est de se dire que ça, je peux le faire dans Marketo, même si je ne peux pas le faire nativement, il faut juste que j'aille trouver le bon prestataire. Étant donné que la personnalisation, c'est vraiment le truc que tout le monde recherche dans un outil de marketing automation et le rendre… VeloCityScript, ce n'est pas hyper connu. En tout cas, c'est l'impression que j'en ai, que ce n'est pas hyper connu par mes utilisateurs de Marketo et que si c'était un peu plus mis en avant ou un peu plus accessible à des profils un peu moins tech, ce serait un avantage, mais… C'est savoir sur le sujet. Oui, tout à fait. En fait, c'est un peu une fonctionnalité que Marketo se devait d'avoir pour les clients qui voulaient vraiment gérer leur centre de facturation et tous ces éléments. Après, la grande partie des clients de Marketo n'utilisent pas jusqu'à ce point-là, mais ils en avaient besoin parce qu'il y a des très gros clients chez Marketo, qui utilisent cette fonctionnalité. Donc, cette fonctionnalité a toujours été maintenue et un peu pérenne, parce que les plus gros clients historiques de Marketo utilisent cette fonctionnalité. Mais après, ce n'est pas vulgarisé, ce n'est pas simple d'un premier abord. Après, il y a de la documentation. Marketo a voulu faire aussi son propre code, parce qu'ils auraient pu très bien utiliser du JavaScript. Là, ils ont inventé leur propre code pour le rendre moins accessible, mais toutefois, sachez qu'il y a cette possibilité et il y a beaucoup de choses que vous pouvez faire qui vous démarquera de la concurrence, soit en y passant un peu de temps, soit en contactant Sylvain pour vous accompagner sur nos projets. Tu sais, si dans une autre plateforme de marketing automation, il y a cette extension de Velocity Script dans les HubSpot, les Pardot et autres ? C'est fait différemment, mais ce n'est pas… Ils ont tous un peu leur méthode, mais rien n'est simple dès lors qu'on veut faire des appels à des tables d'achats et ainsi de suite. Souvent, il y a des… En fait, c'est un peu touchy comme sujet, puisque ça peut faire apparaître des informations confidentielles. C'est pour ça qu'il y a beaucoup de plateformes qui n'y touchent pas trop, ou ils touchent mais en laissant un peu de façon difficile d'y accéder, parce que si vous faites une erreur là-dessus, vous pouvez envoyer votre liste d'achat d'un client à un autre. C'est ça que les plateformes ne veulent pas trop mettre en avant parce que oui, ils ont la fonctionnalité pour les clients qui ont des experts et qui peuvent mettre ça en place, mais après, ils ne veulent pas le vulgariser, parce que c'est trop facile de faire une erreur et ils seraient bien embêtés. Mais après, c'est un petit temps d'apprentissage. Normalement, vous passez deux jours à vous former, mais vous pouvez faire quand même quelques fonctionnalités après pour des choses un peu plus poussées. Bien évidemment, il faut contacter Sylvain et il vous orientera. C'est digne d'un marketo champion parce que j'avais regardé un MUG où c'était des marketo champions qui présentaient des tips, et il y en avait un qui avait présenté un tip sur le Velocity Scripts, donc je pense que tu pourrais participer Sylvain. Tout le monde avait voté pour son tip en tout cas. En fait, le vulgariser, c'est vrai que ça plaît à beaucoup de personnes parce que c'est par définition ce que tout le monde veut faire avec un outil tel que Marketo, c'est d'être capable de faire du email one to one, et clairement, c'est la fonctionnalité top pour ça, mais qui est effectivement jamais trop mise en avant, et en plus, si on rentrait dedans, c'est un peu compliqué. Donc dès qu'il y a quelqu'un qui en parle sur le sujet, vous verrez qu'il n'y a pas beaucoup de blogs, mais il y en a quelques uns qui en parlent, et aussi, il y a quelques experts sur le marché qui connaissent et qui est tout le temps le même qui répond parce qu'en fait, Marketo n'a pas aussi documenté toutes les fonctions qui sont derrière, mais en fait, il suffit de tester et voir, ah tiens, c'est comme le JavaScript, là-dessus, ils n'ont pas réécrit la façon d'appeler la fonction. Comme je vous dis, ils ne sont pas allés pour le vulgariser, mais ils laissent l'opportunité à des spécialistes de pouvoir faire un peu tout ce qu'ils veulent avec cette fonctionnalité. Mon objectif, c'était vraiment de vous faire un tout petit début d'apprentissage. Je n'ai pas comme ambition de venir expert sur le sujet ou de vous rendre expert, c'était juste plutôt pour vous dire, voilà ce qu'on peut faire avec 1, ce n'est pas juste limité au custom object, on peut faire des choses assez dynamiques et sympas juste en utilisant les champs que vous avez en base sur la personne. Et 2, c'est de vous ouvrir un peu les chakras sur ça et de se dire, ce n'est pas parce que c'est technique que c'est inaccessible, il suffit juste d'avoir bien en tête le fait qu'on peut faire des choses et d'imaginer ce qu'on veut faire et après on développe. Axel, Cécile, réaction ? J'ai une question justement par rapport à ça. J'ai un collègue qui me demandait si c'était possible de faire un message personnalisé dans Marketo par rapport à un champ dans Salesforce. Par exemple, si la date d'un contrat, d'une opportunité a dépassé 6 mois, on envoie un message au commercial. Est-ce que c'est possible de faire ça avec Marketo ? Il faut que le champ de l'opportunité en question soit synchronisé avec Marketo. Tous les champs ne sont pas synchronisés, donc il faut commencer par synchroniser les champs. Mais après, oui, bien sûr. Pour synchroniser un champ, c'est compliqué ? Ou ça se passe comment ? Il faut que le user Marketo dans Salesforce ait la vue sur ce champ. Ça se gère dans Salesforce au niveau des profils. Il faut donner le droit au user Marketo de voir ce champ. Et après, Marketo récupère. Et après, on peut mettre une variable si la date est dépassée de 6 mois, alors on envoie un message spécifique au commercial de ce compte. Exactement. Dans Marketo, on aura l'opportunité. On aura le commercial propriétaire de l'opportunité avec son e-mail. On a la date de l'opportunité. En faisant la bonne… Enfin, il faudrait que je travaille quand on bosse un peu, mais oui, c'est possible. OK, ça marche. Comme dit Sylvain, c'est pour ouvrir les chakras. Mais en fait, ce module dans Marketo permet de répondre, avec mon expérience, à toutes les problématiques. Je crois que c'est vraiment le… Souvent dans beaucoup d'outils, ils offrent un accès libre pour pouvoir développer d'autres choses complémentaires. C'est ce module dans Marketo qui permet vraiment, quelle que soit votre idée, ça sera réalisable. Ok les amis. Bon, on a un petit peu dépassé, mais je pense qu'il y avait de la matière. Si vous avez… Je vais monter le truc, donc ce sera disponible sur mon video, si vous voulez soit vous replonger dedans, soit passer à vos collègues pour pratiquer un petit peu et découvrir. Et puis, sur ce, on est disponible pour vous aider. Je vous souhaite une bonne fin de journée et surtout un bon week-end. On se retrouve très très vite. Merci beaucoup. Salut, merci. Bonne journée. Très intéressant, merci Sylvain. Au revoir.