Moduł akcji

W obecnych systemach automatyzacji marketingu moduły akcji mają różne nazwy, jednak najczęściej stosowane są dwie: workflow oraz kampania. W aplikacji marketing-automation-rails stosuję nazwę workflow, a moduł akcji umożliwia wysyłkę wiadomości email w zależności od przynależności użytkownika do segmentu.

Do odnalezienia użytkowników należących do danego segmentu, workflowy korzystają z tego samego systemu filtrów, co moduł segmentacji. Workflow przypisany do użytkowników należących do segmentu o numerze identyfikacyjnym “1” wygląda w ten sposób:

filters = [
  [
    { 
      name: "$segment",
      match: "=",
      properties: {
        id: "1",
      }
    }
  ]
]

Workflow oprócz filtra zawiera również zestaw akcji, które mają zostać wykonane dla każdego użytkownika, który do niego dołączy:

actions = [
  { 
    name: "$email",
    action: "send",
    id: 1,
    delay: 300
  },
  { 
    name: "$email",
    action: "send",
    id: 2,
    delay: 7200
  },
  { 
    name: "$email",
    action: "send",
    id: 3,
    delay: 259200
  }
]

Powyższy zestaw wyśle do użytkownika trzy wiadomości e-mail o numerach identyfikacyjnych 1, 2 i 3. Pierwsza wiadomość zostanie wysłana po 300 sekundach (pięciu minutach), druga po 7200 sekundach (dwóch godzinach), a ostatnia po trzech dniach.

Aby automatycznie wyzwalane akcje były uruchamiane z odpowiednim opóźnieniem między dołączeniem użytkownika do segmentu a ich wykonaniem, oraz by ten czas był liczony z dużą dokładnością, kolejka wiadomości do wysyłki powinna być tworzona natychmiast po tym, jak użytkownik zostanie dodany do segmentu.

We frameworku Ruby on Rails istnieją bardzo wygodne Active Record Callbacks, które pozwalają wywołać funkcje natychmiast po zaktualizowaniu segmentu (czyli natychmiast po dodaniu do segmentu nowych użytkowników). Wykorzystując callback after_update, możemy z łatwością wywołać zestaw funkcji, które zaplanują wysyłkę wiadomości e-mail.

Za każdym razem, gdy aplikacja zbuduje segment na nowo, callback after_update wywołuje funkcję build_workflows, która sprawdza, czy aktualizacja segmentu zakwalifikowała jakiegokolwiek użytkownika do workflowa, który z kolei definiuje zestaw akcji do wykonania wobec tego użytkownika. Za wykonanie tych akcji odpowiada klasa EnrollUserInWorkflow uruchamiająca mailera (ActionMailer) odpowiedzialnego za dostarczenie wiadomości do użytkownika w odpowiednim czasie.

Wysyłka wiadomości email jest pierwszą i podstawową funkcją systemu automatyzacji marketingu, jednak komercyjne, zaawansowane produkty posiadają więcej ciekawych rozwiązań. Workflowy mogą dodawać użytkowników do kolejnych segmentów i kolejnych workflowów, tworząc swoistą reakcję łańcuchową i umożliwiając określenie bardzo dokładnych ścieżek użytkownika w oparciu o modułową konstrukcję kolejnych etapów akcji. W zależności od przynależności użytkownika do segmentu istnieje możliwość wyświetlania mu komunikatów lub modyfikacji zawartości strony internetowej w czasie rzeczywistym przy pomocy języka JavaScript. Gdybyśmy chcieli wyświetlić komunikat użytkownikowi należącemu do segmentu nr. 1, moglibyśmy wykorzystać poniższy uproszczony kod:

if (current_user.segments.includes(1)) {
  showPopupWindow();
}

Obserwując i analizując poczynania użytkownika, istnieje też możliwość przyznawania mu punktów (tzw. lead scoring), które charakteryzują wartość kontaktu np. dla działu sprzedaży. Kontakty o aktywności, która sugeruje np. zainteresowanie kupnem produktu mogą zostać automatycznie rozpoznane i na przykład zakwalifikowane do segmentu oraz workflowa, który uruchomi sekwencję wiadomości email zachwalających ten produkt oraz przekaże szczegóły kontaktu sprzedawcy z działu handlowego.