Skip to main content

Workflow automatyzacji

Workflow to zautomatyzowany łańcuch akcji, który wysyła emaile w odpowiedzi na triggery i zachowania użytkowników.

Czym jest workflow?

Workflow = Trigger + Warunki + Akcje
Trigger: CONTACT_CREATED (nowy kontakt)

Wait: 0 minut

Action: Wyślij Welcome Email

Wait: 3 dni

Condition: Otwarł Welcome Email?
  ├─ TAK → Wyślij Email #2 (Onboarding)
  └─ NIE → Wyślij Email #2 (Re-engagement)

Typy workflow

Welcome Series

Seria emaili powitalnych dla nowych kontaktówTrigger: CONTACT_CREATED

Drip Campaign

Edukacyjna seria z określonymi interwałamiTrigger: TAG_ADDED “Lead”

Abandoned Cart

Przypomnienie o porzuconym koszykuTrigger: CUSTOM_EVENT “cart_abandoned”

Re-engagement

Win-back nieaktywnych kontaktówTrigger: Brak otwarć przez 90 dni

Flow Builder: Wizualny edytor workflow

Mailist oferuje wizualny Flow Builder (oparty na @foblex/flow) - intuicyjny edytor drag & drop do tworzenia skomplikowanych automatyzacji bez pisania kodu.

Interfejs Flow Builder

┌─────────────────────────────────────────────────────────────┐
│ 📋 Workflow: "Welcome Series"              [💾 Save] [✕]   │
├──────────┬──────────────────────────────────────┬───────────┤
│          │                                      │           │
│ PALETTE  │         CANVAS (Grid Background)    │ SETTINGS  │
│          │                                      │           │
│ Triggers │    ┌─────────────────┐              │ Selected: │
│ ├─👥 Sub │    │ Subscriber      │              │           │
│ ├─📧 Open│    │ Joins Group     │              │ 👥 Sub    │
│ └─📤 Uns │    │ "Newsletter"    │──────┐       │ Joins     │
│          │    └─────────────────┘      │       │ Group     │
│ Actions  │                             ▼       │           │
│ ├─✉️ Send│              ┌─────────────────┐    │ Group:    │
│ ├─⏰ Wait│              │ Send Email      │    │ [Newsletter]│
│ └─❓ Cond│              │ "Welcome #1"    │──┐ │           │
│          │              └─────────────────┘  │ │ [Update]  │
│          │                                   ▼ │           │
│ Tools    │                     ┌──────────────┴───┐        │
│ ├─🔍 Zoom│                     │ Condition        │        │
│ ├─⊞ Fit  │                     │ Opened email?    │        │
│ └─⊗ Sel  │                     └─┬─────────────┬──┘        │
└──────────┴───────────────────────│─────────────│───────────┘
                                YES│            NO│
Kluczowe elementy:
  • Palette (lewy panel) - biblioteka dostępnych węzłów
  • Canvas (środek) - płótno robocze z grid background
  • Settings (prawy panel) - konfiguracja wybranego węzła
  • Top bar - nazwa workflow, zapisz, anuluj
  • Action bar - zoom, fit to screen, select all

Tworzenie workflow krok po kroku

1

Utwórz nowy workflow

Automatyzacja+ Nowy workflowOtworzy się Flow Builder z pustym canvas i gridowym tłem.
2

Dodaj węzeł Trigger

Z palety (lewy panel):
Przeciągnij węzeł 👥 Subscriber Joins Group na canvas.Konfiguracja (prawy panel):
Trigger: Subscriber Joins Group
Group: ▼ [Newsletter Subscribers]

Opis: Wyzwala się gdy kontakt zostaje dodany
      do wybranej grupy.
Use case: Welcome series dla nowych subskrybentów
Plan FREE: Maksymalnie 1 trigger na workflow. Plan STANDARD/PRO: Unlimited triggers (multi-trigger workflows).
3

Połącz z akcją Send Email

Dodaj węzeł Send Email:
  1. Przeciągnij ✉️ Send Email z palety na canvas
  2. Połącz węzły: Kliknij output triggera (kółko na dole) i przeciągnij do input Send Email (kółko na górze)
Konfiguracja Send Email:
Action: Send Email

Email Type: ● Szablon  ○ Kampania

