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

AMPscript Salesforce-integreret Marketing Cloud-præferencesidekode

Sand historie ... min karriere startede virkelig for over et årti siden, da jeg startede en stilling som integrationskonsulent for ExactTarget (nu Salesforce Marketing Cloud). Mit job tog mig over hele verden med at hjælpe virksomheder med at udvikle dybe integrationer med platformen, og jeg opbyggede så meget institutionel viden om platformen, at jeg blev forfremmet til Product Manager.

Product Manager's udfordringer for en organisation, der tidligere var udvikler-ejet, fik mig til sidst til at komme videre. Det var en fantastisk organisation, men det gjorde jeg aldrig rigtig ejede produktet. Så mens mine kolleger inden for support, salg og produktmarkedsføring så ud til mig at foretage en reel ændring ... virkeligheden var, at udviklingsteamet ofte implementerede en anden løsning, og jeg ville finde ud af det dage før frigivelsen.

Et af mine sidste projekter arbejdede på en intern scriptingsplatform, der gjorde det muligt for vores kunder at føje script til deres e-mails. Jeg arbejdede med en anden Product Manager, og vi undersøgte masser af ... til sidst besluttede vi at udvikle en JQuery-stil tilgang med vores egne funktioner, men med evnen til at videregive og forbruge arrays, bruge JSON osv. Det skulle være helt det løsning ... indtil den ramte udviklingen. Tidligt i produktcyklussen blev mit bibliotek skrottet, og en seniorudvikler erstattede det med AMPscript.

År senere blev den Salesforce-partner Virksomhed, som jeg er partner i, udfører nu komplekse virksomhedsintegrationer, og jeg befinder mig i AMPscript dagligt - enten ved at forbedre e-mail-indholdslogikken eller udrulning af Cloud Pages. Frustrationen ved at arbejde dag ud og dag ind med AMPscript sikrer mig selvfølgelig, at den forkerte beslutning blev taget tilbage i disse dage ... min løsning ville have været langt mere elegant. Jeg føler, at jeg er tilbage til at programmere en TRS-80 i BASIC.

Editoren, du bruger til Cloud Pages, er tilgivende. Det fanger ikke enkle problemer som at erklære variabler eller syntaksfejl med din kode. Faktisk kan du faktisk udgive en side, der simpelthen genererer en 500 serverfejl. Der er også to navngivningsfelter til dine sider ... spørg mig ikke hvorfor.

Pro-tip: Hvis en Cloud Pages aldrig returnerer eksempeldata, når du er ved at offentliggøre, og det ser ud til, at de behandles for evigt ... vil du kaste en fejl. Hvis du alligevel udgiver, bliver du sandsynligvis nødt til at slette Cloud-siden helt og starte forfra. Mit gæt er, at infrastrukturen, som den er bygget på, ikke er intelligent nok til at identificere en kodeændring og bare fortsætter med at behandle den cachelagrede kode.

Bortset fra det vil du være glad for at vide, at mange af de dokumenterede kodeeksempler har deres egne syntaksfejl. Yay! Det er en forfærdelig oplevelse ... men du kan stadig og bør bruge den, fordi den giver en utrolig fleksibilitet.

Side note: Der er en ny Cloud-side Erfaring… Hvor det ser ud til, at de lige har flået siden ud, og den ikke giver yderligere oplysninger. Jeg kan faktisk godt lide den gamle version bedre til udgivelsessekvensen i flere trin.

Mens mit firma Highbridge bygger komplekse Ajax-aktiverede løsninger, der integrerer flere systemer og inkorporerer dataudvidelser med AMPscript, SSJS, Cloud Pages og e-mail ... Jeg ville dele et simpelt eksempel på, hvordan du kan komme i gang ved blot at bruge AMPscript til at forespørge din Salesforce-forekomst og trække tilbage data. I dette tilfælde et simpelt boolsk felt, der bevarer et master-afmeldingsflag. Du kan selvfølgelig udvide denne kode til at opbygge en hel præferenceside eller et profilcenter, som du kan bruge.

Generer et Cloud-Page-link med abonnentdata

Hvis du ser dine Cloud-sideoplysninger, kan du erhverve det unikke side-id til den side, som du kan medtage i dine e-mails.

sky side-id

Syntaxen er som følger:

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

AMPscript til Salesforce-data via Cloud-sider via dataudvidelser

Det første trin er at opbygge dit AMPscript til at erklære variabler og hente dataene fra Salesforce, der skal bruges på din side. I dette eksempel navngives mit Salesforce-boolske felt, der indeholder sandt eller falskt Fravalgt:

%%[

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

Nu kan du opbygge din HTML og form, der behandler anmodningen:

<!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 ... læg det hele sammen, og du har en præferenceside, der er opdateret med din abonnentpost og sender en anmodning om at opdatere et boolesk felt (sand / falsk) i Salesforce. Nu kan du oprette tilpassede forespørgsler omkring dette felt for altid at sikre, at kontakter, der er fravalgt, ikke sendes nogen e-mail!

Sådan forbedres din præferenceside eller profilcenter

Selvfølgelig er dette kun en teaser af, hvad der er muligt med en præferenceside. Forbedringer, du måske ønsker at tænke over:

  • Udfyld den faktiske tekst fra en anden dataudvidelse, så dit marketingteam kan opdatere indholdet på siden, når som helst, uden at røre ved koden.
  • Befolk en publikationsliste dataudvidelse og løb gennem publikationerne for at tilbyde opt-in eller opt-out for præferencer ud over en master-afmelding.
  • Udfyld en årsag til dataudvidelse for at registrere, hvorfor dine abonnenter mestrer afmeldingen.
  • Udfyld andre profiloplysninger fra Salesforce-posten for at give yderligere profiloplysninger.
  • Behandl siden med Ajax, så du problemfrit kan udfylde den.
  • Tilby et registreringsmiddel, så din bruger til enhver tid kan få adgang til deres personlige profilcenter.

Yderligere ressourcer til AMPscript

Hvis du søger yderligere hjælp til at lære og implementere AMPscript, er der nogle gode ressourcer:

  • AMPscript -vejledninge - organiseret af nogle Salesforce-medarbejdere, er dette en ret komplet database med AMPscript-syntaks, selvom eksemplerne virkelig er lette. Hvis det var mere robust, kunne det være værd at investere.
  • Trailhead AMPscript - Salesforce's Trailhead er en gratis læringsressource og kan lede dig gennem det grundlæggende i sproget med både AMPscript, SSJS, og hvordan de to kan interagere.
  • Stack Exchange til Salesforce - et fantastisk online community til at anmode om hjælp med et ton af AMPscript-kodeeksempler.

Der er masser af muligheder for at integrere dine Cloud Pages med Salesforce for at give en overlegen brugeroplevelse. Og hvis din virksomhed kæmper, kan du altid kontakte os for at hjælpe!

Kontakt Highbridge

Hvad mener du?

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.