Salesforce Marketing Cloud Preferance Center: Halimbawa ng AMPScript at Cloud Page

Code ng Pahina ng Kagustuhan sa Cloud na isinama ng Salesforce-Integrated Marketing Cloud

Totoong kwento ... ang aking karera talagang tumagal ng higit sa isang dekada na ang nakakaraan nang magsimula ako ng isang posisyon bilang isang Pagsasama ng Konsulta para sa ExactTarget (ngayon ay Salesforce Marketing Cloud). Dinala ako ng aking trabaho sa buong mundo sa pagtulong sa mga kumpanya sa pagbuo ng malalim na pagsasama sa platform at binuo ko ang labis na kaalamang pang-institusyon ng platform na naitaas ako sa Product Manager.

Ang mga hamon ng Product Manager para sa isang samahan na dating pagmamay-ari ng developer sa huli ay humantong sa akin na magpatuloy. Ito ay isang mahusay na samahan, ngunit hindi ko talaga ito tunay pag-aari ang produkto. Kaya, habang ang aking mga kasamahan sa suporta, benta, at marketing ng produkto ay tumingin sa akin upang makagawa ng isang tunay na pagbabago ... ang totoo ay ang koponan sa pag-unlad ay madalas na nagpatupad ng ibang solusyon at malalaman ko ang mga araw bago ang paglabas.

Ang isa sa aking huling mga proyekto ay nagtatrabaho sa isang panloob na platform ng scripting na magbibigay-daan sa aming mga customer na magdagdag ng script sa kanilang mga email. Nakipagtulungan ako sa isa pang Product Manager at gumawa kami ng isang tonelada ng pagsasaliksik ... kalaunan ay nagpapasya na bumuo ng isang diskarteng estilo ng JQuery kasama ang aming sariling mga function, ngunit kasama ang kakayahang pumasa at ubusin ang mga array, magamit ang JSON, atbp. Ito ay magiging solusyon ... hanggang sa maabot ang pag-unlad. Maaga sa pag-ikot ng produkto, ang aking silid-aklatan ay nawasak at pinalitan ito ng isang senior developer AMPscript.

Makalipas ang maraming taon, ang Kasosyo sa Salesforce Ang kumpanya na kasosyo ko ngayon ay gumagawa ng kumplikado, pagsasama ng enterprise, at nahanap ko ang aking sarili na naka-mires sa AMPscript sa araw-araw - alinman sa pagpapahusay ng lohika sa nilalaman ng email o paglabas ng Cloud Page. Siyempre, ang pagkabigo ng araw-araw na pagtatrabaho kasama ang AMPscript ay tinitiyak sa akin na ang maling desisyon ay naibalik noong mga panahong iyon ... ang aking solusyon ay magiging mas matikas. Nararamdaman kong bumalik ako sa pagprograma ng isang TRS-80 sa BASIC.

Ang editor na iyong ginamit para sa Cloud Page ay hindi mapagpatawad. Hindi nito nahuhuli ang mga simpleng isyu tulad ng pagdedeklara ng mga variable o error sa syntax sa iyong code. Sa katunayan, maaari mo talagang mai-publish ang isang pahina na simpleng makakabuo ng isang 500 error sa server. Mayroon ding dalawang mga patlang ng pagbibigay ng pangalan para sa iyong mga pahina ... huwag mo akong tanungin kung bakit.

Pro-tip: Kung ang isang Cloud na Pahina ay hindi na nagbalik ng sample na data kung malapit ka nang mai-publish at mukhang nagpoproseso ito magpakailanman ... magtatapon ka ng isang error. Kung nag-publish ka ng anumang paraan, malamang na kakailanganin mong i-delete ang Cloud Page nang kabuuan at magsimula muli. Ang hulaan ko ay ang imprastraktura na itinayo nito ay hindi sapat na matalino upang makilala ang isang pagbabago ng code at patuloy na pinoproseso ang naka-cache na code.

Bukod sa na, matutuwa kang malaman ang marami sa mga naka-dokumento na sample ng code ay may kani-kanilang mga error sa syntax. Yay! Ito ay isang kakila-kilabot na karanasan ... ngunit maaari mo pa rin at dapat gamitin ito dahil nagbibigay ito ng ilang kamangha-manghang kakayahang umangkop.

Gilid ng tala: Mayroong isang bagong Pahina ng Cloud karanasan… Kung saan tila muling binasahin nila ang pahina at hindi ito nagbibigay ng anumang karagdagang impormasyon. Talagang ginusto ko ang lumang bersyon ng mas mahusay para sa pagkakasunud-sunod ng multi-step na pag-publish.

