Blog_Seitenkern_Segment.jpg

Eine Einführungsserie zu Marketing-Kategorie-Abonnements in Sitecore

16.10.2019
Lesezeit: 4 Min

Dirk Schäfauer ist Sitecore Senior Solution Architect bei mmmake – er kennt sich also bestens mit Sitecore aus. In seiner Artikelserie beschäftigt er sich mit verschiedenen Möglichkeiten Sitecore als Marketinginstrument zu nutzen. Heute: die Nutzung des Potenzials des EXM-Präferenzzentrums für den umgekehrten Zweck – die Anmeldung für Marketingkategorien wie beispielsweise für Newsletter.

Das Thema könnte also EXM Newsletter Subscription oder so ähnlich heißen. Vielmehr handelt es sich um eine Forms Extension, bei der man sich ausschließlich für Marketingkategorien anmeldet.

Diese Marketingkategorien basieren auf der Regel-Engine von Sitecore, daher möchte ich sie nicht als EXM-spezifisch klassifizieren, sie können auch für Marketing-Automatisierung oder Personalisierung verwendet werden.

Aber wir wollen nicht zu weit vorpreschen: In Sitecore 9.1 wurde das Marketing Preference Center eingeführt, eine wirklich coole Art, Marketingkategorie-Abonnements zu verwalten. Das Einstellungszentrum ist jedoch noch nützlicher, da es pro Managerstamm konfiguriert werden kann, somit für mehrere Standorte geeignet ist und für jeden Standort anders aussehen kann. Auch eigene Javascript-Logik kann dort implementiert werden!

Die einzige Frage, die sich hier stellt, ist: Wenn Sitecore etwas Großartiges für die Abmeldung von Newslettern (oder Kategorien) bietet, warum gibt es dann kein großartiges Äquivalent für die Anmeldung zu diesen Kategorien? Das Preference Center ist derzeit nur verfügbar, wenn Sie bereits einen Newsletter erhalten haben (z. B. Email Campaign Sample Newsletter). Was aber, wenn ich mich für eine Marketingkategorie anmelden möchte?

Steve McGill über das Preference Center in EXM and the complexity of Subscription Management:

E-Mail-Präferenz-Center

Die Veröffentlichung von Sitecore 9.1 führt die dringend benötigte zusätzliche Ebene von Präferenzen ein, wenn es darum geht, zu bestimmen, an wen eine E-Mail gesendet werden soll. Diese Präferenzen sind so konzipiert, dass sie für den/die Kund:in sichtbar sind. Sitecore liefert ein sehr einfaches UI, das sich leicht an Ihre eigene Marke anpassen lässt. (Übrigens wird eine REST-API verwendet, so dass Sie den Beispielcode problemlos in Ihre eigene JSS-/MVC-Komponente übertragen können, wenn Sie dies wünschen).

Oder Pete Navarra, der es in Introduction to Email Experience Manager auf den Punkt bringt:

Die Abonnementverwaltung in EXM wird als voll funktionsfähige API bereitgestellt, wobei erwartet wird, dass sie nach den Wünschen des/der Kund:in implementiert wird. So viele geschäftliche Anforderungen können sich zwischen den einzelnen Implementierungen unterscheiden, sodass es unzureichend wäre, etwas von der Stange zu bauen – oder dass immer einige Änderungen erforderlich wären. Stattdessen ist der Weg, den Sitecore eingeschlagen hat, der, alle benötigten Endpunkte und Hooks zur Verfügung zu stellen und dem/der Kund:in zu erlauben, das Abonnementmanagement so zu implementieren, wie er/sie es für richtig hält.

Der Anwendungsfall oder: Wie bin ich in diese Situation geraten?

Wir hatten eine schwierige Anfrage von unserem Kunden: Sie wollten Newsletter aus ihrem eigenen CRM über EXM versenden. Im Prinzip sollte das kein Problem sein. Aber das Hinzufügen von Kontakten zu Kontaktlisten war immer fehlerhaft. Meistens waren die Listen nicht vollständig indexiert, was zu einem unvollständigen Versand des Newsletters führte.

Was also, wenn Sie genau das haben wollen, was das Preference Center kann? Leider gibt es dafür nichts, was nicht in der Verpackung enthalten ist.

