Content MarketingCRM och dataplattformarE-postmarknadsföring och automation

Salesforce Marketing Cloud Preference Center: Exempel på AMPScript och Cloud Page

Sann historia ... min karriär tog verkligen fart för över ett decennium sedan när jag började en position som en integrationskonsult för ExactTarget (nu Salesforce Marketing Cloud). Mitt jobb tog mig över hela världen med att hjälpa företag att utveckla djupa integrationer med plattformen och jag byggde upp så mycket institutionell kunskap om plattformen att jag blev befordrad till produktchef.

Produktchefens utmaningar för en organisation som tidigare ägdes av utvecklare fick mig så småningom att gå vidare. Det var en fantastisk organisation, men jag gjorde det aldrig riktigt ägd produkten. Så medan mina kamrater inom support, försäljning och produktmarknadsföring såg för mig att göra en verklig förändring ... verkligheten var att utvecklingsteamet ofta implementerade en annan lösning och jag skulle ta reda på det några dagar före lanseringen.

Ett av mina senaste projekt var att arbeta med en intern skriptplattform som skulle göra det möjligt för våra kunder att lägga till skript i sina e-postmeddelanden. Jag arbetade med en annan produktchef och vi gjorde massor av research... bestämde oss så småningom för att utveckla en JQuery-stil med våra egna funktioner, men inklusive möjligheten att skicka och konsumera arrayer, använda JSON, etc. Det skulle bli ganska lösning... tills den kom i utveckling. Tidigt i produktcykeln skrotades mitt bibliotek och en senior utvecklare ersatte det med AMPscript.

År senare, Salesforce Partnerföretag som jag är partner i gör nu komplexa företagsintegrationer, och jag känner mig fast i AMPscript dagligen – antingen för att förbättra logiken för e-postinnehåll eller rulla ut Cloud Pages. Naturligtvis säkerställer frustrationen av att arbeta dag ut och dag in med AMPscript mig att fel beslut togs på den tiden... min lösning skulle ha varit mycket mer elegant. Jag känner att jag är tillbaka till att programmera en TRS-80 i BASIC.

Redigeraren som du använder för Cloud Pages är oförlåtlig. Det fångar inte enkla problem som att deklarera variabler eller syntaxfel med din kod. Faktum är att du faktiskt kan publicera en sida som helt enkelt genererar ett 500-serverfel. Det finns också två namnfält för dina sidor ... fråga mig inte varför.

Proffstips: Om en Cloud Pages aldrig returnerar exempeldata när du ska publicera och det ser ut som om det bearbetas för alltid ... kommer du att kasta ett fel. Om du publicerar hur som helst måste du antagligen ta bort molnsidan helt och börja om. Min gissning är att infrastrukturen som den bygger på inte är tillräckligt intelligent för att identifiera en kodändring och bara fortsätter att bearbeta den cachade koden.

Bortsett från det kommer du att vara glad att veta att många av de dokumenterade kodproverna har sina egna syntaxfel. Jippie! Det är en hemsk upplevelse ... men du kan fortfarande och borde använda den eftersom den ger en fantastisk flexibilitet.

Sidnot: Det finns en ny molnsida Erfarenhet av att... där det ser ut som om de bara flätat ut sidan och det ger ingen ytterligare information. Jag gillar faktiskt den gamla versionen bättre för publiceringssekvensen i flera steg.

Medan mitt företag DK New Media bygger ut komplexa, Ajax-aktiverade lösningar som integrerar flera system och integrerar datatillägg med AMPscript, SSJS, Cloud Pages och e-post ... Jag ville dela ett enkelt exempel på hur du kan komma igång genom att helt enkelt använda AMPscript för att fråga din Salesforce-instans och dra tillbaka data. I det här fallet, ett enkelt booleskt fält som behåller en master-avregistreringsflagga. Du kan naturligtvis utöka den här koden för att bygga ut en hel preferenssida eller profilcenter som du kan använda.

Skapa en molnsideslänk med prenumerantdata

Om du visar informationen om molnsidan kan du skaffa det unika sid-ID för sidan som du kan inkludera i dina e-postmeddelanden.

molnsid-id

Syntaxen är som följer:

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

AMPscript för Salesforce-data via molnsidor via datatillägg

Det första steget är att bygga ditt AMPscript för att deklarera variabler och hämta data från Salesforce som ska användas på din sida. I det här exemplet heter mitt Salesforce-booleska fält som innehåller sant eller falskt Valt 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
 
]%%

Nu kan du bygga ut din HTML och formulär som behandlar begäran:

<!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 är det ... lägg allt ihop och du har en preferenssida som uppdateras med din prenumerantpost och skickar en begäran om att uppdatera ett booleskt fält (true / false) i Salesforce. Nu kan du bygga anpassade frågor runt det fältet för att alltid se till att kontakter som är borttagna inte skickas något e-postmeddelande!

Hur du förbättrar din preferenssida eller profilcenter

Naturligtvis är det här bara en teaser av vad som är möjligt med en preferenssida. Förbättringar du kanske vill tänka på:

  • Befolka den faktiska texten från ett annat datatillägg så att ditt marknadsföringsteam kan uppdatera innehållet på sidan när de vill utan att röra vid koden.
  • Populera en dataförlängning för en publikationslista och bläddra igenom publikationerna för att erbjuda opt-in eller opt-out på preferenser förutom en master-prenumeration.
  • Fyll i en anledning till tillägg för att fånga upp varför dina prenumeranter mastrar prenumerationen.
  • Populera annan profilinformation från Salesforce-posten för att tillhandahålla ytterligare profilinformation.
  • Bearbeta sidan med Ajax så att du kan fylla den sömlöst.
  • Erbjud ett registreringsmedel så att din användare när som helst kan komma åt sitt personliga profilcenter.

Ytterligare resurser för AMPscript

Om du söker ytterligare hjälp för att lära dig och distribuera AMPscript, här är några bra resurser:

  • AMPscript-guide – organiserat av några Salesforce-anställda är detta en ganska komplett databas med AMPscript-syntax, även om exemplen är riktigt lätta. Om det var mer robust, kan det vara värt investeringen.
  • Trailhead AMPscript - Salesforces Trailhead är en gratis inlärningsresurs och kan gå igenom språkets grunder med både AMPscript, SSJS och hur de två kan interagera.
  • Stack Exchange för Salesforce - en fantastisk online-community för att begära hjälp med massor av AMPscript-kodprover.

Det finns massor av möjligheter att integrera dina molnsidor med Salesforce för att ge en överlägsen användarupplevelse. Och om ditt företag kämpar kan du alltid kontakta oss för att hjälpa!

Kontakta oss DK New Media

Douglas Karr

Douglas Karr är CMO för Öppna INSIGHTS och grundaren av Martech Zone. Douglas har hjälpt dussintals framgångsrika MarTech-startups, har hjälpt till med due diligence på över $5 miljarder i Martech-förvärv och investeringar, och fortsätter att hjälpa företag att implementera och automatisera sina försäljnings- och marknadsföringsstrategier. Douglas är en internationellt erkänd digital transformations- och MarTech-expert och talare. Douglas är också en publicerad författare till en Dummies guide och en bok om företagsledarskap.

Relaterade artiklar

Tillbaka till toppen knappen
Stänga

Adblock upptäckt

Martech Zone kan ge dig detta innehåll utan kostnad eftersom vi tjänar pengar på vår webbplats genom annonsintäkter, affiliate-länkar och sponsring. Vi skulle uppskatta om du tar bort din annonsblockerare när du tittar på vår webbplats.