Salesforce Marketing Cloud-voorkeurencentrum: AMPScript en Cloud Page-voorbeeld

Code voor voorkeurenpagina voor AMPscript Salesforce-geïntegreerde Marketing Cloud

Waargebeurd… mijn carrière is meer dan tien jaar geleden echt van de grond gekomen toen ik een positie begon als Integration Consultant voor ExactTarget (nu Salesforce Marketing Cloud). Mijn baan bracht me over de hele wereld om bedrijven te assisteren bij het ontwikkelen van diepe integraties met het platform en ik heb zoveel institutionele kennis van het platform opgebouwd dat ik werd gepromoveerd tot Product Manager.

De uitdagingen van Product Manager voor een organisatie die voorheen eigendom was van ontwikkelaars, brachten me er uiteindelijk toe om verder te gaan. Het was een geweldige organisatie, maar ik heb nooit echt eigendom het product. Dus terwijl mijn collega's op het gebied van ondersteuning, verkoop en productmarketing naar mij keken om een ​​echte verandering aan te brengen ... de realiteit was dat het ontwikkelingsteam vaak een andere oplossing implementeerde en dat ik er dagen voor de release achter kwam.

Een van mijn laatste projecten was het werken aan een intern scriptplatform waarmee onze klanten scripts aan hun e-mails konden toevoegen. Ik werkte met een andere productmanager en we hebben een hoop onderzoek gedaan ... uiteindelijk hebben we besloten om een ​​JQuery-achtige benadering te ontwikkelen met onze eigen functies, maar inclusief de mogelijkheid om arrays door te geven en te consumeren, JSON te gebruiken, enz. Het zou behoorlijk worden oplossing ... totdat het de ontwikkeling raakt. In het begin van de productcyclus werd mijn bibliotheek gesloopt en verving een senior ontwikkelaar deze door AMP-script.

Jaren later, de Salesforce-partner Het bedrijf waar ik een partner in ben, doet nu complexe, zakelijke integraties, en ik merk dat ik dagelijks vastzit in AMPscript - ofwel het verbeteren van de logica van e-mailinhoud of het uitrollen van Cloud Pages. Natuurlijk zorgt de frustratie van dag in dag uit werken met AMPscript ervoor dat ik in die tijd de verkeerde beslissing heb genomen ... mijn oplossing zou veel eleganter zijn geweest. Ik heb het gevoel dat ik weer een TRS-80 in BASIC programmeer.

De editor die u gebruikt voor Cloud Pages is meedogenloos. Het pikt geen eenvoudige problemen op, zoals het declareren van variabelen of syntaxisfouten met uw code. U kunt in feite een pagina publiceren die eenvoudig een 500-serverfout genereert. Er zijn ook twee naamvelden voor uw pagina's ... vraag me niet waarom.

Pro-tip: Als een Cloud Pages nooit voorbeeldgegevens retourneert wanneer u op het punt staat te publiceren en het lijkt erop dat deze voor altijd worden verwerkt ... dan geeft u een foutmelding. Als u toch publiceert, moet u waarschijnlijk de cloudpagina helemaal verwijderen en opnieuw beginnen. Ik vermoed dat de infrastructuur waarop het is gebouwd niet intelligent genoeg is om een ​​codewijziging te identificeren en gewoon de cachecode blijft verwerken.

Afgezien daarvan zult u blij zijn te weten dat veel van de gedocumenteerde codevoorbeelden hun eigen syntaxisfouten hebben. Ja! Het is een vreselijke ervaring ... maar je kunt het nog steeds en moet het gebruiken omdat het een verbazingwekkende flexibiliteit biedt.

Kanttekening: Er is een nieuwe Cloud-pagina Ervaring… Waar het lijkt alsof ze de pagina net opnieuw hebben ontworpen en er geen aanvullende informatie op staat. Ik vind de oude versie eigenlijk beter voor de publicatie in meerdere stappen.

