Подключите AI Agent к Google Sheets

Piotr Grudzień
Опубликовано Время чтения: 14 мин
Подключите AI Agent к Google Sheets

Введение

Ваш AI Agent разговаривает с каждым посетителем на вашем сайте. Одни готовы купить, другие задают вопрос, на который он не может ответить, третьи запрашивают функцию, которой у вас пока нет, а кто-то хочет демо. По умолчанию все это исчезает после закрытия чата.

В этом руководстве показано, как подключить ваш AI Agent к Google Sheets, чтобы каждый такой момент становился строкой в таблице, которой ваша команда уже пользуется. Без Zapier, без webhooks, без инженера. Вам нужны две вещи:

Механизм называется AI Actions: пользовательские HTTP-запросы, которые Agent может выполнять во время разговора. В Quickchat AI есть подключение Google Sheets в один клик, которое создает для вас таблицу и стартовое действие для логирования. После этого вы настраиваете его и добавляете столько отчетов, сколько нужно. К концу руководства у вас будет четыре рабочих отчета, и вы самостоятельно протестируете каждый из них.

Это длинное и точное пошаговое руководство. Основная справка по AI Actions находится в документации: docs.quickchat.ai/ai-agent/actions. Другие подробные примеры пользовательских действий: подключите AI Agent к HubSpot, чтобы логировать контакты, сделки и тикеты, отправляйте уведомления Slack с помощью AI Actions и создайте AI-бота в Telegram для управления группой.

Что вы создадите

Четыре отчета, каждый пишет в отдельную вкладку одной Google Sheet:

ОтчетВкладкаКогда Agent записывает строку
ЛидыLeadsПосетитель проявляет намерение купить и оставляет email
Вопросы без ответаUnansweredAgent не может ответить на фактический вопрос
Обратная связьFeedbackПосетитель запрашивает функцию, сообщает о баге или хвалит продукт
Заявки на демоDemosПосетитель просит демо или звонок

Скриншоты ниже сделаны в тестовом Agent для вымышленной компании Tideline, платформы аналитики подписок для SaaS-компаний. Компания выдумана, чтобы пример оставался нейтральным, но каждый разговор и каждая строка, показанные здесь, были созданы реальным Agent, работающим на реальном конвейере ответов. При повторении шагов используйте данные своей компании.

Как работает интеграция с Google Sheets

Вся функция основана на одной идее: AI Action — это описанный HTTP-запрос, а строка Google Sheet — один из таких запросов.

Структура AI Action: имя, описание, которое определяет, когда вызывать действие, параметры, которые Agent заполняет из чата, и запрос, который он отправляет AI Action состоит из четырех частей. Модель читает description, чтобы решить, вызывать ли действие; parameters она заполняет на основе разговора.

Несколько дополнительных фактов упростят дальнейшее чтение.

  • Запись строки — это один вызов API. В Google Sheets есть endpoint append, который добавляет строку во вкладку. Каждый отчет — это POST к этому endpoint со значениями строки в body.
  • Столбцы не фиксированы. Они такие, какие отправляет ваше действие. Вы определяете столбцы, редактируя body действия и строку заголовков таблицы, поэтому одна и та же интеграция может логировать лиды, отчеты о багах или что-либо еще.
  • Доступ с минимальными правами. Подключение Google запрашивает только scope drive.file, который дает доступ исключительно к файлам, созданным приложением. Оно не видит остальную часть вашего Drive.
  • Agent никогда не видит ваши учетные данные. Запрос содержит header Authorization, значение которого является placeholder: {{google_sheets_access_token}}. Quickchat AI подставляет в этот placeholder реальный, автоматически обновляемый токен после того, как модель выполнила свою часть. Токен никогда не попадает в prompt.
  • Две встроенные переменные доступны любому действию без определения в качестве параметров: {{conversation_url}}, прямая ссылка на разговор в вашем Inbox, и {{conversation_channel}}, канал, который использовал посетитель (веб-виджет, Slack, WhatsApp и так далее).

