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

Чат на сайте через API

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

Посетитель пишет в окне на сайте, реплика приходит вашему приложению уведомлением incomingMessageReceived. Отвечаете вы теми же методами, что в мессенджерах: sendMessage, файлы, правка, реакции. Сверх них у сайта есть подпись автора, кнопки, формы и методы посетителя. Как поставить окно — в статье Чат на сайте.

Посетитель          Окно на сайте            Gratio                  Ваше приложение
    │ реплика ──────────►│─────────────────────►│── incomingMessage ──────►│
    │                    │                      │◄── sendMessage + author ─│
    │◄─ «Алина · ИИ» ────│◄─────────────────────│                          │
    │ нажал кнопку ─────►│─────────────────────►│── buttonsResponse ──────►│

Что делают общие методы

Метод У сайта
sendMessage текст до 4000 знаков, цитата quotedMessageId, подпись author; typingTime — сначала «печатает» до 20 секунд, потом текст
sendFileByUpload, sendFileByUrl JPEG, PNG, GIF, WebP — картинкой в ленте; остальное, в том числе SVG и PDF, — файлом для скачивания. С caption и author
editMessage правка своего сообщения — в окне сразу
deleteMessage у всех: сообщение и его файлы пропадают у посетителя. onlySenderDelete: true — только пометка в журнале
sendReaction реакция компании на любое сообщение чата, один эмодзи; getAllowedReactions отдаёт 10 предложенных
sendTyping «печатает» в окне: typingTime 1000–20000 мс; только у сайта 0 — перестал печатать. С author
readChat вы прочитали реплики посетителя: у него в окне ✓✓
getChatHistory, getMessage вся переписка с посетителем, вместе с siteMessageData
getChats, getContacts посетители по последней активности, до 1000; имя — как в chatName
getContactInfo имя посетителя из формы или «Посетитель G-7K4MXQ»; номера нет

Без поддержки, с ответом 501: группы, звонки, истории Telegram, checkAccount, геопозиция, контакт, опрос, пересылка, архив и закреп чатов, поиск и вступление.

Только у сайта

Что Где
Подпись ответа: ИИ-ассистент, сотрудник или компания Автор сообщения
Кнопки: ответы, ссылки, звонок, копирование sendInteractiveButtons и sendButtons
Форма в ленте: поля, проверка, согласие sendForm
Данные посетителя: страницы, UTM, устройство, согласия getVisitor
Выгрузить и удалить данные посетителя по его просьбе exportVisitor, deleteVisitor
Код вставки и где его видели getSiteCode
Счётчики за 7 дней getSiteStats
Вид окна, тексты, часы работы, согласие Настройки окна

Уведомления

Что пришло typeMessage Формат
реплика посетителя — текст или файл textMessage, imageMessage, documentMessage Реплика с сайта
посетитель нажал кнопку buttonsResponseMessage Ответ кнопкой
посетитель отправил форму formResponseMessage Ответ формой
ваши кнопки и формы interactiveButtons, formMessage Свои сообщения

У каждой реплики посетителя есть siteMessageData: номер обращения, страница, UTM, устройство, согласие, «позвал сотрудника».

Статусы своих сообщений (outgoingMessageStatus): sent — записано для окна, delivered — окно посетителя получило, read — посетитель видел: окно открыто, вкладка на экране, лента прокручена вниз. Если окно не открывали, сообщение ждёт следующего визита.

Согласие на обработку данных

По умолчанию галочки нет: под полем ввода и у кнопки формы — строка «Отправляя сообщения в этот чат, вы принимаете политику обработки персональных данных». С первой репликой посетителя Gratio пишет в журнал согласий запись «уведомление принято». Режимы с галочкой и документ согласия — в статье Настройки окна. Журнал согласий посетителя — в getVisitor.

Пределы

Что Предел
Реплики посетителя до 10 в минуту и 300 в сутки, текст — до 4000 знаков
Файлы посетителя после первой текстовой реплики; до 10 МБ и до 5 за раз: JPEG, PNG, WebP, GIF, PDF, DOCX, XLSX, PPTX, TXT, CSV
Новые посетители с одного адреса до 20 в час; сверх — первая реплика приходит с suspect: true
Посетитель без активности 90 дней, затем — новый chatId

Все пределы API — в статье Все лимиты.

Ошибки

Код code Когда Что делать
400 validation chatId не вида v…, пустой текст или длиннее 4000, неверный автор, кнопки, форма или настройка, правка чужого сообщения исправить запрос
400 not_found посетителя или сообщения в этом чате нет проверить chatId и idMessage
400 not_authorized чат снят с сайта вернуть его в кабинете или siteEnabled: "yes"
400 chat_closed посетитель завершил чат в окне или не заходил 90 дней — ответ он не увидит —
409 idempotency_conflict тот же clientMessageId с другим содержимым или автором новый ключ для нового сообщения
501 not_supported метод, которого у сайта нет —

Повтор отправки, принятой раньше, — тот же idMessage даже после chat_closed. Общие правила — в статье Ответы и ошибки.

Что дальше

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