Salesforce Marketing Cloud Preference Center: AMPScript e Cloud Page Esempio

Codice pagina delle preferenze di Marketing Cloud integrato in Salesforce AMPscript

Storia vera ... la mia carriera è decollata davvero più di dieci anni fa, quando ho iniziato a lavorare come consulente per l'integrazione per ExactTarget (ora Salesforce Marketing Cloud). Il mio lavoro mi ha portato in tutto il mondo ad assistere le aziende nello sviluppo di integrazioni profonde con la piattaforma e ho accumulato così tanta conoscenza istituzionale della piattaforma che sono stato promosso a Product Manager.

Le sfide del Product Manager per un'organizzazione che in precedenza era di proprietà degli sviluppatori alla fine mi hanno portato ad andare avanti. È stata una grande organizzazione, ma non l'ho mai veramente Di proprietà il prodotto. Quindi, mentre i miei colleghi dell'assistenza, delle vendite e del marketing del prodotto si sono rivolti a me per fare un vero cambiamento ... la realtà era che il team di sviluppo spesso implementava una soluzione diversa e io lo scoprivo giorni prima del rilascio.

Uno dei miei ultimi progetti stava lavorando a una piattaforma di scripting interna che avrebbe consentito ai nostri clienti di aggiungere script alle loro e-mail. Ho lavorato con un altro Product Manager e abbiamo fatto un sacco di ricerche ... alla fine abbiamo deciso di sviluppare un approccio in stile JQuery con le nostre funzioni, ma inclusa la capacità di passare e consumare array, utilizzare JSON, ecc. soluzione ... finché non ha raggiunto lo sviluppo. All'inizio del ciclo del prodotto, la mia libreria è stata scartata e uno sviluppatore senior l'ha sostituita con AMPscript.

Anni dopo, il Partner di Salesforce La società di cui sono partner ora sta realizzando integrazioni aziendali complesse e mi trovo impantanato in AMPscript su base giornaliera, migliorando la logica dei contenuti e-mail o implementando Cloud Pages. Naturalmente, la frustrazione di lavorare giorno dopo giorno con AMPscript mi ​​assicura che a quei tempi sia stata presa la decisione sbagliata ... la mia soluzione sarebbe stata molto più elegante. Mi sento come se fossi tornato a programmare un TRS-80 in BASIC.

L'editor che usi per Cloud Pages non perdona. Non rileva problemi semplici come la dichiarazione di variabili o errori di sintassi con il codice. In effetti, puoi effettivamente pubblicare una pagina che genererà semplicemente un errore del server 500. Ci sono anche due campi di denominazione per le tue pagine ... non chiedermi perché.

Pro-tip: Se una Cloud Pages non restituisce mai dati di esempio quando stai per pubblicare e sembra che sia in elaborazione per sempre ... genererai un errore. Se pubblichi comunque, probabilmente dovrai eliminare del tutto la Cloud Page e ricominciare da capo. La mia ipotesi è che l'infrastruttura su cui è costruita non sia abbastanza intelligente da identificare una modifica del codice e continui a elaborare il codice memorizzato nella cache.

A parte questo, sarai felice di sapere che molti degli esempi di codice documentati hanno i propri errori di sintassi. Sìì! È un'esperienza orribile ... ma puoi ancora e dovresti usarla perché fornisce una straordinaria flessibilità.

Nota a margine: C'è una nuova pagina Cloud Esperienza... dove sembra che abbiano appena ridisegnato la pagina e non fornisce alcuna informazione aggiuntiva. In realtà mi piace di più la vecchia versione per la sequenza di pubblicazione in più passaggi.

Mentre la mia compagnia Highbridge sviluppa soluzioni complesse abilitate per Ajax che integrano più sistemi e incorporano estensioni di dati con AMPscript, SSJS, pagine cloud ed e-mail ... Volevo condividere un semplice esempio di come puoi iniziare semplicemente utilizzando AMPscript per interrogare la tua istanza Salesforce e tirare dati indietro. In questo caso, un semplice campo booleano che conserva un flag di annullamento dell'iscrizione principale. Ovviamente puoi estendere questo codice per creare un'intera pagina delle preferenze o un centro profilo che puoi utilizzare.

Genera un collegamento pagina cloud con i dati dell'abbonato

Se visualizzi i dettagli della tua pagina cloud, puoi acquisire l'ID pagina univoco per la pagina che puoi includere nelle tue e-mail.

ID pagina cloud

La sintassi è la seguente:

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

AMPscript per dati di Salesforce tramite pagine cloud tramite estensioni dati

Il primo passaggio è creare il tuo AMPscript per dichiarare le variabili e recuperare i dati da Salesforce da utilizzare nella tua pagina. In questo esempio, viene denominato il mio campo booleano Salesforce che contiene il vero o il falso Rinunciato:

%%[

/* 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
 
]%%

Ora puoi creare il tuo HTML e il modulo che elabora la richiesta:

<!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>

Ecco fatto ... metti tutto insieme e hai una pagina delle preferenze che viene aggiornata con il tuo record di abbonato e passa una richiesta per aggiornare un campo booleano (vero / falso) in Salesforce. Ora puoi creare query personalizzate attorno a quel campo per assicurarti sempre che ai contatti disattivati ​​non venga inviata alcuna email!

Come migliorare la tua pagina delle preferenze o il Centro profilo

Ovviamente, questo è solo un teaser di ciò che è possibile fare con una pagina delle preferenze. Miglioramenti a cui potresti pensare:

  • Compila il testo effettivo da un'altra estensione dati in modo che il tuo team di marketing possa aggiornare il contenuto della pagina ogni volta che lo desidera senza toccare il codice.
  • Compilare un'estensione dati dell'elenco di pubblicazioni e scorrere le pubblicazioni per offrire opt-in o opt-out sulle preferenze oltre all'annullamento dell'iscrizione principale.
  • Compila un'estensione dati del motivo per acquisire il motivo per cui i tuoi iscritti stanno annullando l'iscrizione principale.
  • Popolare altre informazioni sul profilo dal record Salesforce per fornire ulteriori informazioni sul profilo.
  • Elabora la pagina con Ajax in modo da poterla popolare senza problemi.
  • Offri un mezzo di registrazione in modo che il tuo utente possa accedere al proprio centro profilo personale in qualsiasi momento.

Risorse aggiuntive per AMPscript

Se stai cercando ulteriore assistenza per l'apprendimento e la distribuzione di AMPscript, ecco alcune ottime risorse:

  • Guida AMPscripte - organizzato da alcuni dipendenti di Salesforce, questo è un database abbastanza completo della sintassi AMPscript, sebbene gli esempi siano davvero leggeri. Se fosse più robusto, potrebbe valere la pena investire.
  • Trailhead AMPscript - Il Trailhead di Salesforce è una risorsa di apprendimento gratuita e può guidarti attraverso le basi del linguaggio con AMPscript, SSJS e come i due possono interagire.
  • Stack Exchange per Salesforce - una grande comunità online per richiedere assistenza con una tonnellata di esempi di codice AMPscript.

Ci sono tantissime opportunità nell'integrare le tue Cloud Pages con Salesforce per fornire un'esperienza utente superiore. E se la tua azienda è in difficoltà, puoi sempre contattarci per aiutarti!

Contatti Highbridge

Cosa ne pensi?

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati dei tuoi commenti.