Engagement plány (EP) v Sitecore slouží k automatizaci práce s návštěvníky vašeho webu. V tomto článku zvolíme velmi jednoduchý scénář. Uživatel přijde na web, vyplní formulář, do kterého zadá osobní údaje a e-mail, následně stiskne tlačítko přihlásit do EP. Vytvoříme jednoduchý EP, který návštěvníkovi odešle děkovací e-mail poté co klikne na tlačítko přihlásit do EP. Přihlášení může proběhnout buď programově, nebo na základě Sitecore kampaně. V tomto příkladu si ukážeme přihlášení do EP programově.

Nejdříve si připravíme EP, pomocí nástroje Marketing Control Panel otevřeme složku Engagement Plans a vložíme nový EP. Sitecore používá pro návrh a reporty Silverlight, tudíž nefunguje v prohlížeči Chrome, který tuto technologii nepodporuje, doporučuji použít prohlížeč Firefox. Pomocí tlačítka Design si jej navrhneme zhruba takto:

ep-design

Na obrázku výše vidíme, že náš EP obsahuje 2 stavy (initial-state a email-sent). Stav initial-state je výchozí stav EP, do kterého se pokusíme návštěvníka vložit. U tohoto stavu vidíte v pravém dolním rohu 5 mins, to znamená, že pokud je uživatel přiřazen do tohoto stavu, je po 5 minutách posunut dál, což v našem případě znamená, že je vyhodnocena podmínka s názvem move-next. Podmínka nic nerozhoduje, je vždy pravdivá, tudíž se návštěvník posouvá rovnou do dalšího stavu s názvem email-sent. Při přechodu z podmínky move-next do stavu email-sent vidíme číslovku 1, ta znamená, že při přechodu je volána určitá akce. V našem případě se jedná o odeslání e-mailu, který může redaktor editovat. Editace vypadá takto:

ep-send-email-editor

Na obrázku výše vidíte editační okno, do kterého může redaktor zadat tyto údaje:

  • From Name – jméno odesílatele
  • From Address – adresa odesílatele
  • Subject – předmět e-mailu
  • Base Site URL – domovská stránka webu, která se používá v případě vložení odkazu do těla zprávy
  • Text zprávy – tělo zprávy
  • To Address Type – zde si redaktor vybere, zda se bude e-mail odesílat na fixní e-mailovou adresu, kterou zadá nebo na adresu návštěvníka. V našem příkladu si vyzkoušíme odeslat e-mail na adresu návštěvníka. Zde pozor, Sitecore odesílá e-mail na jednoznačný identifikátor návštěvníka, ne na e-mailovou adresu, kterou má vyplněnou v MongoDB, viz obrázek níže

Teď když máme navržený EP, můžeme vytvořit kouzelné tlačítko, které návštěvníka přihlásí do našeho EP. V příkladu budeme pro adresáta e-mailu používat e-mailovou adresu návštěvníka. Jak přiřadit návštěvníkovi e-mailou adresu se můžete dočíst v mém předchozím článku zde.

Připravili jsme do Sitecore rendering, který do HTML vykresluje pouze button a pomocí POST jej posílá na server. Kód, který přihlásí návštěvníka do EP, vypadá následovně:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult EnrollInEngagementPlan(string command)
{
    if (command != "enrollVisitor")
    {
        return View("/Views/Project/Boxes/Enroll In Engagement Plan.cshtml");
    }
    const string stateId = "{6E1F6979-CD94-49D0-8D9D-AED63779CFF4}";
    var stateItem = Sitecore.Context.Database.GetItem(Sitecore.Data.ID.Parse(stateId));
    if (stateItem == null)
    {
        return Content("State not found");
    }
    // Get manager
    var managerInContext = Sitecore.Analytics.Tracker.Current.Session.CreateAutomationStateManager();
    // Check if visitor is already enrolled in Engagement plan
    var currentState = managerInContext.GetCurrentStateInPlan(stateItem.ParentID);
    if (currentState != null)
    {
        // Move to different state
        managerInContext.MoveToEngagementState(stateItem.ParentID, stateItem.ID);
    }
    else
    {
        // Enroll in provided state
        managerInContext.EnrollInEngagementPlan(stateItem.ParentID, stateItem.ID);
    }
    return Content("You are enrolled.");
}

Konstanta stateId obsahuje ID item initial-state, která je přímo pod rootem našeho testovacího EP.

Celý průchod EP by vypadal následovně.

Uživatel otevře web, vyplní osobní údaje:

ep-contactdata

Po vyplnění osobních údajů, klikne na tlačítko Enroll Current Visitor a zobrazí se mu hláška s informací, že by přihlášen do EP:

ep-contactenrolled

Jakmile návštěvníkovi vyprší session, je vložen do vybraného stavu v EP, jak je vidět na obrázku níže.

ep-initialstate

Teď návštěvníkovi běží 5ti minutový trigger, po kterém dochází k odeslání e-mailu. E-mail odchází ve tvaru, který jsme definovali v návrháři EP. E-mail odchází na e-mailovou adresu návštěvníka:

ep-email

Po odeslání e-mailu se návštěvník dostává do stavu email-sent:

ep-emailsentstate

Na tomto příkladu jsme si ukázali, jak nadefinovat jednoduchý EP a jak do něj přihlásit návštěvníka webu.