Centrum preferencji Salesforce Marketing Cloud: AMPScript i przykład strony w chmurze

Kod strony preferencji AMPscript Salesforce Integrated Marketing Cloud

Prawdziwa historia… moja kariera nabrała rozpędu ponad dekadę temu, kiedy rozpocząłem pracę jako konsultant ds. Integracji w ExactTarget (obecnie Salesforce Marketing Cloud). Moja praca zabrała mnie na cały świat, pomagając firmom w rozwijaniu głębokiej integracji z platformą i zdobyłem tak dużą wiedzę instytucjonalną o platformie, że awansowałem na stanowisko Product Managera.

Wyzwania kierownika produktu dla organizacji, która wcześniej należała do programistów, ostatecznie skłoniły mnie do przejścia dalej. To była świetna organizacja, ale tak naprawdę nigdy własność produkt. Tak więc, podczas gdy moi rówieśnicy z działu wsparcia, sprzedaży i marketingu produktów oczekiwali, żebym dokonał prawdziwej zmiany… rzeczywistość była taka, że ​​zespół programistów często wdrażał inne rozwiązanie, o czym dowiedziałem się na kilka dni przed premierą.

Jednym z ostatnich moich projektów była praca nad wewnętrzną platformą skryptową, która umożliwiłaby naszym klientom dodawanie skryptów do ich e-maili. Pracowałem z innym menedżerem produktu i przeprowadziliśmy mnóstwo badań… ostatecznie zdecydowaliśmy się opracować podejście w stylu JQuery z naszymi własnymi funkcjami, ale w tym możliwość przekazywania i konsumowania tablic, wykorzystywania JSON itp. To będzie całkiem niezłe rozwiązanie… dopóki nie trafi w fazę rozwoju. Na początku cyklu produktu moja biblioteka została wyrzucona, a starszy programista zastąpił ją AMPscript.

Wiele lat później Partner Salesforce Firma, w której jestem partnerem, przeprowadza teraz złożone, korporacyjne integracje i na co dzień pogrążam się w AMPscript - ulepszając logikę treści e-maili lub wdrażając Cloud Pages. Oczywiście frustracja związana z codzienną pracą z AMPscript zapewnia mi, że w tamtych czasach podjęto złą decyzję… moje rozwiązanie byłoby znacznie bardziej eleganckie. Czuję, że wróciłem do programowania TRS-80 w języku BASIC.

Edytor, którego używasz w Cloud Pages, jest bezlitosny. Nie wyłapuje prostych problemów, takich jak deklarowanie zmiennych lub błędy składniowe w kodzie. W rzeczywistości możesz opublikować stronę, która po prostu wygeneruje błąd serwera 500. Istnieją również dwa pola na nazwy Twoich stron… nie pytaj mnie dlaczego.

Pro-tip: Jeśli Cloud Pages nigdy nie zwraca przykładowych danych, gdy masz zamiar opublikować, i wygląda na to, że przetwarza je w nieskończoność… wyrzucisz błąd. Jeśli mimo wszystko opublikujesz, prawdopodobnie będziesz musiał całkowicie usunąć stronę Cloud i zacząć od nowa. Domyślam się, że infrastruktura, na której jest zbudowany, nie jest wystarczająco inteligentna, aby zidentyfikować zmianę kodu i po prostu przetwarza buforowany kod.

Poza tym z przyjemnością dowiesz się, że wiele udokumentowanych przykładów kodu ma własne błędy składniowe. Yay! To okropne doświadczenie… ale nadal możesz i powinieneś go używać, ponieważ zapewnia niesamowitą elastyczność.

Dygresja: Jest nowa strona w chmurze Doświadczenie… Gdzie wygląda na to, że właśnie zmienili skórkę strony i nie zawiera żadnych dodatkowych informacji. Właściwie bardziej podoba mi się stara wersja w przypadku wieloetapowej sekwencji publikowania.

