Подключите 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 bot для управления группой.

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

Четыре отчета, каждый пишет в отдельную вкладку одной 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 call. В Google Sheets есть endpoint append, который добавляет строку во вкладку. Каждый отчет, это POST к этому endpoint со значениями строки в body.
  • Столбцы не фиксированы. Они такие, какие отправляет ваше действие. Вы определяете столбцы, редактируя body действия и строку заголовков таблицы, поэтому одна и та же интеграция может логировать лиды, отчеты о багах или что-либо еще.
  • Доступ с минимальными правами. Подключение Google запрашивает только scope drive.file, который дает доступ исключительно к файлам, созданным приложением. Оно не видит остальную часть вашего Drive.
  • Agent никогда не видит ваши учетные данные. Запрос содержит header Authorization, значение которого является placeholder: {{google_sheets_access_token}}. Quickchat AI подставляет в этот placeholder реальный, автоматически обновляемый token после того, как модель выполнила свою часть. Token никогда не попадает в prompt.
  • Две встроенные переменные доступны любому действию без определения в parameters: {{conversation_url}}, deep link на разговор в вашем Inbox, и {{conversation_channel}}, канал, который использовал посетитель (web widget, Slack, WhatsApp и так далее).

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

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

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

Страница 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 и готовое к использованию действие логирования, настроенное для лидов. Текущий provisioning активирует стартовое действие, поэтому отключите его на время проверки или перенастройки.

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

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

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

  1. Создал spreadsheet в вашем 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 вашей spreadsheet, 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 token.

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

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

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

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

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

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

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

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

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

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

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

ParameterRequiredDescription
emailYesРабочий email лида. Обязательно: попросите посетителя указать его перед логированием, если он еще не поделился email.
what_they_askedYesКраткое резюме, словами посетителя, вопроса о pricing или plans, который он задал.

Наконец, action description. Это самое важное поле, потому что именно его читает модель, чтобы решить, вызывать ли действие вообще. Версия ниже настроена так, чтобы 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 Вставьте блок в самый конец вашего main prompt, после Identity Agent. Он охватывает все четыре отчета, поэтому вы добавляете его один раз.

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

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

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

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

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

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

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

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

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

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

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

Call log действия для лидов с total calls, success rate, average latency и недавним успешным вызовом Call log по отдельному действию: как часто оно выполняется, как часто успешно завершается, и что каждый вызов отправил и получил.

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

Шаг 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 вашей spreadsheet, больше ничего подключать не нужно:

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

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

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

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

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

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

QuestionWhy we couldn’t answerEmailConversation linkChannel

Parameters:

ParameterRequiredDescription
questionYesВопрос посетителя, его собственными словами.
reasonYesКратко, почему вы не смогли полностью ответить: нет в вашей knowledge, нужен человек или посетитель остался неудовлетворен.
emailNoEmail посетителя, если он поделился им; иначе оставить пустым.

Body:

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

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

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

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

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

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

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

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

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

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

TypeSummaryWhy / use caseEmailConversation link

Parameters:

ParameterRequiredDescription
typeYesОдно из: feature request, bug, praise.
summaryYesКраткое резюме feedback собственными словами посетителя.
contextNoПочему он этого хочет или как использовал бы это, если упомянуто.
emailNoEmail посетителя, если он указан; иначе оставить пустым.

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 объясняет, что native QuickBooks integration отсутствует, и логирует запрос Agent сообщает, какие integrations существуют, ясно отказывает и логирует запрос как feedback.

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

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

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

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

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

NameEmailCompanyUse caseConversation link

Parameters:

ParameterRequiredDescription
nameNoИмя посетителя, если указано; иначе оставить пустым.
emailYesЛучший email, по которому команда может связаться с ним.
companyNoНазвание его компании, если указано.
use_caseNoЧего он хочет достичь или что обсудить, если упомянуто.

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 подтверждает демо и отмечает name, company и тему.

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

Заявка на демо, зафиксированная во вкладке Demos с name, email, company и use case Структурированная строка, готовая для sales: кто это, где он работает и что хочет увидеть.

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

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

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

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

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

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

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

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

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

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

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

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

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

Операционное примечание. Каждый тестовый разговор расходует месячные AI messages вашего Agent. Если Agent внезапно возвращает сообщение “unavailable” в середине тестирования, вы достигли лимита. Это не bug.

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

Когда четыре действия включены, а блок prompt добавлен, разверните Agent в его реальных каналах. Больше ничего настраивать не нужно: те же действия выполняются для web widget, 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, а access token никогда не передается AI model.

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

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

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

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

Это что-то стоит, и расходует ли тестирование мои AI messages?

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

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

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

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

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

Итоги

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

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