Посетитель заполнил и отправил форму — вашу из sendForm или встроенную форму контакта окна. Поля приходят по ключам, а для людей — ещё и текстом с подписями.
typeWebhook |
incomingMessageReceived |
typeMessage |
formResponseMessage |
| Флаг настроек | incomingWebhook |
| Каналы | чат на сайте |
Пример
Посетитель записался на пробное:
{
"typeWebhook": "incomingMessageReceived",
"instanceData": {"idInstance": 7100000001, "wid": "sk3m7qz2a4bt6cdxy", "typeInstance": "site", "channel": "site"},
"timestamp": 1791823760,
"idMessage": "i9a4d2c7e1b0f3586de2a1c9b7f4e0d31",
"senderData": {
"chatId": "vq3k7m2x4a6b2c4d6e7f2g3h4", "chatName": "Мария", "chatType": "user",
"sender": "vq3k7m2x4a6b2c4d6e7f2g3h4", "senderName": "Мария", "senderType": "user",
"senderContactName": "", "senderPhoneNumber": 0
},
"messageData": {
"typeMessage": "formResponseMessage",
"formResponseMessage": {
"stanzaId": "o5d3c2b1a0f9e8d7c6b5a4f3e2d1c0b",
"formId": "f3a91c2e07b4d",
"fields": {"name": "Мария", "phone": "+79991234567", "day": "Суббота"},
"consent": {"mode": "notice", "accepted": true, "version": "n3f1c0a9b2d4e6f70", "at": "2026-10-19T08:49:20+00:00"}
},
"textMessageData": {"textMessage": "Имя: Мария\nТелефон: +79991234567\nДень: Суббота"},
"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": {}
}
}
}
Поля
| Поле | Описание |
|---|---|
formResponseMessage.stanzaId |
idMessage сообщения с формой. У формы контакта, которую окно показало само, — null |
formResponseMessage.formId |
id формы: ваш или выведенный Gratio, у формы контакта — contact |
formResponseMessage.fields |
значения полей по ключам key |
formResponseMessage.consent |
согласие, данное с этой формой: mode — notice, contact или chat, как у реплики, см. Реплика с сайта |
textMessageData.textMessage |
поля с подписями формы — текстом для людей |
siteMessageData |
как у текста — см. Реплика с сайта |
Имя из формы становится именем посетителя: chatName — «Мария» вместо «Посетитель G-7K4MXQ».
Как обработать
Завести заявку из формы записи:
def on_form(body: dict) -> None:
data = body["messageData"]
if data["typeMessage"] != "formResponseMessage":
return
form = data["formResponseMessage"]
create_booking(name=form["fields"].get("name"), phone=form["fields"].get("phone"),
day=form["fields"].get("day"), consent=form.get("consent"))
create_booking — ваш код.
Что дальше
- sendForm — отправить форму.
- Ответ кнопкой — нажатие кнопки.
- getVisitor — журнал согласий посетителя.