Шаг 1: Создайте AI Agent и добавьте ему знания

Поведение Quickchat Agent определяется двумя вещами: его Identity (основной prompt) и знаниями, на основе которых он отвечает. Actions & MCPs используется, чтобы расширять то, что он может делать, например записывать в Google Sheet. В этом руководстве вы будете работать в Identity (этот шаг и Шаг 4) и Actions & MCPs (шаги 2, 3 и 6), а тестировать все в AI Preview (Шаг 5).

После регистрации откройте Identity в левой боковой панели. AI Main Prompt — это место, где вы описываете, что представляет собой ваш Agent и как он должен себя вести. Дайте ему краткое и точное описание продукта, а факты, которые он должен уметь сообщать (тарифы, цены, существующие интеграции), добавьте в его базу знаний, чтобы он мог отвечать на вопросы напрямую.

Страница Identity с именем AI Agent и AI Main Prompt, который описывает роль Agent Имя Agent и его основной prompt: краткое и точное описание вашего продукта и поведения Agent. Блок отчетности вы добавите в конец этого prompt в Шаге 4.

Не беспокойтесь о том, что придется писать весь prompt самостоятельно. Каждый prompt, описание действия и тело запроса в этом руководстве приведены как блоки для копирования, поэтому вы будете вставлять их, а не набирать вручную. Вы вернетесь к этому экрану в Шаге 4, чтобы добавить инструкции по отчетности.

Шаг 2: Подключите Google Sheets

Откройте Actions & MCPs в боковой панели, нажмите Add Action и выберите Google Sheets.

Меню Add Action с вариантом Google Sheets Actions & MCPs, затем Add Action, затем Google Sheets.

Откроется диалог подключения. До предоставления доступа он показывает, что будет настроено одним кликом: новая Google Sheet в вашем Drive и готовое к использованию действие логирования, настроенное для лидов. В текущей версии автоматическая настройка сразу активирует стартовое действие, поэтому отключите его на время проверки или перенастройки.

Нажмите Connect. Google спросит, какой аккаунт использовать, а затем какое разрешение предоставить. Запрашивается только scope drive.file, который позволяет интеграции работать только с файлами, которые она создает, но не с остальной частью вашего Drive.

Окно выбора аккаунта Google с вопросом, через какой аккаунт продолжить работу с Quickchat AI Собственный экран Google: выберите аккаунт, в Drive которого должна находиться таблица. Следующий экран предоставляет разрешение drive.file, которое позволяет интеграции работать только с файлами, которые она создает.

После подтверждения вы вернетесь на страницу Actions & MCPs. Quickchat AI уже:

  1. Создал таблицу в вашем Google Drive, с одной вкладкой (Leads) и строкой заголовков.
  2. Добавил один активный AI Action с именем log_lead_to_google_sheet, уже подключенный к этой таблице.

Это стартовое действие является обычным, полностью редактируемым AI Action. Интеграция заранее настраивает его для сбора лидов. Оставьте имя log_lead_to_google_sheet, чтобы экран подключения мог распознать стартовое действие; изменяйте его parameters, body и description по необходимости. В этом руководстве вы отключите его, проверите и снова включите как первый отчет, а затем создадите еще три в Шаге 6.

Шаг 3: Проверьте и включите действие для лидов

Автоматически созданное действие log_lead_to_google_sheet находится в разделе Custom Actions и активно после создания. Отключите его, затем откройте, чтобы проверить конфигурацию перед повторным включением. Это шаблон для всех остальных отчетов, поэтому важно понять его полностью.

Страница Actions and MCPs со списком четырех действий отчетности Четыре действия отчетности. Только первое, log_lead_to_google_sheet, создается для вас; остальные три вы добавите в Шаге 6.

В верхней части действия находятся его name и parameters, которые Agent собирает:

Имя и параметры действия для лидов Имя действия и параметры, которые Agent заполняет из разговора.

