Диалог идёт прямо на странице. Каждая реплика — и клиента, и ассистента — отправляется на сервер и появляется в Google Sheets отдельной строкой. Менеджер видит, о чём спрашивал человек, ещё до звонка.
Вся переписка сохраняется в вашей таблице. Ничего не вводите, если не хотите оставить заявку.
Менеджер перезвонит и ответит на вопросы, которые ИИ не закрыл. К заявке автоматически прикрепляется наш разговор.
Make берёт на себя всю посредническую работу: принимает реплику из чата, спрашивает ИИ, записывает обе стороны диалога в таблицу и отдаёт ответ обратно. Сценарий собирается один раз и больше не требует правок в коде страницы. Ниже — вариант с собственным API-ключом Яндекс Cloud: ключ хранится в Make, на странице его нет, поэтому его можно спокойно ротировать. Первые три шага — с нуля: облако, биллинг и ключ.
Откройте console.cloud.yandex.ru и войдите тем же Яндекс ID, который будете использовать дальше. Сразу выберите организацию в правом верхнем углу — от неё зависит, кому будут привязаны ключ и счёт.
Новая консоль (рекомендуется): кнопка «Каталог» в левом верхнем углу → «Создать» → в поиске типов ресурсов наберите «Каталог» → «Создать каталог» → впишите название, например Сайт-чат → «Создать каталог». Каталог — это корзина ресурсов, внутри неё появится папка с тем же именем.
Классическая консоль: «Каталог» → «Создать каталог» → заполните имя и тип ресурса «Папка» → «Создать».
Готовый результат: в каталоге есть папка Сайт-чат. Дальше всё создаётся уже внутри неё.
Это главный стоп, и ошибка выглядит обманчиво: ключ верный, а модель отвечает 403. Бесплатного пробного периода у YandexGPT нет, оплата — по факту, поэтому платёжный аккаунт обязателен с первого дня.
В новой консоли: откройте папку Сайт-чат → «Добавить платёжный аккаунт» → «Создать» → заполните реквизиты (для физлица — паспорт, для юрлица — ИНН и КПП) → привяжите банковскую карту → «Создать». В классической консоли: «Менеджер облака» → «Биллинг» → «Создать платёжный аккаунт» или «Привязать существующий».
Теперь свяжите аккаунт именно с папкой: откройте папку → «Добавить платёжный аккаунт» → выберите только что созданный. В карточке папки в колонке «Платёжный аккаунт» должно появиться имя аккаунта со статусом «Активен».
Сразу поставьте лимит расходов — это страховка от непреднамеренного перерасхода: «Биллинг» → «Настроить лимиты» → месячный предел, например 500 ₽. Упираетесь в лимит — запросы начинают получать 403 или 429, но деньги дальше не списываются.
В новой консоли: «Каталог» → папка Сайт-чат → в правом верхнем углу «IAM и управление» → «API-ключи» → «Создать» → впишите имя, например «Сайт-чат» → «Создать». Ключ покажут один раз — сразу скопируйте в менеджер паролей. В классической консоли путь тот же, через меню слева.
Ключ — длинная строка вида AQVN…. Он даёт доступ и к моделям, и к биллингу облака, поэтому в код страницы его не вставляют: он живёт только в Make.
Проверьте ключ до сборки сценария — вставьте его в команду и выполните в терминале:
curl https://api.yandex.cloud/ai-foundation-models/v1beta/completion \
--header "Authorization: Bearer ВАШ_КЛЮЧ" \
--header "Content-Type: application/json" \
--data '{
"model": "yandexgpt/latest",
"messages": [{"role": "user", "content": "Привет"}]
}' В ответе должно прийти поле result.alternatives[0].message.content с текстом. Если ответ другой — разбирайтесь по коду: 401 — ключ скопирован с ошибкой или отозван; 403 — не активен биллинг или ключ не привязан к папке; 404 с упоминанием модели — сервис Foundation Models ещё активируется, подождите пару минут; 429 — упёрлись в квоту запросов в минуту.
Альтернатива — сервисный аккаунт: «IAM и управление» → «Сервисные аккаунты» → создать → «Создать ключ» → скачается JSON-файл. Такой ключ не подставляется прямо в заголовок Authorization, поэтому для нашей схемы обычный API-ключ удобнее.
Google Sheets → «Создать» → пустая таблица. Переименуйте вкладку в Диалоги. В первой строке оставьте заголовки: Дата, Роль, Сообщение, Имя, Телефон, Email, Сессия, Страница — по ним Make будет раскладывать поля. Если заголовков не будет, модуль Add a row создаст их сам при первой записи.
Make → «Create scenario». Первый модуль — Webhooks → Custom webhook. Откройте «Edit webhook» и скопируйте адрес вида https://hook.us1.make.com/xxxx — он понадобится в шаге про вписывание адреса. Сценарий держите включённым (переключатель Active вверху страницы): у выключенного сценария нет ответа, и чат покажет запасную фразу.
Добавьте Google Sheets → Add a row, подключите свою таблицу и вкладку «Диалоги». Расставьте поля: Дата ← date, Роль ← впишите текстом Пользователь, Сообщение ← message, Имя ← name, Телефон ← phone, Email ← email, Сессия ← session, Страница ← page.
Добавьте модуль HTTP → Make a request — он работает с любым API-ключом и не зависит от того, есть ли в вашем Make готовый коннектор Яндекса.
Method — POST. URL — https://api.yandex.cloud/ai-foundation-models/v1beta/completion. Заголовки: Authorization со значением Bearer ваш_ключ (префикс Bearer обязателен, с пробелом) и Content-Type со значением application/json. Включите «Parse response» — тогда ответ сразу разложится по полям, и путь к тексту будет result.alternatives[0].message.content. Body — тип Raw (или JSON), вот такой:
{
"model": "yandexgpt/latest",
"temperature": 0.3,
"max_tokens": 800,
"messages": [
{"role": "user", "content": "{{system}}\n\nИстория диалога:\n{{history}}\n\nНовый вопрос: {{message}}"}
]
} Поля в двойных скобках подставятся из вебхука автоматически: {{message}} — новый вопрос клиента, {{history}} — предыдущие реплики, {{system}} — инструкция из атрибута блока.
Важный нюанс YandexGPT: роли system у модели нет — только user и assistant. Поэтому инструкция вставляется в начало сообщения пользователя, как в примере, иначе будет ошибка про неизвестную роль. Температура 0.3 и max_tokens 800 держат одну реплику клиента в копейках.
Альтернатива: если в вашем Make есть готовый модуль YandexGPT — в его настройках подключения выберите API-ключ и вставьте тот же ключ, а Body оставьте в виде массива сообщений. Ответ тогда тоже придёт по пути result.alternatives[0].message.content.
Ещё один модуль Google Sheets → Add a row в ту же таблицу. Роль — снова текстом Ассистент, Сообщение ← путь result.alternatives[0].message.content из модуля YandexGPT. Имя, Телефон, Email, Сессия и Страница — те же поля, что и в первом модуле. На один вопрос получается две строки.
Если «Parse response» в HTTP-модуле выключен, текст ответа лежит в поле body как одна строка JSON. В этом случае между модулями поставьте Tools → Parse JSON и укажите в поле данных {{3.body}} — дальше путь будет тот же, result.alternatives[0].message.content.
Финальный модуль — Webhooks → Respond to the webhook. Content type: JSON, Body: {"reply":"{{3.result.alternatives[0].message.content}}"} — номер подставьте свой, YandexGPT это третий модуль. И обязательно добавьте заголовок Access-Control-Allow-Origin со значением * — без него браузер не отдаст ответ странице, и в чате появится сообщение о недоступности сервиса.
Откройте страницу в Тильде → блок с чатом → «Контент» (редактор HTML). В атрибуте data-ai-endpoint вставьте скопированный адрес вебхука и поставьте data-log-mode="ai" — это скажет блоку, что строки пишет сценарий и отправлять их повторно не нужно. Там же меняются data-assistant-name и data-assistant-prompt — инструкция для YandexGPT, которая подставляется в каждый запрос. Сохраните и опубликуйте страницу.
Напишите в чат любой вопрос. Должны произойти три вещи: в чате появится ответ, в таблице — две новые строки (вопрос и ответ), а в Make под схемой — отметка об успешном прогоне. Если что-то пошло не так, откройте Run history сценария: там видно, на каком модуле он остановился и с каким ответом.
| Поле | Пример |
|---|---|
Дата | 2025-06-11 14:32:07 |
Роль | Пользователь / Ассистент |
Сообщение | Сколько стоит? |
Имя | из формы заявки |
Телефон | из формы заявки |
Email | из формы заявки |
Сессия | идентификатор диалога |
Страница | откуда пришёл клиент |
На один вопрос — две строки: с репликой клиента и с ответом ассистента.
Запрос из чата приходит в Make методом POST в формате form-encoded. Поля: message, history, system, session, name, phone, email, page, date, assistant. Ответ в чат — JSON с ключом reply:
{ "reply": "Конечно, напишите цифру бюджета — подберу формат." } Сам YandexGPT отвечает так — блок умеет разбирать и этот формат тоже:
{
"result": {
"alternatives": [
{"message": {"role": "assistant", "content": "Конечно, напишите цифру бюджета."}}
],
"usage": {"total_tokens": 214}
}
} | Модель | Когда подходит |
|---|---|
yandexgpt/lite | Быстро и дёшево: типовые вопросы, короткие ответы. С неё удобно начинать тест. |
yandexgpt/latest | Баланс качества и цены — оптимально для ассистента на сайте. |
yandexgpt/pro | Максимальная точность: сложные заявки и длинные рассуждения, но токены дороже. |
Расход токенов видно в кабинете Яндекс Cloud. Низкая температура и max_tokens 600–800 удерживают одну реплику клиента в копейках.
| Схема | Что вписать в блок |
|---|---|
| Один сценарий: ИИ и запись в таблицу — рекомендуется | data-ai-endpoint = адрес вебхука,data-log-mode = ai |
| Два сценария: отдельно лог, отдельно ИИ | data-ai-endpoint = адрес вебхука с ИИ,data-log-endpoint = адрес вебхука лога |
| Без Make: только приёмники Тильды — CRM, почта, Telegram | data-ai-endpoint = адрес ИИ-сервиса,data-log-mode = auto |
Чат работает и без Make: отвечает встроенный сценарий по ключевым словам — цены, сроки, документы, оплата, контакты. Как только адрес вебхука вписан в блок, ответы приходят настоящие, а каждая реплика ложится в таблицу двумя строками.