Новые тарифы Zalo OA с июня 2026: как одна трансграничная команда продолжила получать сообщения Zalo без бюрократии Official Account — UnifyPort
1 июня 2026 года вступили в силу новые тарифы на сервис официальных аккаунтов (OA) Zalo. Для команды из пяти человек, продающей косметику из небольшого офиса в Хошимине, письмо пришло в худший момент: в разгар кампании, когда двое сотрудников уже почти весь день отвечали клиентам в чатах Zalo и WhatsApp. Уведомление о тарифах заставило задать вопрос, который они откладывали: во сколько нам реально обойдётся продолжать делать то, что мы и так делаем?
А делали они нечто простое. Клиент пишет магазину в Zalo. Кто-то отвечает. Всё. Никаких рассылок, никакого маркетингового спама, никаких автоматических цепочек. Но путь, который Zalo предлагает «бизнесу, желающему получать сообщения программно», проходит через весь аппарат официального аккаунта — а этот аппарат построен для тех, кто вещает, а не для команды, которой нужно лишь отвечать тем, кто написал первым.
«Беговая дорожка» OA и почему она не подошла
Получать сообщения Zalo по официальному маршруту — значит поднять официальный аккаунт, пройти верификацию и затем жить по правилам OA. Больнее всего бьёт окно взаимодействия: OA может свободно писать пользователю только в течение ограниченного окна после того, как тот сам связался с вами. Выйдите за его пределы — ответьте на следующее утро, отправьте обновление по заказу через два дня — и вы уже в зоне Zalo Notification Service (ZNS), где каждое сообщение идёт по заранее одобренному шаблону и тарифицируется поштучно.
Для вещателя это разумная сделка. Для магазина из пяти человек это беговая дорожка. Каждый шаблон нужно написать, отправить на проверку и дождаться одобрения, прежде чем им можно пользоваться. Изменения тарифов от 1 июня переразбили планы OA и сдвинули границу между тем, что входит в бесплатную квоту, и тем, что оплачивается отдельно — и команда поняла так: их по-настоящему малообъёмное, разговорное использование вот-вот станет и дороже, и бюрократичнее одновременно. Они не рассылали тысячи маркетинговых сообщений. Они отвечали на вопросы. А от них требовали принять структуру затрат и процесс согласования компании, которая делает то, чем они попросту не занимаются.
И Zalo был лишь одним из ящиков. Те же двое сотрудников весь день сидели и в WhatsApp, у которого свой механизм — бизнес-верификация, поштучная оплата, собственное одобрение шаблонов. Две платформы, два совершенно разных свода правил, две интеграции, если когда-нибудь захочется автоматизировать. Цена измерялась не только деньгами: каждый канал требовал, чтобы команда сперва освоила отдельную систему, прежде чем сделать ровно одно, чего им хотелось, — увидеть входящее сообщение и ответить.
Переосмысление: им нужны были входящие, а не Official Account
Озарение, которое всё распутало, — отделить то, что им нужно, от того, что официальный путь продаёт в нагрузку. Машинерия рассылок OA — шаблоны, ZNS, окна взаимодействия, тарифные уровни — существует, чтобы бизнес мог инициировать контакт в масштабе. Эта команда никогда не инициировала. Каждый разговор начинал клиент. Им нужно было лишь надёжно принимать входящее сообщение и отвечать внутри того разговора, который клиент уже открыл.
Это куда меньшая задача, чем «вести официальный аккаунт». Использование «только входящие, ответ в рамках сессии» вообще не требует инструментов рассылки. Как только это стало видно, вопрос «какой план OA купить» сменился на «как проще всего доставить входящее сообщение Zalo на наш бэкенд и отправить ответ в тот же чат».
Один вебхук для Zalo и WhatsApp
Они подключили оба аккаунта через неофициальный интерфейс входящих сообщений UnifyPort, который ставит каждый канал за один нормализованный вебхук вместо отдельной интеграции на платформу. Сообщение Zalo и сообщение WhatsApp приходят в абсолютно одинаковом виде — разница лишь в поле provider:
{
"event": "message.received",
"account_id": "acct_7Hm2pX",
"provider": "zalo",
"from": "user_9a3f21",
"text": "Sản phẩm này còn hàng không ạ?",
"timestamp": 1749513600,
"message_id": "zalo_msg_4c8e1d"
}
Их бэкенд подписан на одно событие, message.received, и маршрутизирует по одному полю. Код, обрабатывающий сообщение Zalo, — это тот же код, что обрабатывает сообщение WhatsApp: на приёмной стороне нет ветвлений по платформам:
app.post("/webhook", (req, res) => {
if (!verifySignature(req)) return res.sendStatus(401);
const evt = req.body;
if (evt.event === "message.received") {
// evt.provider — "zalo" или "whatsapp", маршрутизация одинакова
queue.add({
channel: evt.provider,
customer: evt.from,
text: evt.text,
accountId: evt.account_id,
});
}
res.sendStatus(200);
});
Каждая доставка подписана, поэтому команда проверяет подлинность через HMAC-SHA256 по signing_secret, заданному на вебхуке, прежде чем доверять любому payload — это тот же шаг verifySignature независимо от платформы. Ответ — зеркальная операция: один вызов POST /v1/messages с указанием аккаунта и получателя. Поскольку клиент написал первым, каждый ответ попадает внутрь открытого им разговора — ровно то взаимодействие в рамках сессии, что команда делала вручную, теперь скриптуемое и без единого шаблона на предварительное одобрение.
На практике уведомление о тарифах от 1 июня перестало быть бюджетной катастрофой. Команде не пришлось докупать более высокий уровень OA, чтобы продолжать отвечать на малообъёмные, инициированные клиентами чаты. Двое в поддержке работали в тех же двух ящиках, только теперь оба ящика вели в одну очередь, одну схему и один путь ответа — а добавить позже LINE для тайского поставщика оказалось всё тем же обработчиком message.received, а не третьим проектом интеграции.
Что из этого вынести
Урок не в том, что «избегайте официального аккаунта Zalo» — если вы крутите рассылочные кампании в объёме, OA и ZNS созданы именно для этого, и их стоит использовать. Урок в том, чтобы проверить: официальный путь решает вашу задачу — или задачу побольше, которой у вас нет. Изменение тарифа, нацеленное на крупных вещателей, может тихо поднять стоимость простого «отвечать клиентам», потому что официальный маршрут упаковывает оба поведения в один аккаунт.
Если всё, что нужно, — принимать входящие и отвечать в рамках сессии, это отделимая и куда более дешёвая задача. Направьте бэкенд на нормализованный входящий вебхук, подпишитесь на message.received — и сообщения Zalo пойдут в вашу очередь без «беговой дорожки» OA, а остальные пять каналов придут через тот же обработчик в тот день, когда понадобятся.