---
title: "Pemulihan Keranjang Ditinggalkan | Tajo"
description: "Pulihkan penjualan yang hilang dengan rangkaian email multi-langkah cerdas yang membawa pelanggan kembali untuk menyelesaikan pembelian mereka."
url: https://tajo.io/in/docs/skills/email-marketing/abandoned-cart/
markdown: https://tajo.io/in/docs/skills/email-marketing/abandoned-cart.md
lang: id-ID
author: "Set Noa"
author_url: https://tajo.io/in/set-noa/
robots: noindex
---

Ajukan akses awal

Masukkan nama depan dan alamat email kerja Anda. Kami akan mengirim tautan untuk mengonfirmasi permintaan akses Tajo.

# Pemulihan Keranjang Ditinggalkan

[Set Noa](https://tajo.io/in/set-noa/)

Pulihkan penjualan yang hilang dengan rangkaian email multi-langkah yang cerdas. Skill ini memantau keranjang yang ditinggalkan dan secara otomatis mengirimkan email pemulihan yang dipersonalisasi untuk membawa pelanggan kembali.

## Ikhtisar

| Properti | Nilai |
| --- | --- |
| **Kategori** | Email Marketing |
| **Status** | Stabil |
| **Versi** | 3.0 |
| **Pemicu** | `cart_abandoned`, `cart_recovered` |
| **Rata-rata tingkat pemulihan** | 10-15% |

## Cara kerjanya

```mermaid
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]
```

## Konfigurasi

### Penyiapan dasar

```yaml
skills:
  abandoned-cart:
    enabled: true

    # Cart abandonment detection
    detection:
      inactivity_threshold: 30m  # Minutes before cart is abandoned
      min_cart_value: 25         # Minimum cart value to trigger
      exclude_logged_out: false  # Include guest carts

    # Email sequence
    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

    # Stop conditions
    stop_on:
      - cart_recovered
      - order_placed
      - unsubscribe
```

### Konfigurasi lanjutan

```yaml
skills:
  abandoned-cart:
    # Segment-specific timing
    timing:
      vip_customers:
        first_email: 30m
        discount_threshold: 0  # Always include discount
      new_customers:
        first_email: 2h
        discount_threshold: 50  # Discount only if cart > $50
      repeat_customers:
        first_email: 1h
        discount_threshold: 100

    # A/B testing
    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

    # Exclusions
    exclude:
      - email_domain: ["temp-mail.com", "disposable.com"]
      - customer_tag: ["wholesale", "staff"]
      - product_category: ["gift-cards"]
```

## Pemicu

### cart\_abandoned

Terpicu ketika sebuah keranjang tidak aktif selama ambang batas yang dikonfigurasi.

#### Data Event

| Parameter | Type | Description |
| --- | --- | --- |
| `cart_id` required | string | Identifier keranjang yang unik |
| `customer_email` required | string | Alamat email pelanggan |
| `items` required | array | Array item keranjang berisi name, price, quantity, image\_url |
| `total` required | number | Nilai total keranjang |
| `currency` optional | string | Kode mata uang (misalnya USD, EUR) Default: `USD` |
| `recovery_url` required | string | URL untuk memulihkan keranjang |
| `abandoned_at` required | datetime | Kapan keranjang ditinggalkan |

Contoh payload:

```json
{
  "event": "cart_abandoned",
  "timestamp": "2024-01-15T14:30:00Z",
  "data": {
    "cart_id": "cart_abc123",
    "customer_email": "jane@example.com",
    "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

Terpicu ketika pelanggan kembali dan menyelesaikan checkout.

```json
{
  "event": "cart_recovered",
  "timestamp": "2024-01-15T16:45:00Z",
  "data": {
    "cart_id": "cart_abc123",
    "customer_email": "jane@example.com",
    "order_id": "order_789",
    "recovered_via": "email_1",  // Which email triggered recovery
    "time_to_recover": "2h15m"
  }
}
```

## Template email

### Variabel template

Gunakan variabel berikut di template email Brevo Anda:

| Variabel | Deskripsi | Contoh |
| --- | --- | --- |
| `params.FIRSTNAME` | Nama depan pelanggan | Jane |
| `params.CART_URL` | URL pemulihan keranjang | https://… |
| `params.CART_TOTAL` | Total keranjang yang sudah diformat | $280.77 |
| `params.ITEM_COUNT` | Jumlah item | 3 |
| `params.ITEMS` | Array JSON berisi item | \[…\] |
| `params.DISCOUNT_CODE` | Kode diskon yang dihasilkan | SAVE10-ABC |
| `params.DISCOUNT_PERCENT` | Persentase diskon | 10 |
| `params.EXPIRY_DATE` | Tanggal kedaluwarsa diskon | Jan 17, 2024 |

### Rangkaian email yang direkomendasikan

**Email 1 (1 jam)**: Pengingat halus

- Subjek: “Ada yang tertinggal, {{ params.FIRSTNAME }}?”
- Fokus: Ingatkan kembali isi keranjang
- Belum ada diskon

**Email 2 (24 jam)**: Tambahkan urgensi + insentif

- Subjek: “Keranjang Anda menunggu + diskon 10%”
- Fokus: Diskon berbatas waktu
- Sertakan kode diskon

**Email 3 (48 jam)**: Dorongan terakhir

- Subjek: “Kesempatan terakhir, diskon 15% segera berakhir”
- Fokus: Kelangkaan + diskon yang lebih besar
- Diskon kedaluwarsa dalam 24 jam

## Contoh kode

### Aktifkan skill keranjang ditinggalkan

```javascript
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 }
  ]
});
```

### Lacak keranjang yang ditinggalkan

```javascript
// Call this when cart activity is detected
await tajo.events.track('cart_updated', {
  cartId: 'cart_abc123',
  customerEmail: 'jane@example.com',
  items: cartItems,
  total: 280.77
});

