Salesforce Marketing Cloud-Einstellungscenter: Beispiel für AMPScript und Cloud-Seiten

Code für AMPscript Salesforce-integrierte Marketing Cloud-Einstellungsseiten

Wahre Begebenheit… meine Karriere begann vor über einem Jahrzehnt, als ich eine Stelle als Integrationsberater für ExactTarget (jetzt Salesforce Marketing Cloud) antrat. Mein Job führte mich auf die ganze Welt, um Unternehmen bei der Entwicklung tiefer Integrationen in die Plattform zu unterstützen, und ich baute so viel institutionelles Wissen über die Plattform auf, dass ich zum Produktmanager befördert wurde.

Die Herausforderungen des Produktmanagers für eine Organisation, die zuvor im Besitz von Entwicklern war, führten mich schließlich dazu, weiterzumachen. Es war eine großartige Organisation, aber ich habe es nie wirklich getan Besitz das Produkt. Während meine Kollegen in den Bereichen Support, Vertrieb und Produktmarketing nach einer echten Änderung suchten, war die Realität, dass das Entwicklungsteam häufig eine andere Lösung implementierte und ich dies Tage vor der Veröffentlichung herausfinden würde.

Eines meiner letzten Projekte war die Arbeit an einer internen Skriptplattform, mit der unsere Kunden ihren E-Mails Skripte hinzufügen können. Ich habe mit einem anderen Produktmanager zusammengearbeitet, und wir haben eine Menge Nachforschungen angestellt. Schließlich haben wir uns entschlossen, einen Ansatz im JQuery-Stil mit eigenen Funktionen zu entwickeln, aber auch die Möglichkeit, Arrays zu übergeben und zu konsumieren, JSON zu verwenden usw. Lösung… bis es die Entwicklung traf. Zu Beginn des Produktzyklus wurde meine Bibliothek verschrottet und durch einen leitenden Entwickler ersetzt AMPscript.

Jahre später wurde die Salesforce-Partner Das Unternehmen, in dem ich Partner bin, führt jetzt komplexe Unternehmensintegrationen durch, und ich bin täglich in AMPscript verstrickt - entweder zur Verbesserung der Logik von E-Mail-Inhalten oder zur Einführung von Cloud-Seiten. Die Frustration, Tag für Tag mit AMPscript zu arbeiten, stellt natürlich sicher, dass damals die falsche Entscheidung getroffen wurde… meine Lösung wäre weitaus eleganter gewesen. Ich habe das Gefühl, wieder einen TRS-80 in BASIC zu programmieren.

Der Editor, den Sie für Cloud Pages verwenden, ist unversöhnlich. Es werden keine einfachen Probleme wie das Deklarieren von Variablen oder Syntaxfehler mit Ihrem Code erfasst. Tatsächlich können Sie eine Seite veröffentlichen, die einfach einen 500-Server-Fehler generiert. Es gibt auch zwei Namensfelder für Ihre Seiten. Fragen Sie mich nicht warum.

Pro-Tipp: Wenn eine Cloud-Seite beim Veröffentlichen niemals Beispieldaten zurückgibt und es so aussieht, als würde sie für immer verarbeitet, wird ein Fehler ausgegeben. Wenn Sie trotzdem veröffentlichen, müssen Sie wahrscheinlich die Cloud-Seite vollständig löschen und von vorne beginnen. Ich vermute, dass die Infrastruktur, auf der es aufgebaut ist, nicht intelligent genug ist, um eine Codeänderung zu identifizieren, und den zwischengespeicherten Code einfach weiter verarbeitet.

Abgesehen davon werden Sie froh sein zu wissen, dass viele der dokumentierten Codebeispiele ihre eigenen Syntaxfehler haben. Yay! Es ist eine schreckliche Erfahrung… aber Sie können und sollten sie trotzdem nutzen, weil sie eine erstaunliche Flexibilität bietet.

Randnotiz: Es gibt eine neue Cloud-Seite Erfahrung… Wo es so aussieht, als hätten sie die Seite gerade neu gehäutet und sie enthält keine zusätzlichen Informationen. Ich mag die alte Version eigentlich besser für die mehrstufige Veröffentlichungssequenz.