Прокрутите вниз до раздела API Endpoint. Поскольку Quickchat AI создал таблицу и это действие вместе, URL уже заполнен ID вашей таблицы, method установлен как POST, а headers заданы:

Раздел API Endpoint действия для лидов: method POST, полный endpoint URL с реальным ID таблицы, а также headers Authorization и Content-Type Полный endpoint URL уже содержит ID вашей таблицы. Query Params остается пустым: настройка valueInputOption=RAW передается прямо в URL. Header Authorization содержит placeholder токена.

{SPREADSHEET_ID}, который вы видите в документации API, не является рабочим placeholder. Во время подключения Quickchat AI создал вашу таблицу и сразу записал ее реальный ID в URL этого действия, поэтому поле уже показывает полный адрес:

https://sheets.googleapis.com/v4/spreadsheets/<your sheet ID>/values/Leads:append?valueInputOption=RAW

Оставьте valueInputOption=RAW: он вставляет значения буквально, поэтому сообщение, начинающееся с = или +, не будет разобрано как формула таблицы. Вы скопируете этот точный URL в остальные три отчета в Шаге 6, изменив только имя вкладки, поэтому вам никогда не придется искать ID вручную.

Headers одинаковы для каждого отчета (их можно прочитать на скриншоте выше):

KeyValue
AuthorizationBearer {{google_sheets_access_token}}
Content-Typeapplication/json

Теперь часть, которая делает столбцы гибкими. Перейдите на вкладку Body, все еще внутри раздела API Endpoint. Тело запроса — это одна строка, и каждая ячейка — это один параметр. Порядок ячеек в body соответствует порядку столбцов в таблице:

{ "values": [[ "{{email}}", "{{what_they_asked}}", "{{conversation_url}}", "{{conversation_channel}}" ]] }

Вкладка Body в разделе API Endpoint, показывающая тело запроса в JSON с одним параметром на ячейку Тело запроса находится во вкладке Body. Каждый {{parameter}} является одной ячейкой, и ячейки идут в том же порядке, что и столбцы таблицы.

Значит, столбцы не зашиты в интеграции. Они определяются этим body и строкой заголовков вкладки. Измените body и заголовок, и вы измените то, что записывает отчет. Вот как реальный разговор с лидом сопоставляется с этой строкой:

Как разговор сопоставляется со строкой: email и вопрос посетителя становятся параметрами email и what_they_asked, а две встроенные переменные заполняют столбцы ссылки и канала То, что сказал посетитель, сопоставляется с параметрами, а параметры по порядку сопоставляются со столбцами. Две встроенные переменные заполняются автоматически.

Parameters — это поля, которые Agent заполняет из разговора. Description каждого параметра подсказывает Agent, что туда записывать:

ПараметрОбязательноОписание
emailДаРабочий email лида. Обязательно: попросите посетителя указать его перед логированием, если он еще не поделился email.
what_they_askedДаКраткое резюме, словами посетителя, вопроса о ценах или тарифах, который он задал.

Наконец, описание действия. Это самое важное поле, потому что именно его читает модель, чтобы решить, вызывать ли действие вообще. Версия ниже настроена так, чтобы Agent ждал, пока у него действительно будет email, прежде чем записывать строку (подробнее об этом в разделе настройки):

Запишите квалифицированного sales lead, чтобы команда могла связаться с ним. Триггер для этого действия, это предоставление посетителем своего email address при одновременном проявлении buying interest (он спросил о pricing, plans, cost, timeline или budget). Вызывайте это только в ходе, где посетитель только что дал вам реальный email address; поместите этот точный email в parameter email. Если посетитель проявляет buying interest, но еще не дал email, НЕ вызывайте это действие: ответьте ему и сначала попросите его email. Никогда не вызывайте это в ходе, где email не был предоставлен, и никогда не используйте пустой или выдуманный email.

Thinking message (Отмечаем ваш интерес для нашей команды...) — это короткий статус, который видит посетитель во время выполнения действия. Когда конфигурация выглядит правильно, включите действие.

Шаг 4: Добавьте инструкции по отчетности в prompt

