# Send Zalo ZNS notifications

Send approved Zalo template messages, such as order confirmations and payment reminders, to customers' phone numbers through your Official Account.

ZNS (Zalo Notification Service) sends a template message to a phone number through your Zalo Official Account. The customer does not need to have messaged you first, which makes ZNS the right tool for order confirmations, payment reminders and delivery updates. Zalo charges for each message.

You can send ZNS from an order, to a filtered list of customers, automatically from a workflow, or from your own systems through the API.

## Before you start

1. **Connect your Zalo Official Account** under **Customer Support → Channels**. Only OAs with the status **Active** can send. See [Connect a Zalo Official Account](https://hatang.dev/help/channels/zalo-oa).
2. **Put the OA on a paid Zalo package** that includes ZNS. Without it, Ha Tang cannot load your templates.
3. **Create templates and get them approved** in the Zalo OA admin: oa.zalo.me → ZNS → Templates. Ha Tang lists only approved templates; you cannot write a ZNS message freely.
4. **Keep the CRM module on.** ZNS belongs to it: while it is off, queued messages are not sent. See [Modules](https://hatang.dev/help/getting-started/modules).

## The Zalo ZNS page

Go to **Customer Support → Channels**. The **Zalo ZNS** card has a **ZNS settings** button that opens the page. For the selected OA it shows:

- **Quota today**: messages left today out of the OA's daily quota, set by Zalo;
- how many messages were sent, failed and are queued;
- the approved templates with their **Id**, status, **Quality** and **Price** per message;
- **Recent sends**: time, phone number, template, status (with Zalo's error when it failed) and links to the order and the customer.

If the business has several OAs, choose one at the top. **Send to customers** opens the bulk sending page.

## Send a notification for an order

1. Open the order under **Products → Orders**.
2. On the **Zalo ZNS** card, click **Send notification**.
3. Choose the OA and the template. The phone number comes from the order's shipping address and must be a Vietnamese mobile number.
4. Fill in the template's parameters. Ha Tang pre-fills those whose names suggest the customer's name, the order code, the total or the phone number.
5. Click **Send ZNS**.

The message is sent at once. The card shows **Sent** with Zalo's message id, or Zalo's error.

## Send to a list of customers

From **CRM → Customers**, filter the list and click **Send ZNS** (also in the sidebar as **ZNS sending**). You choose the template, map each parameter to a customer detail or a fixed text, check how many customers have a phone number, and queue up to 5,000 messages. See [Send ZNS to customers](https://hatang.dev/help/customers/send-zns).

## Send automatically from a workflow

Add a **Send ZNS** step to a [workflow](https://hatang.dev/help/automation/workflows), for example on **An order is paid**:

1. Choose the **Zalo OA**.
2. Enter the **ZNS template id** (the **Id** column on the Zalo ZNS page).
3. Under **Parameters (one per line: name=value)**, write each template parameter, for example `customer_name={{name}}` and `order_code={{order_code}}`. Values can use `{{name}}`, `{{phone}}`, `{{email}}`, `{{order_code}}`, `{{order_total}}`, `{{rating}}` and `{{site}}`.

The step uses the customer's phone number and is skipped when there is none.

> [!WARNING]
> Zalo charges for every message, including messages sent by workflows. Check the template's price and who the workflow's conditions match before you turn it on.

## Troubleshooting

| What you see | Cause | What to do |
|---|---|---|
| "Could not load templates: … ZNS needs the OA on a paid tier with approved templates." | The OA is on a free package, or its connection expired | Upgrade the OA, or reconnect it under **Customer Support → Channels** |
| "No approved templates" | No template has been approved yet | Create templates at oa.zalo.me → ZNS → Templates and wait for Zalo's approval |
| "Connect a Zalo Official Account …" | No active Zalo OA | Connect the OA, or reconnect it if it needs re-authorization |
| A send shows **Failed** | Zalo refused it: wrong parameters, quota used up, or the number has no Zalo account | Read the error in **Recent sends**, fix the parameters or wait for the quota to reset |
| Bulk messages stay **Queued** | The CRM module is off | Turn the module back on |
| The workflow step is skipped | The customer has no phone number | Collect phone numbers with a flow or the AI assistant |

A Zalo personal account cannot send ZNS. For developers, the [ZNS API](https://hatang.dev/docs/guides/support/zns) sends single and bulk messages and reports each result by webhook.