Template: ▼ [Welcome Email - Template #1]

Subject: Witamy w Mailist!

Preview: Cześć {{firstName}}, dziękujemy za...

Personalizacja:
- {{firstName}}
- {{lastName}}
- {{email}}
- {{company}}
Wizualizacja połączenia:
┌─────────────────┐
│ Subscriber      │
│ Joins Group     │
│ "Newsletter"    │
└────────┬────────┘
         │ (connection line)

┌─────────────────┐
│ Send Email      │
│ "Welcome #1"    │
└─────────────────┘
4

Dodaj Wait (opóźnienie)

Przeciągnij węzeł ⏰ Wait:
Action: Wait

Duration: [3] ▼ [days]

Opcje:
- minutes
- hours
- days
- weeks

Opis: Kontakt czeka 3 dni przed kolejną akcją.
Połącz: Send Email → Wait → (kolejna akcja)
Best practice: Odstępy między emailami:
  • Email #1 → Email #2: 2-3 dni
  • Email #2 → Email #3: 5-7 dni
  • Email #3 → Email #4: 10-14 dni
5

Dodaj Condition (rozgałęzienie)

Przeciągnij węzeł ❓ Condition:
Action: Condition (If/Then/Else)

Condition Type: ▼ [Email Opened]

Email: ▼ [Welcome #1]

Timeframe: [7] days (sprawdź ostatnie 7 dni)

Outputs:
├─ ✅ YES (green) - Otworzył email
└─ ❌ NO (red) - Nie otworzył
Workflow z rozgałęzieniem:
┌─────────────────┐
│ Send Email      │
│ "Welcome #1"    │
└────────┬────────┘


┌─────────────────┐
│ Wait 3 days     │
└────────┬────────┘


┌─────────────────┐
│ Condition       │
│ Opened email?   │
└─┬─────────────┬─┘
YES│            NO│
  │              │
  ▼              ▼
┌───────┐    ┌───────┐
│Email#2│    │Re-eng │
└───────┘    └───────┘
Połącz węzły:
  • Condition output “YES” (zielony) → Send Email “Onboarding #2”
  • Condition output “NO” (czerwony) → Send Email “Re-engagement”
6

Zapisz i aktywuj

  1. Edytuj nazwę: Kliknij tytuł “New Automation” → wpisz “Welcome Series”
  2. Zapisz: Kliknij przycisk 💾 Save (top right)
  3. Aktywuj: Wróć do listy automatyzacji → Aktywuj workflow
Status workflow:
  • Draft - Zapisany, nieaktywny
  • Active - Działa dla nowych triggerów
  • Paused - Wstrzymany (nie wyzwala się)

Dostępne węzły (Palette)

Triggers (Wyzwalacze)

👥 Subscriber Joins GroupOpis: Wyzwala się gdy kontakt zostaje dodany do wybranej grupy.Konfiguracja:
  • Group: Wybierz grupę z listy
Use cases:
  • Welcome series dla nowych subskrybentów
  • Onboarding po zapisaniu się na webinar
  • Lead nurturing dla nowych leadów
Przykład:
Grupa: "Newsletter Subscribers"
→ Automatycznie wyślij Welcome Email #1

Actions (Akcje)

Send Email - Wyślij email do kontaktuKonfiguracja:
Email Type:
● Szablon - Użyj gotowego szablonu
○ Kampania - Użyj istniejącej kampanii

Template/Campaign: ▼ [Wybierz z listy]

Personalizacja automatyczna:
- {{firstName}}
- {{lastName}}
- {{email}}
- {{company}}
- Wszystkie pola niestandardowe
Przykład użycia:
Trigger: Subscriber Joins Group
→ Wait: 0 minutes
→ Send Email: "Welcome #1"
→ Wait: 3 days
→ Send Email: "Welcome #2"
Mailist automatycznie dodaje link unsubscribe i tracking pixel do każdego emaila.

Dodatkowe węzły (w planach rozwojowych)

Poniższe węzły są zakomentowane w kodzie i będą udostępnione w przyszłych wersjach:
WęzełStatusPlanowane
Add TagCommentedQ1 2025
Remove TagCommentedQ1 2025
Add to GroupCommentedQ1 2025
Remove from GroupCommentedQ1 2025
Update FieldPlannedQ2 2025
WebhookPlannedQ2 2025
A/B SplitPlannedQ2 2025

Funkcje Flow Builder

Nawigacja i zoom

🔍 Zoom In/Out

Skróty klawiszowe:
  • Cmd/Ctrl + Plus - Zoom in
  • Cmd/Ctrl + Minus - Zoom out
  • Scroll - Płynny zoom
Action Bar: Przyciski +/-

⊞ Fit to Screen

Automatycznie dopasuj widok aby wszystkie węzły były widoczne.Użyj gdy:
  • Masz duży workflow (10+ węzłów)
  • Zgubiłeś się na canvas
  • Chcesz zobaczyć całość
Skrót: Przycisk “Fit” w Action Bar

⊗ Select All

Zaznacz wszystkie węzły i połączenia.Skrót: Cmd/Ctrl + AUse case:
  • Usunięcie całego workflow
  • Kopiowanie struktury

🖱️ Pan (przesuwanie)

Przesuwaj canvas przeciągając tło.Metody:
  • Kliknij i przeciągnij tło (grid)
  • Spacebar + przeciągnij (Mac convention)
  • Środkowy przycisk myszy

Zaznaczanie i edycja

1

Zaznacz węzeł

Kliknij węzeł → Prawy panel pokaże ustawieniaMulti-select:
  • Cmd/Ctrl + Click - Dodaj do zaznaczenia
  • Shift + Click - Zaznacz zakres
2

Przesuń węzły

Przeciągnij węzeł aby zmienić pozycjęMulti-move:
  • Zaznacz wiele węzłów
  • Przeciągnij jeden z nich
  • Wszystkie przesuwają się razem
3

Usuń węzły/połączenia

ZaznaczDelete/BackspaceUsunięcie węzła:
  • Usuwa również wszystkie połączenia do/z tego węzła
Usunięcie połączenia:
  • Kliknij connection line → Delete
  • Lub kliknij “X” na output węzła
4

Reconnect (przepięcie)

Przeciągnij połączenie z jednego output do innego input.
Przed:          Po przepięciu:
A → B          A → C
    C              B
Use case: Zmiana kolejności akcji bez usuwania węzłów

Grid background i alignment

Grid: 20px × 20px grid ułatwia wyrównanie węzłów. Visual alignment:
┌────┬────┬────┐
│    │    │    │
├────┼────┼────┤  ← Grid pomaga w równym rozmieszczeniu
│ A  │ →  │ B  │
├────┼────┼────┤
│    │    │    │
└────┴────┴────┘
Best practice: Trzymaj węzły w liniach lub kolumnach dla lepszej czytelności workflow.

Zachowywanie i ładowanie workflow

Format zapisu (flowData)

Mailist zapisuje workflow jako JSON w formacie IFlowState:
{
  "name": "Welcome Series",
  "nodes": {
    "node-abc123": {
      "id": "node-abc123",
      "type": "SUBSCRIBER_JOINS_GROUP",
      "position": { "x": 100, "y": 100 },
      "outputs": [
        { "id": "output-1", "name": "default", "color": "blue" }
      ],
      "data": {
        "groupId": "list-456"
      }
    },
    "node-def456": {
      "id": "node-def456",
      "type": "SEND_EMAIL",
      "position": { "x": 100, "y": 250 },
      "input": "input-1",
      "outputs": [
        { "id": "output-2", "name": "default", "color": "blue" }
      ],
      "data": {
        "templateId": "template-789",
        "subject": "Welcome to Mailist!"
      }
    }
  },
  "connections": {
    "conn-1": {
      "id": "conn-1",
      "from": "output-1",
      "to": "input-1"
    }
  }
}
Pola węzła:
  • id - Unikalny GUID węzła
  • type - NodeType enum (SEND_EMAIL, WAIT, CONDITION, etc.)
  • position - Pozycja na canvas (x, y)
  • input - ID input connection point (dla węzłów z input)
  • outputs - Array output connection points (dla węzłów z outputs)
  • data - Konfiguracja specyficzna dla typu węzła
Pola połączenia:
  • id - Unikalny ID połączenia
  • from - ID output węzła źródłowego
  • to - ID input węzła docelowego

Przykład: Welcome Series

Workflow: "Onboarding nowych użytkowników"

Trigger: CONTACT_CREATED

Action: Send Email "Welcome #1: Witamy!"

Wait: 1 dzień

Condition: opened_email = "Welcome #1"
  ├─ YES:
  │   ↓
  │   Send Email "Welcome #2: Pierwsze kroki"
  │   ↓
  │   Wait: 3 dni
  │   ↓
  │   Send Email "Welcome #3: Zaawansowane funkcje"

  └─ NO:

      Send Email "Re-engagement: Czy potrzebujesz pomocy?"

      Wait: 2 dni

      Condition: opened_re_engagement
        ├─ YES → Add Tag "Engaged" → Continue workflow
        └─ NO → End Workflow

Najlepsze praktyki

Zanim aktywujesz workflow dla wszystkich:
  1. Dodaj swój email jako testowy kontakt
  2. Wyzwól trigger (np. zapisz się na listę)
  3. Sprawdź czy emaile przychodzą w dobrych odstępach
  4. Zweryfikuj personalizację i linki
❌ Źle:
Day 1: Email #1
Day 2: Email #2
Day 3: Email #3
Day 4: Email #4
→ Za dużo, za szybko!

✅ Dobrze:
Day 1: Email #1
Day 3: Email #2
Day 7: Email #3
Day 14: Email #4
→ Naturalne odstępy
Zawsze daj możliwość wyjścia z workflow:
Condition: tag zawiera "Converted"
  → End Workflow (cel osiągnięty)

Condition: opened = 0 AND sent = 5
  → End Workflow (5 emaili bez reakcji)

Analityka workflow

Po aktywacji sprawdzaj:

Konwersja

% kontaktów, które przeszły przez cały workflow

Drop-off points

W którym miejscu ludzie przestają otwierać

Czas do konwersji

Ile czasu od triggera do celu

Najlepsze emaile

Które emaile mają najwyższy open/click rate

Następne kroki