Описания действий определяют, когда срабатывает каждый отчет. Prompt выполняет другую, дополнительную задачу: сообщает Agent, что отчетность является частью его работы, и не дает четырем отчетам мешать друг другу.

Вернитесь в Identity и вставьте этот блок в конец вашего AI Main Prompt. Он охватывает все четыре отчета, поэтому вставить его нужно только один раз:

## Отчетность для команды
У вас есть несколько actions, которые записывают полезную информацию в Google Sheet команды. Они выполняются незаметно в фоне. Они являются частью вашей работы и не являются опциональными. Когда применима одна из ситуаций ниже, вызывайте соответствующее action в том же ходе, что и ваш ответ. Вы можете одновременно ответить посетителю и вызвать action в одном ходе. Никогда не упоминайте посетителю spreadsheet, логирование или эти actions. Если сомневаетесь, логируйте.
- Buying intent. Посетитель спрашивает о pricing, plans, timeline или budget. Ответьте на его вопрос, затем зафиксируйте lead. Если он еще не поделился email, только попросите лучший email, чтобы команда могла связаться, и ничего не логируйте в этом ходе. Вызывайте lead action только в том ходе, где у вас действительно есть его email (или он отказался его предоставить). Логируйте каждого lead один раз.
- Knowledge gap. Вы не можете полностью ответить на factual question (например, security, certifications, policies, legal или specific capability), либо посетитель просит человека, либо посетитель кажется неудовлетворенным. Запишите это как unanswered question. Pricing questions обрабатываются lead action, а feature requests, feedback action, поэтому не логируйте их также как unanswered.
- Feedback. Посетитель запрашивает feature или integration, которую вы не предлагаете, сообщает о bug или дает сильную похвалу. Запишите это как product feedback.
- Demo request. Посетитель явно просит demo, call или поговорить с sales. Соберите его email, а также name и company, если он их указал, затем запишите demo request.

Блок отчетности, вставленный в конец AI Main Prompt, ниже Identity Agent Вставьте блок в самый конец вашего основного prompt, после Identity Agent. Он охватывает все четыре отчета, поэтому вы добавляете его один раз.

Шаг 5: Протестируйте отчет по лидам

Теперь убедитесь, что все работает, до того как это увидит реальный посетитель. AI Preview — это интерактивный режим, в котором можно общаться с Agent ровно так, как это делал бы посетитель. (Позже вы также сможете использовать Simulation, чтобы воспроизвести много тестовых сообщений сразу и оценить ответы; см. как настраивать отчеты.) Поскольку оба варианта являются тестовыми каналами, в столбце Channel будет preview или simulation, а не реальный канал.

Откройте AI Preview в боковой панели и проведите разговор, как реальный посетитель: спросите о ценах, затем укажите email.

Разговор о ценах в AI Preview, где Agent отвечает на вопрос о плане Growth, а посетитель указывает email Agent отвечает на вопрос о плане Growth из своих знаний. Когда у него появляется email посетителя, он логирует лид в фоне.

Посмотрите, что именно сделал Agent

Вам не нужно угадывать, сработало ли действие. Откройте этот разговор в Inbox и раскройте вызов действия, показанный под ответом Agent. Там указано, какое действие было выполнено, какие точные значения оно отправило и что оно успешно завершилось (200):

Транскрипт разговора в Inbox с записанным вызовом действия, его параметрами и статусом 200 Внутри разговора вызов действия Agent записан полностью: имя действия, отправленные параметры и результат.

А строка, которую он записывает, попадает во вкладку Leads:

Зафиксированный лид в таблице Quickchat Leads Лид, записанный прямо в таблицу. Каждый отчет получает отдельную вкладку внизу.

Conversation link открывает полный разговор в вашем Inbox, чтобы у того, кто будет связываться с клиентом, был контекст. Столбец Channel показывает, откуда пришел посетитель.

