Content MarketingCRM og dataplattformerE-postmarkedsføring og automatisering

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

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 støtte, 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 var å jobbe med en intern skriptplattform som ville gjøre det mulig for kundene våre å legge til skript i e-postene sine. Jeg jobbet med en annen produktsjef, og vi gjorde massevis av research... bestemte oss til slutt for å utvikle en JQuery-tilnærming med våre egne funksjoner, men inkludert muligheten til å sende og konsumere arrays, bruke JSON osv. Det skulle bli ganske løsning ... til den treffer utvikling. Tidlig i produktsyklusen ble biblioteket mitt skrotet og en seniorutvikler erstattet det med AMPscript.

År senere, den Salesforce Partnerselskapet jeg er partner i, driver nå med komplekse bedriftsintegrasjoner, og jeg finner meg selv fast i AMPscript på daglig basis – enten det forbedrer e-postinnholdslogikken eller ruller ut Cloud Pages. Selvfølgelig, frustrasjonen ved å jobbe dag ut og dag inn med AMPscript sikrer meg at feil avgjørelse ble tatt på den tiden ... løsningen min ville vært langt mer elegant. Jeg føler at jeg er tilbake til å 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 bare 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 burde bruke den fordi den gir utrolig fleksibilitet.

Side notat: Det er en ny Cloud Page Erfaring… Hvor det ser ut til at de bare har flettet siden, og den gir ingen tilleggsinformasjon. Jeg liker faktisk den gamle versjonen bedre for flertrinns publiseringssekvensen.

Mens selskapet mitt DK New Media 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 Har valgt bort:

%%[

/* 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 alt sammen, og du har en preferanseside som er oppdatert med abonnentoppføringen din 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 til å lære og distribuere AMPscript, er det noen gode ressurser:

  • AMPscript-veiledning – 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 DK New Media

Douglas Karr

Douglas Karr er CMO for Åpne INSIGHTS og grunnleggeren av Martech Zone. Douglas har hjulpet dusinvis av vellykkede MarTech-startups, har bistått med due diligence på over 5 milliarder dollar i Martech-oppkjøp og -investeringer, og fortsetter å hjelpe selskaper med å implementere og automatisere salgs- og markedsføringsstrategier. Douglas er en internasjonalt anerkjent digital transformasjons- og MarTech-ekspert og foredragsholder. Douglas er også en publisert forfatter av en Dummies guide og en bok om lederskap for bedrifter.

Relaterte artikler

Tilbake til toppen-knappen
Lukke

Annonseblokkering oppdaget

Martech Zone er i stand til å gi deg dette innholdet uten kostnad fordi vi tjener penger på nettstedet vårt gjennom annonseinntekter, tilknyttede lenker og sponsing. Vi vil sette pris på om du vil fjerne annonseblokkeringen når du ser på nettstedet vårt.