# Gửi tin Zalo ZNS từ backend

ZNS (Zalo Notification Service) gửi một mẫu tin đã duyệt tới số điện thoại qua Zalo Official Account của bạn, kể cả khi khách chưa từng nhắn tin. Hạ Tầng kết nối OA một lần và cho bạn một lệnh gọi API; tin trả lời về chung hộp thư với các kênh khác.

**Trước khi bắt đầu:** kết nối Zalo OA ở **Hỗ trợ → Kênh**, đưa OA lên gói Zalo có ZNS, và duyệt mẫu tin ở oa.zalo.me. Dùng API key có scope `crm:write`.

```ts
import { Hatang } from "@hatang/sdk";

const hatang = new Hatang(); // HATANG_API_KEY

const { data, error } = await hatang.chat.zns.send({
  account_id: "cha_123", // OA đã kết nối
  template_id: "231234", // mẫu tin đã duyệt
  phone: "0912345678", // 84912345678 và +84 912 345 678 cũng được
  template_data: { customer_name: "Lan", order_code: "DH1024", amount: "350.000đ" },
});
if (error) throw new Error(error.message);
if (data.status === "failed") console.error("Zalo từ chối:", data.error);
```

Lệnh tương đương qua HTTP là `POST https://api.hatang.dev/chat/zns`. Xem các mẫu tin và hạn mức trong ngày của một OA bằng `hatang.chat.zns.templates("cha_123")`.

Zalo tính phí từng tin. Để gửi cho nhiều khách một lúc, hoặc gửi từ workflow khi đơn hàng được thanh toán, xem hướng dẫn đầy đủ.

## Tìm hiểu thêm

- Mẫu tin, gửi hàng loạt, workflow và lỗi: [Zalo ZNS](https://hatang.dev/vi/docs/guides/support/zns.md)
- Mọi thứ khác API hỗ trợ khách hàng làm được: [REST API hỗ trợ khách hàng](https://hatang.dev/vi/docs/guides/support/rest-api.md)

Source: https://hatang.dev/vi/docs/guides/recipes/zalo-zns
