Odzyskiwanie porzuconych koszyków

Odzyskiwanie porzuconych koszyków

Odzyskuj utracone sprzedaże za pomocą inteligentnej wieloetapowej sekwencji e-mail. Ten skill monitoruje porzucenia koszyków i automatycznie wysyła spersonalizowane e-maile odzyskujące, aby przyciągnąć klientów z powrotem.

Przegląd

WłaściwośćWartość
KategoriaE-mail marketing
StatusStabilny
Wersja3.0
Wyzwalaczecart_abandoned, cart_recovered
Średni wskaźnik odzyskania10-15%

Jak to działa

graph TD
A[Customer adds to cart] -->|Leaves site| B{Cart abandoned?}
B -->|No checkout in 30min| C[Trigger: cart_abandoned]
C --> D[Wait 1 hour]
D --> E{Purchased?}
E -->|No| F[Send Email #1]
F --> G[Wait 24 hours]
G --> H{Purchased?}
H -->|No| I[Send Email #2 + Discount]
I --> J[Wait 48 hours]
J --> K{Purchased?}
K -->|No| L[Send Email #3 - Final]
E -->|Yes| M[Stop sequence]
H -->|Yes| M
K -->|Yes| M
L --> N[Mark as lost]

Konfiguracja

Podstawowa konfiguracja

skills:
abandoned-cart:
enabled: true
# Wykrywanie porzucenia koszyka
detection:
inactivity_threshold: 30m # Minuty braku aktywności przed uznaniem koszyka za porzucony
min_cart_value: 25 # Minimalna wartość koszyka do wyzwolenia
exclude_logged_out: false # Uwzględnij koszyki gości
# Sekwencja e-mail
sequence:
- delay: 1h
template_id: 101
subject: "Forgot something?"
- delay: 24h
template_id: 102
subject: "Your cart is waiting"
include_discount: true
discount_percent: 10
- delay: 48h
template_id: 103
subject: "Last chance - items selling fast"
include_discount: true
discount_percent: 15
discount_expiry: 24h
# Warunki zatrzymania
stop_on:
- cart_recovered
- order_placed
- unsubscribe

Zaawansowana konfiguracja

skills:
abandoned-cart:
# Czas dostosowany do segmentu
timing:
vip_customers:
first_email: 30m
discount_threshold: 0 # Zawsze uwzględniaj rabat
new_customers:
first_email: 2h
discount_threshold: 50 # Rabat tylko jeśli koszyk > $50
repeat_customers:
first_email: 1h
discount_threshold: 100
# Testy A/B
ab_testing:
enabled: true
variants:
- name: "urgency"
subject: "Items in your cart are selling fast!"
weight: 50
- name: "friendly"
subject: "Did you forget something?"
weight: 50
# Wykluczenia
exclude:
- email_domain: ["temp-mail.com", "disposable.com"]
- customer_tag: ["wholesale", "staff"]
- product_category: ["gift-cards"]

Wyzwalacze

cart_abandoned

Uruchamiany, gdy koszyk był nieaktywny przez skonfigurowany próg czasu.

Dane zdarzenia

Parameter Type Description
cart_id required
string

Unikalny identyfikator koszyka

customer_email required
string

Adres e-mail klienta

items required
array

Tablica produktów w koszyku z nazwą, ceną, ilością i image_url

total required
number

Łączna wartość koszyka

currency optional
string

Kod waluty (np. USD, EUR)

Default: USD
recovery_url required
string

URL do odzyskania koszyka

abandoned_at required
datetime

Kiedy koszyk został porzucony

Przykładowy payload:

{
"event": "cart_abandoned",
"timestamp": "2024-01-15T14:30:00Z",
"data": {
"cart_id": "cart_abc123",
"customer_email": "[email protected]",
"items": [
{
"id": "prod_123",
"name": "Premium Headphones",
"price": 199.99,
"quantity": 1,
"image_url": "https://cdn.example.com/headphones.jpg",
"variant": "Black"
},
{
"id": "prod_456",
"name": "Phone Case",
"price": 29.99,
"quantity": 2,
"image_url": "https://cdn.example.com/case.jpg"
}
],
"subtotal": 259.97,
"shipping": 0,
"tax": 20.80,
"total": 280.77,
"currency": "USD",
"recovery_url": "https://store.example.com/cart/recover/abc123",
"abandoned_at": "2024-01-15T14:00:00Z"
}
}

cart_recovered

Uruchamiany, gdy klient wraca i finalizuje zakup.

{
"event": "cart_recovered",
"timestamp": "2024-01-15T16:45:00Z",
"data": {
"cart_id": "cart_abc123",
"customer_email": "[email protected]",
"order_id": "order_789",
"recovered_via": "email_1", // Który e-mail spowodował odzyskanie
"time_to_recover": "2h15m"
}
}

Szablony e-mail

Zmienne szablonu

Używaj tych zmiennych w szablonach e-mail Brevo:

ZmiennaOpisPrzykład
params.FIRSTNAMEImię klientaJane
params.CART_URLURL odzyskania koszykahttps://…
params.CART_TOTALSformatowana suma koszyka$280.77
params.ITEM_COUNTLiczba produktów3
params.ITEMSTablica JSON produktów[…]
params.DISCOUNT_CODEWygenerowany kod rabatowySAVE10-ABC
params.DISCOUNT_PERCENTProcent rabatu10
params.EXPIRY_DATEData wygaśnięcia rabatuJan 17, 2024

Zalecana sekwencja e-mail

E-mail 1 (1 godzina): Łagodne przypomnienie

  • Temat: „Zapomniałeś czegoś, {{ params.FIRSTNAME }}?”
  • Fokus: Przypomnij o zawartości koszyka
  • Jeszcze bez rabatu

E-mail 2 (24 godziny): Dodaj pilność + zachętę

  • Temat: „Twój koszyk czeka + 10% zniżki”
  • Fokus: Rabat ograniczony czasowo
  • Dołącz kod rabatowy

E-mail 3 (48 godzin): Ostatnia szansa

  • Temat: „Ostatnia szansa – 15% zniżki wkrótce wygasa”
  • Fokus: Niedobór + silniejszy rabat
  • 24-godzinny termin ważności rabatu

Przykłady kodu

Włącz skill porzuconego koszyka

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
await tajo.skills.enable('abandoned-cart', {
detection: {
inactivityThreshold: '30m',
minCartValue: 25
},
sequence: [
{ delay: '1h', templateId: 101 },
{ delay: '24h', templateId: 102, discountPercent: 10 },
{ delay: '48h', templateId: 103, discountPercent: 15 }
]
});

Śledź porzucenie koszyka

// Wywołaj to, gdy wykryto aktywność koszyka
await tajo.events.track('cart_updated', {
cartId: 'cart_abc123',
customerEmail: '[email protected]',
items: cartItems,
total: 280.77
});
// Wywołaj to, gdy klient wychodzi bez dokonania zakupu
// (zazwyczaj ze zdarzenia beforeunload lub po przekroczeniu limitu czasu sesji)
await tajo.events.track('cart_abandoned', {
cartId: 'cart_abc123',
customerEmail: '[email protected]',
items: cartItems,
total: 280.77,
recoveryUrl: 'https://store.example.com/cart/recover/abc123'
});

Generuj kody rabatowe

// Wygeneruj unikalny kod rabatowy
const discount = await tajo.discounts.create({
type: 'percentage',
value: 10,
expiresIn: '7d',
usageLimit: 1,
prefix: 'SAVE10'
});
// discount.code => "SAVE10-ABC123"

Analityka

Śledź wydajność odzyskiwania porzuconych koszyków:

WskaźnikOpis
Wskaźnik porzucenia% porzuconych koszyków
Wskaźnik odzyskania% odzyskanych porzuconych koszyków
Odzyskany przychódŁączny przychód z odzyskanych koszyków
Wskaźnik otwarć e-maili% otwartych e-maili odzyskujących
CTR e-mailiWskaźnik klikalności e-maili odzyskujących
Czas do odzyskaniaŚredni czas od porzucenia do zakupu
const stats = await tajo.skills.getStats('abandoned-cart', {
period: '30d'
});
console.log(stats);
// {
// abandonmentRate: 68.5,
// recoveryRate: 12.3,
// revenueRecovered: 15420.50,
// emailsSent: 2340,
// emailOpenRate: 45.2,
// emailCtr: 8.7,
// avgTimeToRecovery: '4h32m'
// }

Najlepsze praktyki

Czas ma znaczenie

Wyślij pierwszy e-mail w ciągu 1-2 godzin od porzucenia. Wskaźniki odzyskania znacznie spadają po 24 godzinach.

  1. Personalizuj tematy – Używaj imienia klienta i zawartości koszyka
  2. Pokazuj zawartość koszyka – Dodaj zdjęcia produktów do e-maila
  3. Twórz pilność – Wspomnij o niskim stanie magazynowym lub rabatach ograniczonych czasowo
  4. Ułatw odzyskanie – Linki do odzyskania koszyka jednym kliknięciem
  5. Testuj sekwencję – Testuj A/B czas, tematy i rabaty
  6. Szanuj rezygnacje – Natychmiast zatrzymaj sekwencję po wypisaniu

Powiązane Skills

Następne kroki

  1. Skonfiguruj śledzenie koszyka na swojej platformie
  2. Twórz szablony e-mail w Brevo
  3. Skonfiguruj integrację kodów rabatowych
  4. Monitoruj wydajność w panelu

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

Asystent AI

Cześć! Zapytaj mnie o dokumentację.

Zacznij za darmo z Brevo