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

Текст

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

Собеседник написал текст в личный чат или в группу.

typeWebhook incomingMessageReceived
typeMessage textMessage
Флаг настроек incomingWebhook
Каналы MAX, Telegram, WhatsApp, почта

Пример

Мария пишет в личный чат MAX:

{
  "typeWebhook": "incomingMessageReceived",
  "instanceData": {"idInstance": 7100000001, "wid": "79990000001@c.us", "typeInstance": "v3", "channel": "max"},
  "timestamp": 1791823658,
  "idMessage": "117428955282341903",
  "eventId": "msg:8695836:117428955282341903",
  "senderData": {
    "chatId": "8695836", "chatName": "Мария", "chatType": "user",
    "sender": "8695836", "senderName": "Мария", "senderType": "user",
    "senderContactName": "", "senderPhoneNumber": 0
  },
  "messageData": {
    "typeMessage": "textMessage",
    "textMessageData": {"textMessage": "Здравствуйте! Есть места на субботу?"}
  }
}

Поля

Поле Описание
idMessage id сообщения — для ответа цитатой (quotedMessageId), реакции, «прочитано»
eventId ключ события — для защиты от повторной обработки
senderData.chatId куда отвечать: передайте его в chatId метода sendMessage
senderData.senderName имя собеседника в мессенджере
messageData.textMessageData.textMessage текст сообщения

Остальные поля конверта — в статье Формат уведомления.

В группе

chatId — группа, sender — участник, который написал:

"senderData": {
  "chatId": "-80040066617372", "chatName": "3А · Робототехника", "chatType": "group",
  "sender": "8695836", "senderName": "Мария", "senderType": "user",
  "senderContactName": "", "senderPhoneNumber": 0
}

В других каналах

Канал chatId и sender typeInstance
MAX "8695836" v3
Telegram "8617393401" telegram
WhatsApp "79991234567@c.us" whatsapp
Почта "maria@client.ru"; тема и цепочка — в emailMessageData, см. Письмо email

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

Ответить на текст и не обработать одно сообщение дважды:

def on_notification(body: dict) -> None:
    if body["typeWebhook"] != "incomingMessageReceived":
        return
    data = body["messageData"]
    if data["typeMessage"] != "textMessage":
        return
    if already_seen(body["eventId"]):          # ваша таблица обработанных событий
        return
    chat_id = body["senderData"]["chatId"]
    text = data["textMessageData"]["textMessage"]
    reply(chat_id, f"Получили: {text}", key=f"reply-{body['idMessage']}")

reply — вызов sendMessage с clientMessageId=key.

Что дальше

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