Salesforce Marketing Cloud Preferences Center: Eksempel på AMPScript og Cloud Page

AMPscript Salesforce-integrert markedsskydepreferansesidekode

Sann historie ... karrieren min tok virkelig av for over ti år siden da jeg startet en stilling som integrasjonskonsulent for ExactTarget (nå Salesforce Marketing Cloud). Jobben min tok meg over hele verden med å hjelpe selskaper med å utvikle dype integrasjoner med plattformen, og jeg bygde opp så mye institusjonell kunnskap om plattformen at jeg ble promotert til Product Manager.

Utfordringene til Product Manager for en organisasjon som tidligere var utvikler-eid, førte til slutt til at jeg gikk videre. Det var en flott organisasjon, men det gjorde jeg aldri eide produktet. Så mens mine kolleger innen support, salg og produktmarkedsføring så for meg å gjøre en reell forandring ... virkeligheten var at utviklingsteamet ofte implementerte en annen løsning, og jeg ville finne ut dager før utgivelsen.

Et av mine siste prosjekter arbeidet med en intern skriptplattform som gjorde det mulig for kundene våre å legge til skript i e-postene sine. Jeg jobbet med en annen produktsjef, og vi gjorde massevis av undersøkelser ... til slutt bestemte vi oss for å utvikle en JQuery-stil tilnærming med våre egne funksjoner, men inkludert muligheten til å passere og konsumere matriser, bruke JSON osv. Det skulle bli ganske løsning ... til den traff utviklingen. Tidlig i produktsyklusen ble biblioteket mitt skrotet, og en seniorutvikler erstattet det med AMPscript.

År senere, den Salesforce-partner firmaet jeg er en partner i, gjør nå komplekse virksomhetsintegrasjoner, og jeg befinner meg i AMPscript på daglig basis - enten forbedrer e-postinnholdslogikken eller lanserer Cloud Pages. Selvfølgelig sørger frustrasjonen over å jobbe dag ut og dag inn med AMPscript meg for at feil beslutning ble tatt tilbake i disse dager ... løsningen min hadde vært langt mer elegant. Jeg føler at jeg er tilbake for å programmere en TRS-80 i BASIC.

Editoren du bruker til Cloud Pages, er utilgivelig. Det fanger ikke enkle problemer som å erklære variabler eller syntaksfeil med koden din. Faktisk kan du faktisk publisere en side som ganske enkelt vil generere en 500 serverfeil. Det er også to navngivningsfelt for sidene dine ... ikke spør meg hvorfor.

Pro-tip: Hvis en Cloud Pages aldri returnerer eksempeldata når du skal publisere, og det ser ut til at den behandles for alltid ... kommer du til å kaste en feil. Hvis du publiserer uansett, må du sannsynligvis slette Cloud Page helt og starte på nytt. Jeg antar at infrastrukturen den er bygd på ikke er intelligent nok til å identifisere en kodeendring, og bare fortsetter å behandle den hurtigbufrede koden.

Bortsett fra det, vil du være glad for å vite at mange av de dokumenterte kodeprøvene har sine egne syntaksfeil. Jippi! Det er en fryktelig opplevelse ... men du kan fortsatt og bør bruke den fordi den gir utrolig fleksibilitet.

Side notat: Det er en ny Cloud Page Erfaring… Hvor det ser ut til at de nettopp har flettet siden og det ikke gir ytterligere informasjon. Jeg liker faktisk den gamle versjonen bedre for flertrinns publiseringssekvens.

Mens selskapet mitt Highbridge bygger komplekse, Ajax-aktiverte løsninger som integrerer flere systemer og inkorporerer datautvidelser med AMPscript, SSJS, Cloud Pages og e-post ... Jeg ønsket å dele et enkelt eksempel på hvordan du kan komme i gang ved å bare bruke AMPscript for å spørre om din Salesforce-forekomst og trekke tilbake data. I dette tilfellet et enkelt boolsk felt som beholder et master-avmeldingsflagg. Du kan selvfølgelig utvide denne koden for å bygge ut en hel preferanseside eller et profilsenter som du kan bruke.

Generer en nettsidekobling med abonnentdata

Hvis du ser informasjonen på nettskyen din, kan du skaffe den unike side-ID-en for siden du kan inkludere i e-postene dine.

skyside-id

Syntaksen er som følger:

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

AMPscript for Salesforce -data via skysider via datautvidelser

Det første trinnet er å bygge AMPscript for å erklære variabler og hente dataene fra Salesforce som skal brukes på siden din. I dette eksemplet får jeg navnet mitt Salesforce-boolske felt som inneholder sant eller usant OptedOut:

%%[

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

Nå kan du bygge ut HTML og skjema som behandler forespørselen:

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

Det er det ... legg det hele sammen, og du har en preferanseside som er oppdatert med abonnentposten og sender en forespørsel om å oppdatere et boolsk felt (true / false) i Salesforce. Nå kan du bygge tilpassede spørsmål rundt det feltet for alltid å sikre at kontakter som er valgt ikke blir sendt noen e-post!

Hvordan forbedre preferansesiden eller profilsenteret

Selvfølgelig er dette bare en teaser av hva som er mulig med en preferanseside. Forbedringer du kanskje vil tenke på:

  • Fyll den faktiske teksten fra en annen datautvidelse slik at markedsføringsteamet ditt kan oppdatere innholdet på siden når de vil uten å berøre koden.
  • Befolk en utvidelse av publikasjonslister, og bla gjennom publikasjonene for å tilby opt-in eller opt-out på preferanser i tillegg til en masteravmelding.
  • Fyll ut en års datautvidelse for å fange opp hvorfor abonnentene dine melder seg fra.
  • Fyll ut annen profilinformasjon fra Salesforce-posten for å gi ytterligere profilinformasjon.
  • Behandle siden med Ajax slik at du kan fylle den sømløst.
  • Tilby et registreringsmiddel slik at brukeren din når som helst kan få tilgang til sitt personlige profilsenter.

Tilleggsressurser for AMPscript

Hvis du søker ekstra hjelp for å lære og distribuere AMPscript, er det noen gode ressurser:

  • AMPscript -veiledninge - organisert av noen Salesforce-ansatte, er dette en ganske komplett database med AMPscript-syntaks, selv om eksemplene er veldig lette. Hvis det var mer robust, kan det være verdt investeringen.
  • Trailhead AMPscript - Salesforce's Trailhead er en gratis læringsressurs og kan lede deg gjennom det grunnleggende i språket med både AMPscript, SSJS, og hvordan de to kan samhandle.
  • Stack Exchange for Salesforce - et flott nettsamfunn for å be om hjelp med massevis av AMPscript-kodeeksempler.

Det er mange muligheter i å integrere Cloud Pages med Salesforce for å gi en overlegen brukeropplevelse. Og hvis firmaet ditt sliter, kan du alltid kontakte oss for å hjelpe deg!

Kontakt Highbridge

Hva tror du?

Dette nettstedet bruker Akismet for å redusere spam. Lær hvordan kommentaren din behandles.