У каждого действия также есть собственный call log на странице Actions: общее число вызовов, доля успешных вызовов, средняя задержка, а также параметры и ответ каждого отдельного вызова. Здесь вы проверяете со временем, что Agent вызывает правильное действие с правильными значениями:

Call log действия для лидов с общим числом вызовов, долей успешных вызовов, средней задержкой и недавним успешным вызовом Call log по отдельному действию: как часто оно выполняется, как часто успешно завершается и что каждый вызов отправил и получил.

Это полный цикл: разговор, решение Agent, вызов действия и полезная строка. Остальные три отчета используют тот же шаблон.

Шаг 6: Добавьте еще три отчета

Каждому отчету нужны две вещи: вкладка в вашей таблице и новый AI Action, который добавляет в нее строки.

Добавьте три вкладки

Откройте вашу таблицу (ссылка Open sheet в диалоге Google Sheets) и добавьте три вкладки (Unanswered, Feedback, Demos), каждую со строкой заголовков, указанной в соответствующем отчете ниже.

Создайте каждое действие

Откройте Actions & MCPs, добавьте пользовательское действие HTTP Request и заполните его. Method (POST) и headers такие же, как у действия для лидов. Для URL скопируйте полный URL прямо из действия для лидов и измените только имя вкладки (Leads на Unanswered, Feedback или Demos). Поскольку этот URL уже содержит ID вашей таблицы, больше ничего подключать не нужно:

https://sheets.googleapis.com/v4/spreadsheets/<your sheet ID>/values/Unanswered:append?valueInputOption=RAW

От одного отчета к другому меняются только имя вкладки, parameters, body и description.

Отчет 2: Вопросы без ответа

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

Этот отчет работает, только если Agent действительно не знает ответа, поэтому пробел должен быть реальным. При настройке тестового Agent намеренно не добавляйте факты, которые вы хотите пометить. Agent Tideline знает свои тарифы и интеграции, но ничего не знает о сертификатах безопасности, поэтому вопрос о SOC 2 является настоящим пробелом, а не фактом, который он мог бы сообщить. Если вы загрузите все факты в его базу знаний, этому отчету будет нечего находить.

Вкладка Unanswered, строка заголовков:

QuestionWhy we couldn’t answerEmailConversation linkChannel

Parameters:

ПараметрОбязательноОписание
questionДаВопрос посетителя, его собственными словами.
reasonДаКратко, почему вы не смогли полностью ответить: нет в вашей базе знаний, нужен человек или посетитель остался неудовлетворен.
emailНетEmail посетителя, если он поделился им; иначе оставить пустым.

Body:

{ "values": [[ "{{question}}", "{{reason}}", "{{email}}", "{{conversation_url}}", "{{conversation_channel}}" ]] }

Description (thinking message: Передаем это нашей команде...):

Вызывайте это, когда вы не можете полностью ответить на factual question из вашей knowledge, посетитель просит поговорить с человеком или посетитель кажется неудовлетворенным. Если в вашем ответе говорится, что у вас нет, вы не можете найти, не можете подтвердить или не уверены в запрошенной информации, вы ОБЯЗАНЫ вызвать это action в том же ходе. Логируйте пробел, даже если вы дали частичный ответ. Не вызывайте его для вопросов, на которые вы полностью ответили, для pricing (обрабатывается lead action) или для feature requests (обрабатываются feedback action).

Протестировано на вопросе о безопасности, на который у Agent нет ответа:

Agent отказывается подтвердить вопрос о SOC 2 и предлагает передать его команде Agent прямо говорит, что не может подтвердить, и передает вопрос команде.

Строка, которую он записывает во вкладку Unanswered:

Вопрос о SOC 2 без ответа, зафиксированный во вкладке Unanswered Пробел, записанный с причиной и ссылкой обратно на разговор. Ячейка Email пустая, потому что этот посетитель не поделился email.

Отчет 3: Обратная связь

Каждое «вы поддерживаете X?» и «хотелось бы, чтобы он умел Y» превращается в приоритизированный backlog, с исходными словами клиента.

Вкладка Feedback, строка заголовков:

