Centre de préférences Salesforce Marketing Cloud: Exemple de page AMPScript et Cloud

Code de la page de préférences Marketing Cloud intégré à AMPscript Salesforce

Histoire vraie… ma carrière a vraiment pris son envol il y a plus de dix ans lorsque j'ai commencé un poste de consultant en intégration pour ExactTarget (maintenant Salesforce Marketing Cloud). Mon travail m'a amené partout dans le monde à aider les entreprises à développer des intégrations profondes avec la plate-forme et j'ai acquis tellement de connaissances institutionnelles sur la plate-forme que j'ai été promu chef de produit.

Les défis du chef de produit pour une organisation qui appartenait auparavant aux développeurs m'ont finalement amené à passer à autre chose. C'était une super organisation, mais je n'ai jamais vraiment propriété le produit. Ainsi, alors que mes collègues du support, des ventes et du marketing produit se sont tournés vers moi pour faire un vrai changement… la réalité était que l'équipe de développement implémentait souvent une solution différente et je le découvrais quelques jours avant la sortie.

Un de mes derniers projets travaillait sur une plate-forme de script interne qui permettrait à nos clients d'ajouter un script à leurs e-mails. J'ai travaillé avec un autre chef de produit et nous avons fait une tonne de recherches ... finalement décidé de développer une approche de style JQuery avec nos propres fonctions, mais incluant la possibilité de passer et de consommer des tableaux, d'utiliser JSON, etc. solution… jusqu'à ce qu'elle atteigne le développement. Au début du cycle du produit, ma bibliothèque a été mise au rebut et un développeur senior l'a remplacée par AMPscript.

Des années plus tard, le Partenaire Salesforce La société dans laquelle je suis partenaire effectue maintenant des intégrations complexes et d'entreprise, et je me retrouve quotidiennement embourbé dans AMPscript - soit en améliorant la logique du contenu des e-mails, soit en déployant des pages cloud. Bien sûr, la frustration de travailler jour après jour avec AMPscript m'assure que la mauvaise décision a été prise à l'époque… ma solution aurait été bien plus élégante. J'ai l'impression que je suis de retour à la programmation d'un TRS-80 en BASIC.

L'éditeur que vous utilisez pour Cloud Pages est impitoyable. Il n'attrape pas les problèmes simples comme la déclaration de variables ou les erreurs de syntaxe avec votre code. En fait, vous pouvez en fait publier une page qui générera simplement une erreur de serveur 500. Il existe également deux champs de dénomination pour vos pages… ne me demandez pas pourquoi.

Pro-Tip: Si un Cloud Pages ne renvoie jamais d'exemples de données lorsque vous êtes sur le point de publier et qu'il semble qu'il soit en cours de traitement pour toujours ... vous allez générer une erreur. Si vous publiez quand même, vous devrez probablement supprimer complètement la page cloud et recommencer. Je suppose que l'infrastructure sur laquelle il est construit n'est pas assez intelligente pour identifier un changement de code et continue simplement à traiter le code mis en cache.

En dehors de cela, vous serez heureux de savoir que de nombreux exemples de code documentés ont leurs propres erreurs de syntaxe. Yay! C'est une expérience horrible ... mais vous pouvez toujours et devez l'utiliser car elle offre une flexibilité incroyable.

Note latérale: Il y a une nouvelle page cloud Expérience Professionnelle… Où il semble qu'ils viennent de refaire le skin de la page et cela ne fournit aucune information supplémentaire. En fait, j'aime mieux l'ancienne version pour la séquence de publication en plusieurs étapes.

Alors que mon entreprise Highbridge développe des solutions complexes activées pour Ajax qui intègrent plusieurs systèmes et incorporent des extensions de données avec AMPscript, SSJS, Cloud Pages et e-mail ... Je voulais partager un exemple simple de la façon dont vous pouvez commencer à utiliser simplement AMPscript pour interroger votre instance Salesforce et tirer retour des données. Dans ce cas, un champ booléen simple qui conserve un indicateur de désabonnement principal. Vous pouvez, bien sûr, étendre ce code pour créer une page de préférences entière ou un centre de profil que vous pouvez utiliser.

Générer un lien de page cloud avec les données d'abonné

Si vous affichez les détails de votre page cloud, vous pouvez acquérir l'ID de page unique de la page que vous pouvez inclure dans vos e-mails.

identifiant de page cloud

La syntaxe est la suivante:

<a href="%%=RedirectTo(CloudPagesURL(361))=%%">View My Preferences</a>

AMPscript pour les données Salesforce via les pages cloud via les extensions de données

La première étape consiste à créer votre AMPscript pour déclarer des variables et récupérer les données de Salesforce à utiliser dans votre page. Dans cet exemple, mon champ booléen Salesforce qui contient le vrai ou le faux est nommé Choisi de se retirer:

