← Назад к заметкам

Заметки

Как удалять приветствие бота после подтверждения клиента

Как удалить или обновить приветственное сообщение бота после подтверждения клиента: ITR, таймер и удаление сообщения.

Чтобы удалить приветствие, нужно сохранить ID сообщения при отправке. Без ID потом останется только искать сообщение в истории, что сложнее и менее надёжно.

Задача

Бот отправляет приветствие с кнопкой подтверждения, а после ответа клиента это сообщение нужно убрать или заменить.

Такой сценарий полезен, чтобы чат не захламлялся старыми кнопками и клиент видел только актуальный шаг.

Сохранить ID сообщения

При отправке приветствия сохраните message ID вместе с ID чата и клиентом.

[
    'CHAT_ID' => 'chat789',
    'MESSAGE_ID' => 555,
    'CLIENT_ID' => 'telegram_1001',
    'STATUS' => 'waiting_confirm',
]

Эту запись можно хранить в HL-блоке, таблице модуля или другой служебной структуре.

Удалить или обновить

После подтверждения можно удалить сообщение или заменить текст на финальный.

BX24.callMethod(
    'imbot.v2.Chat.Message.delete',
    {
        botId: 42,
        messageId: 555,
    },
    function (result) {
        console.log(result.error() || result.data());
    }
);

Если удаление недоступно по правам или типу сообщения, используйте обновление текста: например, заменить кнопки на «Подтверждено».

Таймер для старых приветствий

Если клиент не ответил, приветствие можно закрывать по таймеру.

Таймер лучше делать очередью и агентом, а не ожиданием внутри обработчика. Агент находит устаревшие приветствия и удаляет или обновляет их.