Während meiner Firma Highbridge Entwickelt komplexe Ajax-fähige Lösungen, die mehrere Systeme integrieren und Datenerweiterungen in AMPscript, SSJS, Cloud Pages und E-Mail integrieren. Ich wollte ein einfaches Beispiel dafür geben, wie Sie mit AMPscript beginnen können, um Ihre Salesforce-Instanz abzufragen und abzurufen Daten zurück. In diesem Fall ein einfaches boolesches Feld, das ein Master-Abbestellungsflag enthält. Sie können diesen Code natürlich erweitern, um eine gesamte Einstellungsseite oder ein Profilcenter zu erstellen, die Sie verwenden können.

Generieren Sie eine Cloud-Page-Verknüpfung mit Abonnentendaten

Wenn Sie die Details Ihrer Cloud-Seite anzeigen, können Sie die eindeutige Seiten-ID für die Seite abrufen, die Sie in Ihre E-Mails aufnehmen können.

Cloud-Seiten-ID

Die Syntax lautet wie folgt:

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

AMPscript für Salesforce-Daten über Cloud-Seiten über Datenerweiterungen

Der erste Schritt besteht darin, Ihr AMPscript zu erstellen, um Variablen zu deklarieren und die Daten aus Salesforce abzurufen, die auf Ihrer Seite verwendet werden sollen. In diesem Beispiel wird mein boolesches Salesforce-Feld mit dem Wert true oder false benannt Ausgestiegen:

%%[

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

Jetzt können Sie Ihr HTML und Formular erstellen, das die Anfrage verarbeitet:

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

Das war's ... alles zusammen und Sie haben eine Einstellungsseite, die mit Ihrem Abonnentendatensatz aktualisiert wird und eine Anforderung zum Aktualisieren eines booleschen Felds (wahr / falsch) in Salesforce übergibt. Jetzt können Sie benutzerdefinierte Abfragen um dieses Feld erstellen, um sicherzustellen, dass deaktivierte Kontakte keine E-Mails erhalten!

So erweitern Sie Ihre Einstellungsseite oder Ihr Profilcenter

Dies ist natürlich nur ein Vorgeschmack darauf, was mit einer Einstellungsseite möglich ist. Verbesserungen, über die Sie nachdenken möchten:

  • Füllen Sie den eigentlichen Text aus einer anderen Datenerweiterung aus, damit Ihr Marketingteam den Inhalt der Seite jederzeit aktualisieren kann, ohne den Code zu berühren.
  • Füllen Sie eine Datenerweiterung für die Publikationsliste aus und durchlaufen Sie die Publikationen, um zusätzlich zu einer Master-Abmeldung ein Opt-In oder Opt-Out für Einstellungen anzubieten.
  • Füllen Sie eine Grunddatenerweiterung aus, um zu erfassen, warum Ihre Abonnenten sich abmelden.
  • Füllen Sie andere Profilinformationen aus dem Salesforce-Datensatz aus, um zusätzliche Profilinformationen bereitzustellen.
  • Verarbeiten Sie die Seite mit Ajax, damit Sie sie nahtlos füllen können.
  • Bieten Sie ein Registrierungsmittel an, damit Ihr Benutzer jederzeit auf sein persönliches Profilcenter zugreifen kann.

Zusätzliche Ressourcen für AMPscript

Wenn Sie zusätzliche Unterstützung beim Erlernen und Bereitstellen von AMPscript benötigen, finden Sie hier einige nützliche Ressourcen:

  • AMPscript-AnleitungDiese von einigen Salesforce-Mitarbeitern organisierte Datenbank ist eine ziemlich vollständige Datenbank mit AMPscript-Syntax, obwohl die Beispiele sehr leicht sind. Wenn es robuster wäre, könnte es die Investition wert sein.
  • Trailhead-AMP-Skript - Salesforce's Trailhead ist eine kostenlose Lernressource und kann Sie mit AMPscript, SSJS und der Interaktion der beiden durch die Grundlagen der Sprache führen.
  • Stack Exchange für Salesforce - Eine großartige Online-Community, die Unterstützung bei einer Vielzahl von AMPscript-Codebeispielen anfordert.

Die Integration Ihrer Cloud-Seiten in Salesforce bietet unzählige Möglichkeiten, um eine hervorragende Benutzererfahrung zu erzielen. Und wenn Ihr Unternehmen Probleme hat, können Sie uns jederzeit kontaktieren!

Kontakt Highbridge

Was denken Sie?

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.