// Call this when customer leaves without checkout
// (typically from a beforeunload event or session timeout)
await tajo.events.track('cart_abandoned', {
  cartId: 'cart_abc123',
  customerEmail: 'jane@example.com',
  items: cartItems,
  total: 280.77,
  recoveryUrl: 'https://store.example.com/cart/recover/abc123'
});
```

### Hasilkan kode diskon

```javascript
// Generate a unique discount code
const discount = await tajo.discounts.create({
  type: 'percentage',
  value: 10,
  expiresIn: '7d',
  usageLimit: 1,
  prefix: 'SAVE10'
});

// discount.code => "SAVE10-ABC123"
```

## Analitik

Lacak performa pemulihan keranjang yang ditinggalkan:

| Metrik | Deskripsi |
| --- | --- |
| **Abandonment Rate** | % keranjang yang ditinggalkan |
| **Recovery Rate** | % keranjang ditinggalkan yang berhasil dipulihkan |
| **Revenue Recovered** | Total pendapatan dari keranjang yang dipulihkan |
| **Email Open Rate** | % email pemulihan yang dibuka |
| **Email CTR** | Click-through rate pada email pemulihan |
| **Time to Recovery** | Rata-rata waktu dari ditinggalkan hingga pembelian |

```javascript
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'
// }
```

## Praktik terbaik

Waktu sangat menentukan

Kirim email pertama dalam 1-2 jam setelah keranjang ditinggalkan. Tingkat pemulihan turun drastis setelah 24 jam.

1. **Personalisasi baris subjek** - Gunakan nama pelanggan dan isi keranjangnya
2. **Tampilkan isi keranjang** - Sertakan gambar produk di dalam email
3. **Bangun urgensi** - Sebutkan stok menipis atau diskon berbatas waktu
4. **Permudah pemulihan** - Tautan pemulihan keranjang sekali klik
5. **Uji rangkaian Anda** - Uji A/B waktu kirim, baris subjek, dan diskon
6. **Hormati unsubscribe** - Hentikan rangkaian seketika saat pelanggan berhenti berlangganan

## Skill terkait

- Event Keranjang - Lacak aktivitas keranjang
- Browse Abandonment - Pulihkan sesi penelusuran
- Win-Back - Libatkan kembali pelanggan tidak aktif

## Langkah berikutnya

1. Pastikan toko Anda mengirim event keranjang atau checkout. Belum ada konektor Tajo yang memverifikasi pelacakan keranjang pada toko
2. Buat template email di Brevo
3. Konfigurasikan integrasi kode diskon
4. Pantau performa di dasbor