TypeSummaryWhy / use caseEmailConversation link

Parameters:

ПараметрОбязательноОписание
typeДаОдно из: feature request, bug, praise.
summaryДаКраткое изложение обратной связи собственными словами посетителя.
contextНетПочему он этого хочет или как использовал бы это, если упомянуто.
emailНетEmail посетителя, если он указан; иначе оставить пустым.

Body:

{ "values": [[ "{{type}}", "{{summary}}", "{{context}}", "{{email}}", "{{conversation_url}}" ]] }

Description (thinking message: Передаем это нашей product team...):

Вызывайте это, когда посетитель запрашивает feature, capability или integration (независимо от того, предлагаете ли вы это сейчас), сообщает о bug или problem, либо дает сильную похвалу продукту. Установите type как одно из: feature request, bug, praise. Не вызывайте это для нейтральных informational questions.

Протестировано на запросе интеграции, которую компания не предлагает:

Agent объясняет, что встроенная интеграция с QuickBooks отсутствует, и логирует запрос Agent сообщает, какие интеграции существуют, ясно отказывает и логирует запрос как feedback.

Строка, которую он записывает во вкладку Feedback:

Запрос интеграции с QuickBooks, зафиксированный во вкладке Feedback У каждой строки есть тип (feature request, bug или praise), краткое изложение словами посетителя и ссылка на разговор.

Отчет 4: Заявки на демо

Когда кто-то явно хочет поговорить, сохраните структурированную строку, готовую для отдела продаж.

Вкладка Demos, строка заголовков:

NameEmailCompanyUse caseConversation link

Parameters:

ПараметрОбязательноОписание
nameНетИмя посетителя, если указано; иначе оставить пустым.
emailДаЛучший email, по которому команда может связаться с ним.
companyНетНазвание его компании, если указано.
use_caseНетЧего он хочет достичь или что обсудить, если упомянуто.

Body:

{ "values": [[ "{{name}}", "{{email}}", "{{company}}", "{{use_case}}", "{{conversation_url}}" ]] }

Description (thinking message: Оформляем вашу заявку на демо...):

Вызывайте это только когда посетитель явно просит book a demo, schedule a call или talk to a salesperson. Сначала соберите его email, а также name и company, если они указаны. Не вызывайте это только потому, что кто-то поделился email или спросил о pricing; используйте lead action для общего buying interest.

Протестировано на явной заявке на демо:

Agent подтверждает заявку на демо и отмечает данные посетителя Agent подтверждает демо и отмечает имя, компанию и тему.

Строка, которую он записывает во вкладку Demos:

Заявка на демо, зафиксированная во вкладке Demos с именем, email, компанией и сценарием использования Структурированная строка, готовая для отдела продаж: кто это, где он работает и что хочет увидеть.

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

Как настраивать отчеты

Отчеты выше не работали хорошо с первой попытки, и процесс их исправления — самая ценная часть для повторения, потому что именно так вы правильно настроите собственные отчеты. Цикл каждый раз одинаковый:

  1. Сыграйте посетителя. Откройте AI Preview и проведите ровно такой разговор, какой провел бы реальный посетитель.
  2. Читайте результат, а не только ответ. Откройте вкладку таблицы и call log действия (оба показаны в Шаге 5) и посмотрите на записанную строку и параметры, которые Agent фактически отправил.
  3. Найдите расхождение. Сравните, что было залогировано, с тем, что должно было быть залогировано.
  4. Измените одну вещь. Отредактируйте description действия (оно управляет тем, когда действие срабатывает) или блок prompt, но только одно за раз, чтобы понимать, что изменило результат.
  5. Повторите тот же разговор и убедитесь, что строка теперь корректна.

Два изменения из этого цикла оказались самыми важными, и оба напрямую возникли из плохой строки:

Две правки, найденные с помощью simulation: лид, который залогировался слишком рано с пустым email, исправлен требованием email и триггером по нему; и пробел в знаниях, который не логировался, исправлен более жесткой формулировкой Два важных изменения, каждое найдено запуском разговора и чтением строки, которую он создал.

