Как ускорить создание однотипного контента с помощью ChatGPT и таблиц
Как связать ChatGPT с таблицами мы разобрались, теперь посмотрим как это работает на конкретном примере. Допустим, мы создаем много контента, для которого нам нужно: писать метатеги, заполнять информацию о ЦА, придумывать запросы для придумывания тем в будущем. Вот, как это можно автоматизировать.
Вариант 1. Платный, но более удобный
Сейчас я показываю принцип создания таблицы с использованием расширения «GPT for Sheets and Docs». Во второй части гайда покажу принцип работы со скриптом.
Сначала создаем таблицу, в которой будет 2 основных столбца: пользовательская информация и ответ нейросети. В столбце «пользовательская информация» мы пропишем всю-всю информацию о нашем товаре/услуге/продукте. Дадим список ключевых запросов. Какую-то информацию об аудитории и др.
Важно! Рекомендую начинать со столбца «C», т. к. в «A» и «B» мы будем прописывать промпты и другую полезную информацию.
Я придумал короткий вариант для примера.
Компания «Садовник», которая продает семена для рассады. Мы продаем семена для томатов, огурцов, тыквы, земляники, клубники и других популярных культур.
Ключевые слова: семена, семена дешево, дешевые семена Москва
О нашей ЦА. Возраст: 30-55 лет. Профессии: офисные работники, учителя, медицинские работники, фрилансеры
Добавил это в ячейку «C3». А в столбец «B» я добавил промпт для генерации метатегов.

Промпт
Ты — опытный SEO специалист.
Твоя задача — создать метатеги (тайтл, дескрипшен, заголовок) для информационной статьи.
Вот ключи: [ключи, предоставленные пользователем]
Требования:- Тайтл — должен содержать «[название источника, предоставленное пользователем]»
Дескрипшен — должен быть короче 255 символов с пробелами и содержать «[название источника, предоставленное пользователем]»
Предложи по 3 варианта каждого метатега.
Не пиши ничего больше, кроме метатегов
А ответ вывел в ячейку «D3». Для этого прописал такую формулу: =GPT($B$3;C3).
И получил такой ответ:

Важно! Обязательно фиксируйте знаком доллара ячейку, в которой прописан промпт (в моем случае это ячейка B). Это нужно для того, чтобы вы могли применить автоматическое заполнение для следующих ячеек. Например, так вы сможете написать сразу 5-10 и больше метатегов.

Теперь продумаем портрет клиента. Для этого пригодится промпт:
Сформулируй портрет клиента, которому идеально подойдет [описание услуги/продукта, предоставленное клиентом]. Добавь в портрет пол, возраст, профессии, интересы клиента [и другие характеристики при необходимости]. Не пиши ничего больше, кроме портрета клиента.
Этот промпт рекомендую размещать на ячейку ниже чем тот, что нужен для генерации метатегов. Так будет удобнее и таблица вряд ли слетит.

Давайте повторим устройство таблицы:
| Промпты | Пользовательские инструкции | Ответы нейросети |

Дальше исходя из пользовательской информации и портрета клиента мы можем бота попросить придумать 10 популярных запросов нашей ЦА и мифов, в которые она верит. Это поможет продумать темы для будущих статей.
Промпт для продумывания запросов
Приведи 10 самых частых запросов, которые пишет моя целевая аудитория при поиске информации [о продукции/услуге, связанной с пользовательскими данными]. Не пиши ничего больше, кроме запросов
Промпт для продумывания мифов
Выведи списком 10 мифов, в которые верит моя ЦА. Не пиши ничего больше, кроме мифов
В итоге получился такой материал.

Важно! В формулах я также фиксировал ячейки в столбце «B» знаком доллара, чтобы можно было применить автозаполнение для будущих ячеек.
А теперь представим, что нам нужно заполнить 5 таких же ячеек, но для других магазинов. Делать это руками мы устанем, поэтому упростим задачу:
- В столбце «пользовательская информация» пропишем в отдельные ячейки информацию о других магазинах.
- Выделим заполненные ячейки в столбцах «SEO», «Портрет клиента», «Запросы» и «Мифы» и протянем их вниз. Пустые ячейки заполнятся автоматически нужным контентом.

