WhatsApp: отключить уведомления или заблокировать контакт?
Отключайте уведомления WhatsApp, если нужно уменьшить шум от чата. Блокируйте контакт, если нужно прекратить сообщения от конкретного человека этому аккаунту. Ни одно из этих действий не заменяет внутренние команды «приостановить автоответы» или «закрыть обращение». В общем входящем ящике эти решения должны быть независимыми: снижение шума не должно случайно отрезать клиента от поддержки или оставлять ИИ-ответы включёнными.
Три механизма для разных задач
Справка WhatsApp об уведомлениях рассматривает отключение звука как настройку уведомлений чата. Справка о блокировке поясняет: заблокированный контакт больше не может звонить вам и отправлять сообщения. После разблокировки сообщения, отправленные во время блокировки, не поступят. Значит, блокировка — не буфер, из которого можно позже забрать накопившееся.
| Цель | Подходящий механизм | Чего он не означает |
|---|---|---|
| Уменьшить шум уведомлений | Отключить уведомления беседы | Обращение закрыто или приём webhook остановлен |
| Прекратить контакт с человеком | Заблокировать после решения уполномоченного сотрудника | Старые данные удалены или сообщения поступят после разблокировки |
| Остановить ответы ИИ | Собственная пауза автоматизации в приложении | Настройка провайдера отменит задания в вашей очереди |
| Сохранить задачу для последующей работы | Локальный статус обращения, при необходимости отметка «не прочитано» | Непрочитанный чат автоматически отключён от уведомлений |
Последние две строки — рекомендации по архитектуре приложения, а не дополнительные функции WhatsApp API. Различия статусов чтения разобраны в руководстве по синхронизации прочитанного и непрочитанного. Настройки уведомлений, отчёты о прочтении и назначение ответственного решают разные задачи.
Какие операции предоставляет UnifyPort
Неофициальный интерфейс UnifyPort разделяет операции с беседами и контактами. Ниже описан контракт UnifyPort, а не маршруты Meta Cloud API.
| Операция | Входные данные и ограничения | Документация |
|---|---|---|
| Отключить уведомления | conversation_id и либо duration в секундах, либо будущий момент mute_until в RFC3339; одновременно передавать нельзя | Mute conversation |
| Включить уведомления | conversation_id | Unmute conversation |
| Заблокировать или разблокировать | contact_id с каноническим WhatsApp LID вида digits@lid | Блокировка и разблокировка |
| Проверить список блокировок | Ответ содержит data.blocklist и отпечаток списка data.dhash | Получение списка |
Значение duration: 0 отключает уведомления бессрочно. Это не команда включения уведомлений: для неё предусмотрена отдельная операция.
Перед добавлением кнопок проверьте матрицу поддержки операций. В текущей документации блокировка, разблокировка и чтение списка блокировок сопоставлены с WhatsApp. Отключение уведомлений поддерживается для WhatsApp и частично для LINE; включение уведомлений также сопоставлено с LINE. Общий маршрут не обещает одинакового поведения всех провайдеров. Неподдерживаемые сочетания возвращают 501 unsupported_by_provider.
Не конструируйте идентификатор для блокировки
Для блокировки и разблокировки WhatsApp нельзя подставить номер телефона или JID с @s.whatsapp.net вместо канонического LID. Получайте фактический идентификатор через документированный процесс работы с контактами. Приписывание @lid к номеру телефона не делает его идентификатором того же человека.
Ответ контакта может содержать разные id, provider_user_id и conversation_id. Сохраняйте их значения и смысл отдельно. Руководство по Contact API и vCard объясняет ещё одно важное различие: изменение адресной книги не равно отправке карточки контакта. Эта статья не требует добавлять человека в контакты ради последующей блокировки.
Сначала определите решение, затем вызывайте API
Представим очередь поддержки, в которую поступают повторяющиеся сообщения. Если их всё ещё нужно проверять, отключение уведомлений может уменьшить шум, а локальная пауза — предотвратить нежелательные ответы ИИ. Решение уполномоченного сотрудника заблокировать контакт должно быть отдельным явным изменением.
Рекомендуемый процесс приложения:
- Назовите действия однозначно. Показывайте отдельные кнопки «Отключить уведомления», «Заблокировать контакт» и «Приостановить автоответы». Привязывайте их к выбранному аккаунту обмена сообщениями и адресату.
- Подтвердите адресата. Для блокировки нужен проверенный канонический LID, связанный с этим аккаунтом. При неопределённости передайте задачу человеку, а не угадывайте.
- Запишите намерение локально. Сохраните исполнителя, причину, адресата и запрошенное действие. Это записи вашего аудита, а не дополнительные поля API-запроса.
- Проверьте результат. Документированный ответ изменения содержит
data.ok. Нажатие кнопки само по себе не означает успех. Сохраняйте очищенную от секретов ошибку иrequest_idдля диагностики. - Уточняйте неопределённый исход. После тайм-аута блокировки или разблокировки прочитайте список перед новой операцией. Сравнивайте идентификаторы последовательно.
dhashобнаруживает изменение списка, но не показывает, кто и почему его изменил. - Отдельно обработайте задания автоматизации. Задание, созданное до решения, может оставаться в базе. Перед отправкой воркер должен проверять локальную политику паузы. Настройка провайдера не отменяет вашу очередь.
Для изменений уведомлений справочник событий описывает conversation.updated с настройками вроде muted и mute_until. Полученные события — наблюдения состояния, а не гарантия подтверждения каждой операции. Публичный каталог не описывает событие блокировки контакта: используйте список блокировок, не придумывая новое событие.
Приёмочные проверки и ограничения
Проверяйте на аккаунтах, которыми управляете. Интерфейс должен отличать ошибку от применённого изменения; включение уведомлений не должно вызывать разблокировку; разблокировка не должна автоматически запускать старые задания ответов. Проверьте отклонение неверного идентификатора и тайм-аут с неизвестным результатом. Это предлагаемые тесты, а не отчёт об их выполнении.
Не используйте отключение уведомлений для управления потоком webhook. Документированная операция меняет состояние беседы, но не обещает остановку доставки событий. Также эта статья не обещает, что блокировка удалит сохранённые сообщения, обеспечит модерацию общей группы или отменит действия в CRM. Такие правила нужно определить отдельно.
Если достаточно ручной работы в приложении WhatsApp, используйте его встроенные инструменты. Если требуется официальная бизнес-интеграция, отдельно изучите её контракт: эти маршруты UnifyPort не являются официальными эндпоинтами WhatsApp.
Частые вопросы
Отключение уведомлений остановит автоответы?
Не рассчитывайте на это. Реализуйте явную локальную паузу, которую проверяет воркер ответов. Операция не документирована как отмена заданий.
Можно заблокировать контакт по JID с номером телефона?
Не через документированную операцию WhatsApp в UnifyPort. Нужен канонический digits@lid, а не номер телефона или значение с @s.whatsapp.net.
После разблокировки придут сообщения за период блокировки?
Нет. Официальная справка WhatsApp прямо говорит, что они не поступят. Не представляйте блокировку как обратимое накопление сообщений.
Изменение dhash доказывает успех моей операции?
Само по себе — нет. Это отпечаток всего списка. Проверьте наличие или отсутствие нужного контакта и отдельно сохраните результат операции.
Следующий шаг и источники
Начните со справочника блокировки контакта и проверьте сопоставление идентификаторов до включения кнопки в общем входящем ящике.
Проверено 2026-09-25:
Превратите интеграцию сообщений в стабильный продуктовый pipeline.
Начните с отправки через единый API, затем возвращайте входящие сообщения в бизнес-систему стандартными событиями.