Перейти до контенту
Усі відповіді

ok:true не означає «дійшло»: прийом проти результату

Майже кожна інтеграція відповідає на запит чимось на кшталт ok:true. Програміст бачить успіх, пише в журнал «надіслано» і йде далі. Але цей ok майже ніколи не означає, що сталося те, заради чого запит робили. Він означає, що інша сторона прийняла запит в обробку. Між «прийнято» і «зроблено» лежить ціла система, яка може відмовити мовчки. Ми наступали на це в повідомленнях, в оплатах і в документах — і правило звідти одне.

Прийом і результат — два різні факти

Будь-яка зовнішня система відповідає на найдешевше питання: «чи прийняв я твій запит?». Питання, яке цікавить бізнес, — «чи отримав клієнт повідомлення», «чи запустився пост», «чи зареєстровано чек» — відповідається пізніше, іншим каналом, а іноді не відповідається взагалі, якщо його не запитати. Система, яка рахує перше як друге, звітує про успіх у день, коли частина роботи не виконана.

Приклад 1. Повідомлення клієнту чи співробітнику

У WhatsApp Business API відповідь «успішно» означає, що платформа взяла повідомлення. Далі його можуть не доставити: поза вікном 24 години вільний текст не проходить зовсім, а навіть затверджений шаблон платформа може притримати з кодом 131049 — вона сама обмежує, скільки повідомлень доходить до одного отримувача.

У нашій системі продажів через месенджер це видно на службових сповіщеннях. Поза вікном довгий текст підміняється шаблоном, у якому лишається лише перший змістовний рядок. А кілька сповіщень підряд одній людині вичерпують її ліміт — і наступні просто не доходять, хоча кожне отримало успішну відповідь. Звідси два правила: перший рядок будь-якого службового повідомлення має сам по собі нести суть, і замість трьох сповіщень підряд краще одне зведене.

Приклад 2. Оплата на автоматі

Еквайр підтвердив оплату — це факт про гроші, а не про послугу. Клієнт міг заплатити, а пост не запуститись: обрив звʼязку з контролером, збій живлення, помилка в команді запуску. У звірці це окрема категорія розбіжності: оплат більше, ніж запусків. Вона не менш важлива за недостачу, бо це клієнти, які заплатили дарма, і їхні скарги вже в дорозі.

Приклад 3. Фіскальний чек

Відправити чек і зареєструвати його — теж різні події. Те, що прийнято грошима, і те, що фіскалізовано, — два числа, і їхня різниця є індикатором здоровʼя всієї установки. Поки вона нуль, усе гаразд. Коли ні — щось зламалося, і краще дізнатися це з власної панелі, ніж із перевірки.

Як будувати перевірку результату

Записувати два статуси, а не один. «Прийнято» і «підтверджено результат» — окремі поля з окремими часовими мітками. Між ними — стан «чекаємо», який має свій строк.

Читати канал результату. Для повідомлень — вебхуки статусів доставки, для оплат — подію запуску від контролера, для чеків — відповідь фіскального сервера. Не код відповіді на відправку.

Логувати провал гучно. Мовчазна неуспішність — найдорожча. Якщо «не дійшло» видно лише тому, хто сам пішов шукати, його не побачить ніхто.

Звіряти підсумки. Раз на день: скільки відправлено, скільки підтверджено, скільки зависло. Різниця має бути або нулем, або списком з причинами.

Мати запасний шлях. Те, що не дійшло автоматично, має потрапити до людини, яка доведе справу вручну.

Чому це питання не лише техніки

За двадцять місяців наша система продажів у месенджері обробила 3 332 повідомлення, провела 260 замовлень і згенерувала 196 документів. На такому обсязі «майже все дійшло» означає конкретних людей, які чогось не отримали: клієнта, що не побачив рахунок, співробітника, що не знав про задачу. Звіт, який рахує прийняте як доставлене, приховує саме їх.

Часті питання

Чи можна довіряти коду 200 від API?
Як доказу, що запит прийнято, — так. Як доказу, що результат настав, — ні. Для цього потрібен окремий канал: статус доставки, подія від обладнання, відповідь фіскального сервера.
Що таке помилка 131049 у WhatsApp?
Це відмова платформи доставити повідомлення, щоб не перевантажувати отримувача. Вона приходить уже після успішної відповіді на відправку, тому її видно лише в статусах доставки.
Як не засипати співробітників сповіщеннями і не втратити важливе?
Зводити кілька подій в одне повідомлення з посиланням на систему, де видно деталі, і класти суть у перший рядок.
Скільки коштує така перевірка?
Залежить від кількості інтеграцій і того, чи вони взагалі віддають статус результату. Ціну конкретного проєкту називаємо лише після розмови.

Ще відповіді

Оновлено: 2026-10-10