По такому принципу можно создать любую таблицу: для генерации заголовков, креативов, описаний товаров и др. Разница будет только в промпте.
Чтобы попробовать эту таблицу, перейдите по ссылке и кликните «Файл» → «Создать копию». Останется установить расширение и вставить свой API-ключ.
Вариант 2. Бесплатный, но не такой удобный
Теперь разберемся, как сделать что-то похожее с помощью скрипта. Здесь главная проблема в том, что в одной таблице можно запустить только 1 скрипт. Поэтому для каждого промпта придется создавать отдельную таблицу. Но затем данные можно будет собрать в одном месте — ниже покажу, как.
Сначала разберемся с промптами. Наша задача — создать отдельную таблицу под каждый промпт и запустить там скрипт.
Для этого откройте гугл-таблицы → «Расширения» → «Apps Script» → на открывшейся странице добавьте скрипт вместо того, что там написан.

// Add ChatGPT Menu
const onOpen = () => {
const ui = SpreadsheetApp.getUi();
ui.createMenu("ChatGPT")
};
function saveAsText(){
// Saves formulas as plain text
var ss = SpreadsheetApp.getActiveSheet()
var data = ss.getDataRange().getValues()
ss.getRange(1,1,data.length,data[0].length).setValues(data)
}
function CHAT(val) {
// main function to generate the custom formula (=CHAT)
var ss = SpreadsheetApp.getActiveSheet()
// EITHER get API key from settings sheet
// var setsh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Settings");
// var apiKey = setsh.getRange(3,1).getValue() //Cell A3
// OR set API key
var apiKey = "СЮДА ВСТАВЬТЕ API-КЛЮЧ. ОБЯЗАТЕЛЬНО СОХРАНИТЕ КАВЫЧКИ В НАЧАЛЕ И В КОНЦЕ"
// configure the API request to OpenAI
var data = {
"messages": [
{"role": "system", "content": "СЮДА ВСТАВЬТЕ СВОЙ ПРОМПТ. ОБЯЗАТЕЛЬНО СОХРАНИТЕ КАВЫЧКИ В НАЧАЛЕ И В КОНЦЕ"},
{"role": "user", "content": "Here is your prompt" +val +"\n"}],
"model": "gpt-4o",
};
var options = {
'method' : 'post',
'contentType': 'application/json',
'payload' : JSON.stringify(data),
'headers': {
Authorization: 'Bearer ' + apiKey,
},
};
var response = UrlFetchApp.fetch(
'https://api.openai.com/v1/chat/completions',
options
);
Logger.log(response.getContentText());
// Send the API request
var result = JSON.parse(response.getContentText())['choices'][0]['message']['content'];
Logger.log(result)
return result
}
Обязательно заполните 2 раздела:
var apiKey = "СЮДА ВСТАВЬТЕ API-КЛЮЧ. ОБЯЗАТЕЛЬНО СОХРАНИТЕ КАВЫЧКИ В НАЧАЛЕ И В КОНЦЕ«
var data = {
"messages": [
{"role": "system", "content": "СЮДА ВСТАВЬТЕ СВОЙ ПРОМПТ. ОБЯЗАТЕЛЬНО СОХРАНИТЕ КАВЫЧКИ В НАЧАЛЕ И В КОНЦЕ"},
Использовать можно те же промпты, что я показывал в первом варианте.
Когда добавите скрипт, запустите и выполните его. После этого возвращайтесь в таблицу. В столбце «A» пропишите пользовательскую информацию, как мы это делали при работе с расширением. А в столбце «B» напишите функцию =chat и выберите ячейку с информацией, на основе которой бот должен написать ответ.
Показываю на примере генерации метатегов:

Если хотите просто пообщаться с ботом, то прописывайте функцию =chat и в скобках и кавычках пишите вопрос. Это будет выглядеть так:
=chat(“промпт”)
А если хотите заполнить остальные ячейки по подобию, просто протяните ячейку вниз. Фиксировать формулу долларами не надо.

Теперь представим, что у нас есть 5 таких таблиц с разными промптами и мы хотим объединить данные в одном месте. Для этого воспользуемся формулой =IMPORTRANGE.
Работает все просто: сначала скопируйте ссылку на нужную таблицу или скопируйте ее ID, который находится между /d/ и /edit в URL.
Затем в нужной ячейке новой таблицы пропишите функцию IMPORTRANGE, в скобках и кавычках укажите URL или ID файла, а после точки с запятой укажите название листа нужной таблицы и диапазон, с которого нужно подтянуть данные.
Выглядеть это будет так:
=IMPORTRANGE(«1a2B3cD4e5F6g7H8i9J0kLmNoPqRstUvWxyz”; «Лист1!A1:D100»)
При первом использовании функции у вас могут попросить разрешить доступ к данным из другого файла. Нажмите на появившуюся ячейку с ошибкой и подтвердите доступ.

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