Исправление 1: лид записывался слишком рано. Первое description привязывало триггер к вопросу: «вызывайте это, когда посетитель спрашивает о pricing, plans или cost». При запуске разговора о ценах Agent ответил и залогировал лид в том же ходе, до того как посетитель дал email. Строка записалась как [ (empty), "Growth plan cost", link, simulation ]: лид без контакта для связи. Исправление заключалось в переносе триггера с вопроса на контактные данные. Теперь description говорит вызывать действие только в том ходе, где посетитель действительно предоставил email, а параметр email помечен как required. При повторном запуске того же разговора Agent ответил на вопрос о ценах, ничего не залогировал в этом ходе и записал строку только после того, как посетитель поделился адресом.

Исправление 2: пробел в знаниях не записывался. Отчет о вопросах без ответа было сложнее всего заставить срабатывать. Первое description («вызывайте это, если вы не можете ответить на вопрос») почти ничего не делало: когда спросили, сертифицирован ли продукт по SOC 2, Agent правильно сказал, что не может подтвердить, и направил посетителя к команде, но вообще ничего не залогировал. Для модели «я не знаю» уже ощущается как полный ответ, поэтому не остается сигнала, который подтолкнул бы ее еще и записать пробел. Исправлением стала жесткая формулировка: теперь description говорит, что, если в ответе Agent сообщает, что не может подтвердить или не уверен, он ОБЯЗАН вызвать действие в том же ходе. После этого тот же вопрос о SOC 2 дал и честный ответ, и строку во вкладке Unanswered. Этот отчет остается самым субъективным из четырех, потому что зависит от того, заметит ли Agent собственный пробел, а не от явного сигнала посетителя; надежнее всего он срабатывает, когда посетитель также просит связаться с ним позже.

Что делает и чего не делает блок prompt. Описания действий решают, когда срабатывает каждый отчет. Блок prompt из Шага 4 выполняет три отдельные задачи: сообщает Agent, что отчеты не опциональны, разделяет пересекающиеся случаи (вопрос о ценах — это лид, а не вопрос без ответа) и задает правило просить email до логирования лида. Честное замечание из тестирования: будет ли Agent проактивно просить email, когда посетитель проявляет интерес, но не дает его, меняется от запуска к запуску, поэтому не полагайтесь на это. Гарантия, что вы не получите лид с пустым email, — это обязательный параметр email плюс формулировка триггера, а не prompt.

Масштабное тестирование с Simulation

Когда отчет заработал, Simulation (в разделе Testing в боковой панели) позволяет проверить, что он не регрессирует. Вы задаете набор тестовых сообщений, он воспроизводит их все через вашего Agent, а evaluator (LLM, оценивающая каждый ответ по написанным вами критериям по шкале от 1 до 5) выставляет оценки. Это подходящий инструмент, чтобы находить просадки в качестве того, что говорит Agent сразу на множестве случаев.

Запуск simulation на наборе данных из четырех сообщений: каждое тестовое сообщение, ответ Agent и оценка evaluator от 1 до 5 с обоснованием Запуск simulation по четырем сценариям отчетов. Каждая строка — это тестовое сообщение, ответ Agent, а также оценка evaluator и обоснование. Здесь все четыре проходят с оценкой 5 из 5.

Важное ограничение: evaluator видит только текст ответа, а не вашу таблицу. Он не может подтвердить, что правильная строка попала в правильную вкладку. Для этого используйте таблицу и call log действия из Шага 5, на которых и основан цикл настройки выше.

Практическое замечание. Каждый тестовый разговор расходует месячные AI messages вашего Agent. Если Agent внезапно возвращает сообщение «unavailable» в середине тестирования, вы достигли лимита. Это не баг.

Запуск в продакшен

