Salesforce Marketing Cloud Preference Center: AMPScript kaj Cloud Page Ekzemplo

Paĝa Kodo de AMPscript Salesforce-Integra Merkata Nubo-Prefero

Vera rakonto ... mia kariero vere ekis antaŭ pli ol jardeko, kiam mi komencis pozicion kiel Integriĝa Konsultisto por ExactTarget (nun Salesforce Marketing Cloud). Mia tasko kondukis min tra la mondo helpante kompaniojn disvolvi profundajn integriĝojn kun la platformo kaj mi konstruis tiom da institucia scio pri la platformo, ke mi estis promociita al Produkta Administranto.

La defioj de Produkta Manaĝero por organizo, kiu antaŭe posedis programistojn, fine kondukis min plu. Ĝi estis bonega organizo, sed mi neniam vere posedata la produkto. Do, dum miaj kunuloj pri subteno, vendo kaj produkta merkatado rigardis min por fari veran ŝanĝon ... la realo estis, ke la disvolva teamo ofte efektivigis malsaman solvon kaj mi ekscius tagojn antaŭ la eldono.

Unu el miaj lastaj projektoj estis prilabori internan skriptan platformon, kiu ebligus al niaj klientoj aldoni skripton al iliaj retpoŝtoj. Mi laboris kun alia Produkta Manaĝero kaj ni multe esploris ... fine decidinte disvolvi JQuery-stilan aliron kun niaj propraj funkcioj, sed inkluzive la kapablon pasi kaj konsumi tabelojn, uzi JSON, ktp. solvo ... ĝis ĝi trafos disvolviĝon. Komence de la produkta ciklo, mia biblioteko estis forigita kaj altranga programisto anstataŭigis ĝin per AMPscript.

Jaroj poste, la Salesforce Partnero kompanio, en kiu mi estas partnero, nun faras kompleksajn, kompaniajn integriĝojn, kaj mi trovas min enŝovita en AMPscript ĉiutage - aŭ plibonigante retpoŝtan enhavan logikon aŭ lanĉante Cloud Pages. Kompreneble, la frustriĝo labori tagon post tago kun AMPscript certigas min, ke la malĝusta decido estis farita en tiuj tagoj ... mia solvo estus multe pli eleganta. Mi sentas, ke mi revenis al programado de TRS-80 en BASIC.

La redaktilo, kiun vi uzas por Cloud Pages, estas nepardona. Ĝi ne kaptas simplajn problemojn kiel deklari variablojn aŭ sintaksajn erarojn kun via kodo. Fakte vi efektive povas publikigi paĝon, kiu simple generos eraron de 500-servilo. Estas ankaŭ du nomkampoj por viaj paĝoj ... ne demandu min kial.

Por-pinto: Se Nubo-Paĝoj neniam redonas specimenajn datumojn kiam vi publikigos kaj ŝajnas, ke ĝi prilaboriĝas por ĉiam ... vi ĵetos eraron. Se vi publikigas iel ajn, vi probable devos tute forigi la Nuban Paĝon kaj rekomenci. Mi supozas, ke la infrastrukturo, sur kiu ĝi estas konstruita, ne estas sufiĉe inteligenta por identigi kodŝanĝon kaj nur daŭre prilaboras la kaŝmemoran kodon.

Krom tio, vi ĝojos scii, ke multaj el la dokumentitaj kodaj specimenoj havas siajn proprajn sintaksajn erarojn. Jes! Ĝi estas terura sperto ... sed vi ankoraŭ povas kaj devas uzi ĝin, ĉar ĝi donas mirindan flekseblecon.

Flanka noto: Estas nova Nuba Paĝo sperto... kie ŝajnas, ke ili ĵus rehaŭtigis la paĝon kaj ĝi ne donas pliajn informojn. Mi fakte pli ŝatas la malnovan version por la plurpaŝa eldonsekvenco.

