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

Разметка в окне чата

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

Ответы в окне чата оформляются разметкой Gratio — той же, что в мессенджерах и почте: *жирный*, _курсив_, [ссылка](https://…). Знаки и правила — в статье Разметка текста. Здесь — что особенного у окна.

Что показывает окно

Жирный, курсив, подчёркнутый, зачёркнутый, код, блок кода, цитату и ссылку. Спойлер — обычным текстом. getCapabilities у чата на сайте отвечает formatting: true.

Пример запроса

Ответ ассистента с жирным и ссылкой на расписание:

curl

curl -X POST "$GRATIO_URL/v1/instances/$GRATIO_ID/sendMessage" \
  -H "Authorization: Bearer $GRATIO_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "chatId": "vq3k7m2x4a6b2c4d6e7f2g3h4",
    "message": "*Пробное занятие* — бесплатно.\nРасписание — [на сайте](https://school.ru/schedule).",
    "author": {
      "kind": "assistant",
      "name": "Алина"
    }
  }'

Python

import os
import requests

BASE = f"{os.environ['GRATIO_URL']}/v1/instances/{os.environ['GRATIO_ID']}"
HEADERS = {"Authorization": f"Bearer {os.environ['GRATIO_TOKEN']}"}

url = f"{BASE}/sendMessage"
payload = {
    "chatId": "vq3k7m2x4a6b2c4d6e7f2g3h4",
    "message": "*Пробное занятие* — бесплатно.\nРасписание — [на сайте](https://school.ru/schedule).",
    "author": {"kind": "assistant", "name": "Алина"},
}
response = requests.post(url, json=payload, headers=HEADERS, timeout=60)
print(response.status_code, response.json())

Node.js

const { GRATIO_URL, GRATIO_ID, GRATIO_TOKEN } = process.env;
const base = `${GRATIO_URL}/v1/instances/${GRATIO_ID}`;
const auth = { Authorization: `Bearer ${GRATIO_TOKEN}` };

const url = `${base}/sendMessage`;
const payload = {
  chatId: "vq3k7m2x4a6b2c4d6e7f2g3h4",
  message: "*Пробное занятие* — бесплатно.\nРасписание — [на сайте](https://school.ru/schedule).",
  author: { kind: "assistant", name: "Алина" },
};
const response = await fetch(url, {
  method: "POST",
  headers: { ...auth, "Content-Type": "application/json" },
  body: JSON.stringify(payload),
});
console.log(response.status, await response.json());

PHP

<?php
$base = getenv('GRATIO_URL') . '/v1/instances/' . getenv('GRATIO_ID');
$auth = 'Authorization: Bearer ' . getenv('GRATIO_TOKEN');
$url = $base . '/sendMessage';
$payload = [
    'chatId' => 'vq3k7m2x4a6b2c4d6e7f2g3h4',
    'message' => '*Пробное занятие* — бесплатно.
Расписание — [на сайте](https://school.ru/schedule).',
    'author' => ['kind' => 'assistant', 'name' => 'Алина'],
];

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [$auth, 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => json_encode($payload, JSON_UNESCAPED_UNICODE),
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 60,
]);
$response = json_decode(curl_exec($ch), true);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE), PHP_EOL;
print_r($response);

Посетитель увидит «Пробное занятие» жирным и ссылку «на сайте». В уведомлении и истории текст придёт как отправлен — со звёздочками и скобками.

Где работает

Что Где разметка
sendMessage, editMessage текст
sendFileByUpload, sendFileByUrl подпись caption
sendInteractiveButtons и sendButtons шапка, текст и подвал
sendForm заголовок title и текст body

Реплики посетителя не разбираются: их текст приходит как есть. Отправленное раньше окно не перерисовывает.

Ссылки

  • Адрес ссылки — только https без логина в адресе, mailto — один адрес, из параметров только subject и body — и tel. Остальное ссылкой не станет.
  • Подпись, в которой виден другой адрес, почта или номер, ссылкой не станет: [school.ru](https://example.org) уйдёт текстом.
  • Голые адреса в тексте окно делает ссылками само.

Чужой текст

Вопрос из другого канала, отзыв, ввод пользователя отправляйте с formatting: "none" — иначе [Подтвердить](https://…) из него станет ссылкой от имени компании. "none" работает и для кнопок — шапка, текст, подвал, — и для формы:

curl -X POST "$GRATIO_URL/v1/instances/$GRATIO_ID/sendMessage" \
  -H "Authorization: Bearer $GRATIO_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "chatId": "vq3k7m2x4a6b2c4d6e7f2g3h4",
    "message": "Ваш вопрос: «Можно *перенести* на воскресенье?» Передали администратору.",
    "formatting": "none"
  }'

Что дальше

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