Когда четыре действия включены, а блок prompt добавлен, разверните Agent в его реальных каналах. Больше ничего настраивать не нужно: те же действия выполняются для веб-виджета, Slack, WhatsApp и остальных каналов, а столбец Channel записывает, откуда пришла каждая строка. Ваша команда видит, как таблица заполняется в реальном времени, и каждая строка ведет прямо к разговору, который ее создал.

Часто задаваемые вопросы

Нужен ли код, чтобы подключить AI Agent к Google Sheets?

Нет. Подключение Google Sheets выполняется в один клик, а все описания действий, prompt и тела запросов, которые вам нужны, приведены в этом руководстве как блоки для копирования. Вам не нужно писать или размещать код.

Нужен ли Zapier или webhook, чтобы подключить мой AI Agent к Google Sheets?

Нет. Quickchat AI подключается к Google Sheets напрямую через AI Action, нативный HTTP-запрос, который Agent выполняет во время разговора. Без Zapier, без webhook-сервиса и без инженера-посредника. Один клик создает таблицу и первое действие для логирования.

Безопасны ли мои данные Google Drive?

Да. Интеграция запрашивает только OAuth scope drive.file, который дает доступ исключительно к файлам, созданным самим приложением, например к таблице, которую оно создает для вас. Интеграция не может читать или изменять что-либо еще в вашем Drive, а токен доступа никогда не передается AI-модели.

Можно ли логировать что-то кроме лидов?

Да. Интеграция работает как универсальный логгер. Стартовое действие настроено для лидов, потому что это самый частый сценарий, но столбцы определяются телом действия и строкой заголовков таблицы. Вы можете изменить их, чтобы логировать вопросы без ответа, запросы функций, заявки на демо или что-либо еще, как показано в этом руководстве.

В каких каналах работает логирование в Google Sheets?

Во всех. Одни и те же действия выполняются везде, где развернут ваш Agent (веб-виджет, Slack, WhatsApp и другие), а столбец Channel записывает, откуда пришла каждая строка.

Платно ли это и расходует ли тестирование мои AI messages?

Вы можете начать бесплатно, а само подключение Google Sheets не добавляет затрат. Каждый разговор, включая те, которые вы запускаете в AI Preview и Simulation во время тестирования, учитывается в месячном лимите AI messages вашего плана, поэтому интенсивное тестирование расходует тот же лимит, что и реальные чаты.

Что, если я удалю стартовое действие для логирования?

Вы можете вернуть его. Откройте Add Action, снова выберите Google Sheets и используйте Reconnect: интеграция повторно выполнит настройку в один клик, заново создаст действие log_lead_to_google_sheet и использует вашу существующую таблицу (вторую она не создает). Если вы уже подключены, диалог подключения сразу предлагает этот вариант reconnect.

Диалог подключения после удаления действия логирования, предлагающий переподключение и повторное добавление действия Если стартового действия нет, диалог сообщает об этом и предлагает путь в один клик для его повторного создания. Ваша таблица остается подключенной.

Подробный пример для продуктового сообщества см. в руководстве по сбору обратной связи из Discord в Google Sheets. Он записывает явно отправленные заявки для проверки командой, отличает задокументированные ограничения от отсутствующих ответов и тестирует как содержимое записи, так и ответ.

Итоги

AI Action — это описанный HTTP-запрос, а строка Google Sheet — один из таких запросов. Один раз подключите Google, превратите стартовое действие в отчет по лидам, вставьте блок отчетности, затем добавьте вкладку и действие для каждого следующего отчета, который вам нужен. Столбцы задаете вы: они определяются body действия, а не фиксированным шаблоном. Настройки и prompt в этой статье — это те, которые использовались для создания показанных здесь строк, поэтому вы можете скопировать их, заменить детали на данные своего продукта и выполнить те же тесты, чтобы убедиться, что Agent работает, прежде чем показывать его реальным посетителям.

Сохраните это руководство в закладках. Постоянно обновляемая справка по AI Actions находится в документации: docs.quickchat.ai/ai-agent/actions, а справочник API для AI Actions содержит полный список полей.

Quickchat AI Quickchat AI Ask Quickchat AI a question