Terwijl mijn bedrijf Highbridge bouwt complexe, voor Ajax geschikte oplossingen uit die meerdere systemen integreren en gegevensextensies integreren met AMPscript, SSJS, Cloud Pages en e-mail ... Ik wilde een eenvoudig voorbeeld geven van hoe u eenvoudig aan de slag kunt gaan met het gebruik van AMPscript om uw Salesforce-instantie te doorzoeken en gegevens terug. In dit geval een eenvoudig booleaans veld dat een master-uitschrijfvlag behoudt. U kunt deze code natuurlijk uitbreiden om een ​​volledige voorkeurenpagina of profielcentrum op te bouwen dat u kunt gebruiken.

Genereer een Cloud-Page Link met abonneegegevens

Als u uw Cloud Page-gegevens bekijkt, kunt u de unieke pagina-ID voor de pagina verkrijgen die u in uw e-mails kunt opnemen.

cloudpagina-id

De syntaxis is als volgt:

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

AMPscript voor Salesforce-gegevens via cloudpagina's via gegevensextensies

De eerste stap is het bouwen van uw AMPscript om variabelen te declareren en de gegevens uit Salesforce op te halen om op uw pagina te gebruiken. In dit voorbeeld heeft mijn Salesforce booleaanse veld de naam true of false Afgemeld:

%%[

/* 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 kunt u uw HTML en formulier opbouwen dat het verzoek verwerkt:

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

Dat is alles… zet het allemaal bij elkaar en u hebt een voorkeurenpagina die is bijgewerkt met uw abonnementsrecord en een verzoek doorgeeft om een ​​booleaans veld (true / false) bij te werken in Salesforce. Nu kunt u aangepaste zoekopdrachten rond dat veld maken om er altijd voor te zorgen dat contactpersonen die zijn afgemeld, geen e-mail ontvangen!

Hoe u uw voorkeurenpagina of profielcentrum kunt verbeteren

Dit is natuurlijk slechts een voorproefje van wat er mogelijk is met een voorkeurenpagina. Verbeteringen waar u misschien aan wilt denken:

  • Vul de daadwerkelijke tekst van een andere gegevensextensie in, zodat uw marketingteam de inhoud van de pagina kan bijwerken wanneer ze maar willen zonder de code aan te raken.
  • Vul een gegevensextensie voor een publicatielijst in en loop door de publicaties om naast een master-uitschrijving ook opt-in of opt-out voor voorkeuren aan te bieden.
  • Vul een reden-gegevensextensie in om vast te leggen waarom uw abonnees de master uitschrijven.
  • Vul andere profielinformatie uit het Salesforce-record in om aanvullende profielinformatie op te geven.
  • Verwerk de pagina met Ajax zodat u deze naadloos kunt vullen.
  • Bied een registratiemiddel aan, zodat uw gebruiker op elk moment toegang heeft tot zijn persoonlijke profielcentrum.

Aanvullende bronnen voor AMPscript

Als u wat extra hulp zoekt bij het leren en implementeren van AMPscript, vindt u hier enkele geweldige bronnen:

  • AMPscript-handleidinge - georganiseerd door sommige Salesforce-medewerkers, dit is een behoorlijk complete database van AMPscript-syntaxis, hoewel de voorbeelden erg licht zijn. Als het robuuster was, zou het de investering waard kunnen zijn.
  • Trailhead AMP-script - Trailhead van Salesforce is een gratis leermiddel en kan u door de basisprincipes van de taal leiden met zowel AMPscript, SSJS en hoe de twee kunnen communiceren.
  • Stack Exchange voor Salesforce - een geweldige online community voor het aanvragen van hulp bij een heleboel AMPscript-codevoorbeelden.

Er zijn enorm veel mogelijkheden om uw Cloud Pages te integreren met Salesforce om een ​​superieure gebruikerservaring te bieden. En als uw bedrijf het moeilijk heeft, kunt u altijd contact met ons opnemen om te helpen!

Contact Highbridge

Wat denk je?

Deze site gebruikt Akismet om spam te verminderen. Ontdek hoe uw reactiegegevens worden verwerkt.