Перейти к содержимому

Ответ кнопкой

Обновлено 18 октября 2026

Посетитель нажал кнопку-ответ из сообщения, отправленного sendInteractiveButtons и sendButtons. Кнопки-ссылки, звонок и копирование уведомлений не дают: они работают сразу в окне.

typeWebhook incomingMessageReceived
typeMessage buttonsResponseMessage
Флаг настроек incomingWebhook
Каналы чат на сайте

Пример

Посетитель выбрал «Пробное занятие»:

{
  "typeWebhook": "incomingMessageReceived",
  "instanceData": {"idInstance": 7100000001, "wid": "sk3m7qz2a4bt6cdxy", "typeInstance": "site", "channel": "site"},
  "timestamp": 1791823702,
  "idMessage": "i7c1e5a0b3d9f2486ac0e1b7d3f5a9c42",
  "senderData": {
    "chatId": "vq3k7m2x4a6b2c4d6e7f2g3h4", "chatName": "Посетитель G-7K4MXQ", "chatType": "user",
    "sender": "vq3k7m2x4a6b2c4d6e7f2g3h4", "senderName": "", "senderType": "user",
    "senderContactName": "", "senderPhoneNumber": 0
  },
  "messageData": {
    "typeMessage": "buttonsResponseMessage",
    "buttonsResponseMessage": {
      "stanzaId": "o2b7e41c09d8f3a6b5c4d2e1f0a9b8c",
      "selectedButtonId": "trial",
      "selectedButtonText": "Пробное занятие"
    },
    "siteMessageData": {
      "ref": "G-7K4MXQ",
      "page": {"url": "https://school.ru/prices", "title": "Цены"},
      "referrer": "https://yandex.ru",
      "utm": {"utm_source": "yandex", "utm_campaign": "autumn"},
      "device": "mobile",
      "lang": "ru",
      "attributes": {}
    }
  }
}

Поля

Поле Описание
buttonsResponseMessage.stanzaId idMessage сообщения с кнопками
buttonsResponseMessage.selectedButtonId buttonId нажатой кнопки — как вы его задали
buttonsResponseMessage.selectedButtonText надпись кнопки — из вашего сообщения, а не из браузера
siteMessageData как у текста — см. Реплика с сайта

Кнопки-ответы исчезают после выбора: на одно сообщение придёт не больше одного нажатия.

Как обработать

Ответить по выбранной кнопке:

def on_button(body: dict) -> None:
    data = body["messageData"]
    if data["typeMessage"] != "buttonsResponseMessage":
        return
    chat = body["senderData"]["chatId"]
    choice = data["buttonsResponseMessage"]["selectedButtonId"]
    if choice == "trial":
        send_trial_form(chat)                          # например, sendForm с записью на пробное

send_trial_form — ваш код.

Что дальше

Была ли статья полезна?