Habang ang kumpanya ko Highbridge bumubuo ng mga kumplikadong, solusyon na pinagana ng Ajax na nagsasama ng maraming mga system at isinasama ang mga extension ng data sa AMPscript, SSJS, Cloud Page, at email ... Nais kong magbahagi ng isang simpleng halimbawa ng kung paano ka makapagsisimula sa simpleng paggamit ng AMPscript upang tanungin ang iyong halimbawa ng Salesforce at hilahin back data. Sa kasong ito, isang simpleng patlang ng boolean na nagpapanatili ng isang master na mag-unsubscribe flag. Maaari mong, syempre, palawakin ang code na ito upang makabuo ng isang buong pahina ng kagustuhan o profile center na maaari mong gamitin.

Bumuo ng Isang Cloud-Page Link na may Data ng Subscriber

Kung titingnan mo ang iyong mga detalye sa Cloud Page, maaari kang makakuha ng natatanging ID ng pahina para sa pahina na maaari mong isama sa iyong mga email.

cloud page id

Ang syntax ay ang mga sumusunod:

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

Ang AMPscript para sa Data ng Salesforce sa pamamagitan ng Mga Pahina ng Cloud sa pamamagitan ng Mga Extension ng Data

Ang unang hakbang ay ang pagbuo ng iyong AMPscript upang magdeklara ng mga variable at kunin ang data mula sa Salesforce na gagamitin sa iyong pahina. Sa halimbawang ito, ang aking patlang ng Salesforce boolean na nagtataglay ng totoo o hindi ay pinangalanan Nag-opt Out:

%%[

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

Maaari mo nang buuin ang iyong HTML at form na nagpoproseso ng kahilingan:

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

Iyon lang ... pagsamahin ang lahat at mayroon kang isang pahina ng kagustuhan na na-update sa iyong tala ng subscriber at ipinasa ang isang kahilingan upang i-update ang isang boolean field (totoo / hindi totoo) sa Salesforce. Ngayon ay maaari kang bumuo ng mga pasadyang query sa paligid ng patlang na iyon upang laging matiyak na ang mga contact na na-opt out ay hindi pinadalhan ng anumang email!

Paano Mapahusay ang Iyong Pahina ng Kagustuhan o Profile Center

Siyempre, ito ay isang teaser lamang kung ano ang posible sa isang pahina ng kagustuhan. Mga pagpapahusay na maaari mong isipin:

  • Populate ang totoong teksto mula sa isa pang extension ng data upang ma-update ng iyong koponan sa marketing ang nilalaman ng pahina kahit kailan nila gusto nang hindi hinawakan ang code.
  • Populate isang extension ng data ng listahan ng publication at loop sa pamamagitan ng mga publication upang mag-alok ng pag-opt in o pag-opt out sa mga kagustuhan bilang karagdagan sa isang master na mag-unsubscribe.
  • Populate isang dahilan ng extension ng data upang makuha kung bakit ang iyong mga subscriber ay master na mag-unsubscribe.
  • Populate ang iba pang impormasyon sa profile mula sa tala ng Salesforce upang magbigay ng karagdagang impormasyon sa profile.
  • Iproseso ang pahina gamit ang Ajax upang maaari mong maayos itong i-populate.
  • Nag-aalok ng isang paraan ng pagpaparehistro upang ma-access ng iyong gumagamit ang kanilang personal na sentro ng profile sa anumang oras.

Karagdagang Mga Mapagkukunan para sa AMPscript

Kung naghahanap ka ng ilang karagdagang tulong para sa pag-aaral at pag-deploy ng AMPscript, narito ang isang mahusay na mapagkukunan:

  • Patnubay sa AMPscripte - inayos ng ilang empleyado ng Salesforce, ito ay isang medyo kumpletong database ng syntax ng AMPscript, bagaman ang mga halimbawa ay talagang magaan. Kung mas matatag ito, maaaring sulit ang pamumuhunan.
  • Trailhead AMPscript - Ang Salesforce's Trailhead ay isang libreng mapagkukunan sa pag-aaral at maaari kang lakarin sa mga pangunahing kaalaman ng wika sa parehong AMPscript, SSJS, at kung paano makikipag-ugnay ang dalawa.
  • Stack Exchange para sa Salesforce - isang mahusay na online na komunidad para sa paghingi ng tulong sa isang toneladang mga sample ng code ng AMPscript.

Mayroong isang tonelada ng pagkakataon sa pagsasama ng iyong Mga Pahina sa Cloud sa Salesforce upang magbigay ng isang higit na mataas na karanasan ng gumagamit. At kung nahihirapan ang iyong kumpanya, maaari mo kaming laging makipag-ugnay upang tumulong!

Makipag-ugnay sa Highbridge

Ano sa tingin ninyo?

Ang site na ito ay gumagamit ng Akismet upang mabawasan ang spam. Alamin kung paano naproseso ang data ng iyong komento.