# Chuỗi email tự động

Tự động gửi chuỗi email chào mừng, lời cảm ơn sau thanh toán hay lời nhắc đánh giá cho từng contact khi có sự kiện trong cửa hàng.

Automation là một chuỗi bước chạy cho từng contact khi có chuyện xảy ra: email chào mừng khi có người vào danh sách, lời cảm ơn sau khi thanh toán, lời nhắc đánh giá sau ba ngày nếu khách chưa đánh giá. Bạn dựng chuỗi trong dashboard; Hạ Tầng chạy chuỗi đó cho mọi contact, với đúng khoảng chờ giữa các bước.

Dựng và bật automation cần quyền **Quản lý** trong module Email.

## Điểm bắt đầu: sự kiện

Mọi automation đều bắt đầu từ một **sự kiện**, tức một thời điểm có tên trong việc kinh doanh của bạn như `order.paid` hay `review.submitted`.

- **Có sẵn**: `hatang:contact.created` xảy ra mỗi khi có contact mới, dù thêm từ dashboard, nhập CSV hay qua API. Dùng sự kiện này cho chuỗi email chào mừng.
- **Sự kiện của bạn** do website hoặc ứng dụng gửi tới qua API, thường do lập trình viên cài đặt. Ví dụ cửa hàng gửi `order.paid` kèm mã đơn và số tiền.

Định nghĩa sự kiện của bạn:

1. Mở **Email → Automations** rồi vào **Sự kiện**.
2. Nhập **Tên** sự kiện, ví dụ `order.paid`.
3. Nếu muốn, mô tả **Payload**: các trường đi kèm và kiểu dữ liệu (`string`, `number`, `boolean`, `date`), như `order_id` và `total`. Hạ Tầng sẽ kiểm tra và chuyển kiểu giá trị gửi tới.
4. Bấm **Thêm sự kiện**.

Lập trình viên xem cách gửi sự kiện trong [hướng dẫn automation ở trang dành cho lập trình viên](https://hatang.dev/vi/docs/guides/email/automations).

## Dựng luồng

1. Mở **Email → Automations**, nhập tên và bấm **Tạo automation**.
2. Bấm **Bắt đầu từ một sự kiện** và chọn sự kiện.
3. Bấm **+** dưới một bước để thêm bước tiếp theo, rồi cài đặt bước đó ở khung bên phải.
4. Bấm **Lưu**, rồi **Bật**.

![Một automation: email cảm ơn, chờ ba ngày, chờ đánh giá, rồi gửi lời nhắc hoặc thêm vào segment](https://hatang.dev/help/img/vi/email/automation-flow.webp)

| Bước | Tác dụng | Cài đặt |
|---|---|---|
| **Gửi email** | Gửi một template đã publish tới contact | Chọn template; có thể ghi đè **Người gửi** và tiêu đề |
| **Chờ** | Đợi trước khi sang bước sau | Số phút, giờ, ngày hoặc tuần, tối đa 30 ngày |
| **Chờ sự kiện** | Đợi tới khi contact có thêm một sự kiện khác, hoặc thôi chờ | **Chờ tới khi có sự kiện** và **Hết giờ sau** (mặc định 30 ngày). Hai lối ra: **Có sự kiện** và **Hết giờ** |
| **Điều kiện** | Rẽ sang một trong hai hướng | Một trường, một phép so sánh (bằng, lớn hơn, chứa, có giá trị…) và một giá trị. Hai lối ra: **Đúng** và **Sai** |
| **Cập nhật contact** | Thay đổi contact | Đặt giá trị thuộc tính, hoặc huỷ đăng ký hay cho nhận lại |
| **Thêm vào segment** | Đưa contact vào một segment | Chọn segment |

Điều kiện có thể xét sự kiện đã khởi động lượt chạy (`event.total`), contact (`contact.city`, `contact.tier`…) và sự kiện mà bước **Chờ sự kiện** đã nhận.

Trong bước **Gửi email**, biến của template được điền từ sự kiện trước, rồi tới contact, nên template có `{{{order_id}}}` sẽ nhận mã đơn mà cửa hàng gửi kèm `order.paid`.

Hạ Tầng không cho bật automation thiếu sự kiện bắt đầu, dùng template chưa publish, hoặc có email chưa có địa chỉ người gửi.

## Ví dụ: cảm ơn và nhắc đánh giá

1. **Bắt đầu từ một sự kiện**: `order.paid`.
2. **Gửi email**: template "Cảm ơn bạn đã mua hàng".
3. **Chờ**: 3 ngày.
4. **Chờ sự kiện**: `review.submitted`, **Hết giờ sau** 4 ngày.
5. Ở lối **Hết giờ**: **Gửi email** với template "Trà có hợp vị không?".
6. Ở lối **Có sự kiện**: **Điều kiện** `event.stars` từ `5`, và ở lối **Đúng**, **Thêm vào segment** "Khách hàng thân thiết".

## Chạy thử

Cuối luồng có khung **Gửi sự kiện thử**: gửi sự kiện bắt đầu cho một địa chỉ bạn nhập, kèm payload nếu cần. Contact được tạo nếu chưa có và automation đang bật sẽ chạy thật, nên hãy dùng địa chỉ của chính bạn.

## Sửa automation đang chạy

- Các bước của automation **Đang bật** bị khoá. Bấm **Tắt** để sửa, hoặc **Nhân bản** để dựng phiên bản mới song song.
- Tắt automation sẽ huỷ các lượt chạy còn dang dở.
- Mỗi lượt chạy giữ nguyên phiên bản luồng lúc nó bắt đầu, kể cả khi bạn sửa automation sau đó.

## Theo dõi lượt chạy

Mỗi lần một contact đi vào automation, Hạ Tầng tạo một **lượt chạy**. Tab **Lượt chạy** liệt kê chúng theo trạng thái:

| Trạng thái | Ý nghĩa |
|---|---|
| **Đang chạy** | Đang thực hiện các bước |
| **Đang chờ** | Đang trong bước chờ, hoặc chờ một sự kiện |
| **Hoàn tất** | Đã đi hết luồng |
| **Lỗi** | Một bước bị lỗi; mở lượt chạy để xem lỗi |
| **Đã huỷ** | Bị dừng, ví dụ vì automation đã bị tắt |

Mở một lượt chạy để xem từng bước, thời điểm chạy và kết quả. Contact đã huỷ nhận mọi email thì không được gửi thư: bước **Gửi email** hiện **Bỏ qua**. Email do automation gửi cũng hiện ở **Email → Email** như mọi email khác.

> [!NOTE]
> Automation trong Email gửi email tới contact. Muốn tự động hoá hội thoại trong Hộp thư, như tự trả lời hay quy tắc phiếu hỗ trợ, hãy dùng [workflow](https://hatang.dev/vi/help/automation/workflows) trong module **Hỗ trợ khách hàng**.