Podczas gdy moja firma Highbridge tworzy złożone rozwiązania z obsługą Ajax, które integrują wiele systemów i zawierają rozszerzenia danych z AMPscript, SSJS, Cloud Pages i pocztą e-mail… Chciałbym podzielić się prostym przykładem tego, jak można zacząć, używając AMPscript do wysyłania zapytań do instancji Salesforce i pobierania dane wsteczne. W tym przypadku proste pole boolowskie, które zachowuje główną flagę anulowania subskrypcji. Możesz oczywiście rozszerzyć ten kod, aby zbudować całą stronę preferencji lub centrum profili, z których możesz korzystać.

Wygeneruj łącze do strony w chmurze z danymi subskrybenta

Jeśli przeglądasz szczegóły swojej strony w chmurze, możesz uzyskać unikalny identyfikator strony dla strony, którą możesz dołączyć do swoich wiadomości e-mail.

identyfikator strony w chmurze

Składnia jest następująca:

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

AMPscript dla danych Salesforce za pośrednictwem Cloud Pages za pośrednictwem rozszerzeń danych

Pierwszym krokiem jest utworzenie skryptu AMPscript w celu deklarowania zmiennych i pobierania danych z Salesforce do wykorzystania na stronie. W tym przykładzie moje pole logiczne Salesforce, które zawiera wartość true lub false, ma nazwę Wycofała się:

%%[

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

Teraz możesz zbudować swój HTML i formularz, który przetwarza żądanie:

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

To wszystko… połącz to wszystko i masz stronę preferencji, która jest aktualizowana o Twój rekord subskrybenta i przekazuje żądanie zaktualizowania pola boolowskiego (prawda / fałsz) w Salesforce. Teraz możesz budować niestandardowe zapytania wokół tego pola, aby zawsze mieć pewność, że kontakty, dla których zrezygnowano, nie otrzymają żadnego e-maila!

Jak ulepszyć stronę preferencji lub centrum profili

Oczywiście jest to tylko zwiastun tego, co jest możliwe dzięki stronie preferencji. Ulepszenia, o których możesz pomyśleć:

  • Wypełnij rzeczywisty tekst z innego rozszerzenia danych, aby Twój zespół marketingowy mógł aktualizować zawartość strony w dowolnym momencie bez dotykania kodu.
  • Wypełnij rozszerzenie danych listy publikacji i zapętlaj publikacje, aby zaoferować opcję akceptacji lub rezygnacji z preferencji oprócz głównego anulowania subskrypcji.
  • Wypełnij rozszerzenie danych powodu, aby dowiedzieć się, dlaczego Twoi subskrybenci są mistrzami w rezygnacji z subskrypcji.
  • Wypełnij inne informacje o profilu z rekordu Salesforce, aby podać dodatkowe informacje o profilu.
  • Przetwórz stronę za pomocą Ajax, aby bezproblemowo ją wypełnić.
  • Zaoferuj sposób rejestracji, aby Twój użytkownik mógł w dowolnym momencie uzyskać dostęp do swojego osobistego centrum profili.

Dodatkowe zasoby dotyczące AMPscript

Jeśli szukasz dodatkowej pomocy w nauce i wdrażaniu AMPscript, oto kilka świetnych zasobów:

  • Przewodnik AMPscripte - organizowana przez niektórych pracowników Salesforce, jest to całkiem kompletna baza danych składni AMPscript, chociaż przykłady są naprawdę lekkie. Gdyby był bardziej wytrzymały, mógłby być wart inwestycji.
  • Nagłówek AMPscriptu - Salesforce's Trailhead to darmowy zasób do nauki, który może przeprowadzić Cię przez podstawy języka za pomocą AMPscript i SSJS oraz o tym, jak te dwa elementy mogą ze sobą współdziałać.
  • Wymiana stosów dla Salesforce - świetna społeczność internetowa, która prosi o pomoc z mnóstwem próbek kodu AMPscript.

Integracja stron w chmurze z Salesforce daje mnóstwo możliwości, aby zapewnić użytkownikom najwyższy komfort. A jeśli Twoja firma ma problemy, zawsze możesz skontaktować się z nami, aby pomóc!

Kontakt Highbridge

Co o tym myślisz?

Ta strona używa Akismet do redukcji spamu. Dowiedz się, jak przetwarzane są dane komentarza.