Es gibt einen coolen SubscriptionManager, der eine SubscribeEvent-Pipeline aufruft. Die Pipeline sieht standardmäßig wie folgt aus:

<SubscribeEvent patch:source="Sitecore.EmailExperience.ContentManagementPrimary.config"/>

Ähm, cool, die ist leer! Die „UnsubscribeFromList“-Pipeline ist bereits mit mehr Leben gefüllt:

<UnsubscribeFromList patch:source="Sitecore.EmailExperience.ContentManagementPrimary.config">
<processor type="Sitecore.EmailCampaign.Cm.Pipelines.UnsubscribeFromList.GetList, Sitecore.EmailCampaign.Cm" resolve="true"/>
<processor type="Sitecore.EmailCampaign.Cm.Pipelines.UnsubscribeFromList.CheckDefaultExcludeCollection, Sitecore.EmailCampaign.Cm" resolve="true"/>
<processor type="Sitecore.EmailCampaign.Cm.Pipelines.UnsubscribeFromList.CheckSegmentedList, Sitecore.EmailCampaign.Cm" resolve="true"/>
<processor type="Sitecore.EmailCampaign.Cm.Pipelines.UnsubscribeFromList.CheckSubscription, Sitecore.EmailCampaign.Cm" resolve="true"/>
<processor type="Sitecore.EmailCampaign.Cm.Pipelines.UnsubscribeFromList.UnsubscribeContact, Sitecore.EmailCampaign.Cm" resolve="true"/>
<processor type="Sitecore.EmailCampaign.Cm.Pipelines.UnsubscribeFromList.SendNotification, Sitecore.EmailCampaign.Cm" resolve="true"/>
</UnsubscribeFromList>

Ist es das, was ich erreichen will? NEIN.
Ich möchte keine Listen mehr abonnieren oder abbestellen!
Wir wollen es auf die coole Art machen!

In der folgenden Serie von Blogbeiträgen werde ich Ihnen zeigen, wie Sie die Marketingkategorien speziell für EXM nutzen können. Die Idee dahinter ist ziemlich einfach: Machen Sie es wie das Preference Center, das in Sitecore 9.1 eingeführt wurde, und ich verwende Sitecore Forms, um das alles zu handhaben. Das Formular selbst hat viele Überraschungen: es ersetzt das Preference Center, das nicht mehr erreichbar ist, wenn Sie den Newsletter löschen, den Sie bereits erhalten haben.

Die erste Idee war, die Kontakte mit der öffentlichen Methode des SubscriptionManager zu abonnieren:

    public virtual bool Subscribe(
      ContactIdentifier contactIdentifier,
      Guid messageId,
      bool subscriptionConfirmation)

Aber ich möchte einen Kontakt nicht für eine Nachricht anmelden. Die private Methode, die Sitecore im Inneren verwendet, ist für mich zuverlässiger:

    private bool Subscribe(
      Contact contact,
      Guid recipientListId,
      ManagerRoot managerRoot,
      bool subscriptionConfirmation)

Das ist genau das, was ich brauchte! Aber es ist privat. Und hier beginnt die eigentliche Reise.

Lesen Sie mehr in den folgenden Blogbeiträgen:
Teil 1 – Das Konzept
Teil 2 – Benutzerdefiniertes Feld zum Abrufen der Marketingpräferenzen und der Kontaktliste
Teil 3 – Einreichen der benutzerdefinierten Marketing-Präferenz Aktion
Teil 4 – Benutzerdefiniertes Feld zur Identifizierung von Kontakten
Teil 5 – Das „magische“ Abonnementformular
Teil 6 – Segmentierte Listen


Das klingt nach einer großen Aufgabe! Aber begleiten Sie mich auf dieser Reise und Sie werden es nicht bereuen!

Sie können den Quellcode hier finden: https://github.com/monkey-dsc/Feature.SitecoreForms.MarketingCategoriesSubscription/

Lesen Sie den nächsten Teil: Teil 1 – Das Konzept

Der Autor
Software-Entwickler
Dirk
Schäfauer
Dirk ist Software-Entwickler bei mmmake und absoluter Sitecore-Experte.
Kontakt
mmmake-autor-dirk-schaefauer