Dum mia kompanio Highbridge konstruas kompleksajn, Ajax-ebligitajn solvojn, kiuj integras plurajn sistemojn kaj asimilas datumajn etendaĵojn kun AMPscript, SSJS, Cloud Pages kaj retpoŝto ... Mi volis dividi simplan ekzemplon pri kiel vi povas komenci simple uzante AMPscript por pridemandi vian Salesforce-instancon kaj tiri reen datumoj. Ĉi-kaze simpla bulea kampo, kiu konservas majstran malabonan flagon. Vi kompreneble povas etendi ĉi tiun kodon por konstrui tutan preferatan paĝon aŭ profilan centron, kiun vi povas uzi.

Generi Nub-Paĝan Ligilon kun Abonaj Datumoj

Se vi vidas viajn Nubo-Paĝajn detalojn, vi povas akiri la unikan paĝan ID por la paĝo, kiun vi povas inkluzivi en viaj retpoŝtoj.

nuba paĝa identigilo

La sintakso estas jena:

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

AMPscript por Salesforce-Datumoj per Nubaj Paĝoj per Datumaj Etendaĵoj

La unua paŝo estas konstrui vian AMPscript por deklari variablojn kaj retrovi la datumojn de Salesforce por uzi en via paĝo. En ĉi tiu ekzemplo, mia Salesforce-bulea kampo, kiu enhavas la veran aŭ falsan, nomiĝas Elektita:

%%[

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

Nun vi povas krei vian HTML kaj formon, kiu prilaboras la peton:

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

Jen ... kunmetu ĉion kaj vi havas preferatan paĝon, kiu estas ĝisdatigita kun via abonanta rekordo kaj trapasas peton ĝisdatigi bulean kampon (vera / malvera) en Salesforce. Nun vi povas krei kutimajn demandojn ĉirkaŭ tiu kampo por ĉiam certigi, ke kontaktoj, kiuj estas malakceptitaj, ne sendas retpoŝton!

Kiel Plibonigi Vian Preferan Paĝon aŭ Profilan Centron

Kompreneble, ĉi tio estas nur teaser pri tio, kio eblas kun preferata paĝo. Plibonigoj, pri kiuj vi eble pensas:

  • Popolu la realan tekston de alia datuma etendo por ke via merkatista teamo povu ĝisdatigi la enhavon de la paĝo kiam ajn ili volus sen tuŝi la kodon.
  • Popolu publikigan listan datuman etendon kaj trarigardu la publikaĵojn por oferti elekton aŭ malakcepton de preferoj krom majstra malabono.
  • Enmetu kialan datuman etendon por kapti kial viaj abonantoj majstras malaboni.
  • Popolu aliajn profilajn informojn el la registrado de Salesforce por provizi aldonajn profilajn informojn.
  • Prilaboru la paĝon per Ajax, por ke vi povu senĝene plenigi ĝin.
  • Proponu rimedon por registriĝi, por ke via uzanto povu aliri sian propran profilcentron iam ajn.

Pliaj Rimedoj por AMPscript

Se vi serĉas plian helpon por lerni kaj disfaldi AMPscript, jen kelkaj bonaj rimedoj:

  • AMPscript Guide - organizita de iuj dungitoj de Salesforce, ĉi tio estas sufiĉe kompleta datumbazo de sintakso de AMPscript, kvankam la ekzemploj estas vere malpezaj. Se ĝi estus pli fortika, eble indus la investo.
  • Trailhead AMPscript - Salesforce's Trailhead estas senpaga lerna rimedo kaj povas marŝi vin tra la bazaĵoj de la lingvo per AMPscript, SSJS, kaj kiel ambaŭ povas interrilati.
  • Staka Interŝanĝo por Salesforce - bonega interreta komunumo por peti helpon kun amaso da AMPscript-kodaj specimenoj.

Estas multe da ŝanco integri viajn Cloud Pages kun Salesforce por doni superan sperton de uzanto. Kaj se via kompanio luktas, vi ĉiam povas kontakti nin por helpi!

kontakton Highbridge

Kion vi pensas?

Ĉi tiu retejo uzas Akismeton por redukti spamon. Lernu, kiel via komento datiĝas.