%%[

/* Declare EVERY variable */
VAR @contactKey,@agent,@referrer,@unsub
VAR @rs,@updateRecord,@checked
 
/* Request your ContactKey from the querystring */
Set @contactKey = Iif(Empty([_subscriberKey]),RequestParameter("contactKey"),[_subscriberKey])

/* Set unsub to false unless it is passed in the querystring */
SET @unsub = Iif(Not Empty(RequestParameter('unsub')),RequestParameter('unsub'),'false')
 
/* If unsub, then update the Salesforce field OptedOut */ 
IF NOT Empty(@unsub) THEN
  SET @updateRecord = UpdateSingleSalesforceObject('contact',@contactKey,'OptedOut', @unsub)
ENDIF

/* Retrieve the Salesforce Contact record */
Set @rs = RetrieveSalesforceObjects('contact', 'FirstName,LastName,OptedOut', 'Id', '=', @contactKey);
 
/* Get the fields from the record */
 IF RowCount(@rs) == 1 then
  var @record, @firstName, @lastName, @optout
  set @record = Row(@rs, 1)
  set @firstName = Field(@record, "FirstName")
  set @lastName = Field(@record, "LastName")
  set @optout = Field(@record, "OptedOut")
ENDIF

/* Build a string for your checkbox to be checked or not
 set @checked = '';
 IF (@optout == 'true') THEN
  set @checked = 'checked'
 ENDIF
 
]%%

Vous pouvez maintenant créer votre HTML et votre formulaire qui traitent la demande:

<!DOCTYPE html>
<html>
   <title>Profile Center</title>
   <body>
      <h2>Your Profile:</h2>
      %%[ if RowCount(@rs) == 1 then ]%%
      <ul>
         <li><strong>First Name:</strong> %%=v(@firstName)=%%</li>
         <li><strong>Last Name:</strong> %%=v(@lastName)=%%</li>
         <li><strong>Unsubcribed:</strong> %%=v(@optout)=%%</li>
      </ul>
      <form method="get">
       <div>
         <input type="hidden" id="contactKey" name="contactKey" value="%%=v(@contactKey)=%%">
         <input type="checkbox" id="unsub" name="masterUnsub" value="true" %%=v(@checked)=%%>
         <label for="masterUnsub">Unsubscribe From All</label>
        </div>
       <div>
         <button type="submit">Update</button>
        </div>
     </form>
      %%[ else ]%%
      <p>You don't have a record.</p>
      %%[ endif ]%%
   </body>
</html>

Voilà… mettez tout cela ensemble et vous avez une page de préférences qui est mise à jour avec votre enregistrement d'abonné et transmet une demande de mise à jour d'un champ booléen (vrai / faux) dans Salesforce. Vous pouvez désormais créer des requêtes personnalisées autour de ce champ pour toujours vous assurer que les contacts désactivés ne reçoivent aucun e-mail!

Comment améliorer votre page de préférences ou votre centre de profil

Bien sûr, ce n'est qu'un teaser de ce qui est possible avec une page de préférences. Améliorations auxquelles vous voudrez peut-être penser:

  • Remplissez le texte réel d'une autre extension de données afin que votre équipe marketing puisse mettre à jour le contenu de la page quand elle le souhaite sans toucher au code.
  • Remplissez une extension de données de liste de publications et parcourez les publications pour offrir des préférences d'acceptation ou de désinscription en plus d'un désabonnement principal.
  • Remplissez une extension de données de raison pour comprendre pourquoi vos abonnés se désabonnent en maître.
  • Renseignez d'autres informations de profil à partir de l'enregistrement Salesforce pour fournir des informations de profil supplémentaires.
  • Traitez la page avec Ajax afin de pouvoir la remplir de manière transparente.
  • Offrez un moyen d'inscription pour que votre utilisateur puisse accéder à tout moment à son centre de profil personnel.

Ressources supplémentaires pour AMPscript

Si vous recherchez une assistance supplémentaire pour apprendre et déployer AMPscript, voici quelques ressources intéressantes:

  • Guid AMPscripte - organisée par certains employés de Salesforce, il s'agit d'une base de données assez complète de syntaxe AMPscript, bien que les exemples soient vraiment légers. S'il était plus robuste, l'investissement en valait peut-être la peine.
  • Trailhead AMPscript - Trailhead de Salesforce est une ressource d'apprentissage gratuite et peut vous guider à travers les bases du langage avec AMPscript, SSJS et comment les deux peuvent interagir.
  • Stack Exchange pour Salesforce - une excellente communauté en ligne pour demander de l'aide avec une tonne d'exemples de code AMPscript.

Il existe une tonne d'opportunités dans l'intégration de vos pages cloud avec Salesforce pour offrir une expérience utilisateur supérieure. Et si votre entreprise est en difficulté, vous pouvez toujours nous contacter pour vous aider!

Nous Contacter Highbridge

Que pensez-vous?

Ce site utilise Akismet pour réduire les spams. Découvrez comment sont traitées les données de vos commentaires..