Содержание ↓
Какую задачу решает раздел
В большой компании запуск начинается с исследований, которые кто-то должен прочитать. Обычно маркетолог открывает три PDF, выписывает пару цитат, а бриф потом пишет по памяти. Копирайтер получает этот бриф и сочиняет тексты под каждый канал по отдельности: письмо, пуш, объявление в поиске, пост. До объявления, где на текст отведён 81 знак, вывод из исследования обычно не доживает.
Руками такая цепочка занимает дни. Хуже другое: через неделю никто не скажет, откуда в тексте взялось обещание и на какой слайд оно опирается. Я хотел, чтобы у каждого утверждения в брифе была ссылка на источник, а любой текст можно было проследить до сегмента и брифа.
Как это устроено по шагам
Весь путь — семь вкладок подряд, от обзора кампании до выгрузки. Интересное начинается со второй.
Источники
Маркетолог отмечает документы из базы знаний: исследования аудитории, материалы о рынке. При загрузке модель один раз пишет по каждому документу конспект. При сборке брифа код делит бюджет в 120 000 знаков поровну между выбранными документами, с потолком 24 000 знаков на один документ. Отчёт на сотню страниц так не задавит короткое интервью. Рядом стоит индикатор, сколько текста войдёт в контекст, и считается он мгновенно, без вызова модели.
Бриф
Модель проходит цепочку рассуждений. Сначала формулирует задачу аудитории в виде «Когда [ситуация], я хочу [действие], чтобы [результат]», потом идёт по W-I-S-E-R (What/Why, Insight, Switch, Evidence, Result), разбирает переключение и собирает связку Problem → Solution → Outcome. На выходе JSON из 25 полей. Там есть явная цель и скрытые задачи, барьеры, доказательства, открытые вопросы. У каждого утверждения стоит пометка, откуда оно взялось: прямо из источника, выведено или это гипотеза. Рядом уверенность от 0 до 100 и ссылки. По уверенности я решаю, что перечитать первым, в отчёты она не попадает.
Матрица сегментов
Бриф режется на сегменты. Условный пример, не из практики: сеть магазинов электроники продвигает обмен старого смартфона. Один сегмент — люди, у которых телефон ещё работает, но батарея держит полдня. Их задача — не остаться без связи в дороге, текущее решение — пауэрбанк, триггер переключения — вторая поездка подряд с разряженным телефоном. Маркетолог утверждает строки матрицы, и баннеры потом собираются по утверждённым строкам, если такие есть.
Тексты и баннеры
Шесть форматов: письмо, пуш, объявление в поиске, пост во ВКонтакте, структура лендинга, одностраничник для отдела продаж. Для каждого можно выбрать фреймворк — AIDA, PAS, 4U или FAB. Баннеры генерируются пачкой, по одному на сегмент и не больше восьми за раз.
Лендинг и выгрузка
Лендинг на шестом шаге собирается из уже готовых текстов: промпт запрещает сочинять заново и велит оставлять недостающие цифры пустыми местами для человека. Выгрузка отдаёт матрицу в CSV, тексты в JSON, бриф с текстами в Markdown, архив PNG с баннерами и HTML-презентацию до 12 слайдов. Слайд, для которого нет данных, в презентацию просто не попадает.
Что я модели не доверяю
Модель в этом разделе пишет. Всё, что можно посчитать или проверить правилом, я отдал коду.
- У пуша 50 знаков на заголовок, 120 на текст и 30 на кнопку. У объявления в поиске 56, 81 и 20, у поста во ВКонтакте 200 знаков на всё. Счётчик виден в поле прямо при вводе.
- Оценку качества от 0 до 100 считает формула со штрафами: минус 15 за каждое предупреждение комплаенса, минус 10 за каждое превышение лимита, минус 20 за пустой заголовок или пустой текст, минус 10 за пустую кнопку, минус 15 за текст короче 20 знаков. Модель эту оценку не ставит и не видит.
- С источниками бриф сверяет отдельный вызов модели, которой дана роль аналитика и юриста по бренду. Он ищет выдуманные факты, ложные выводы и поддакивание и заполняет таблицу рисков. Каждый текст проходит такую же проверку и получает решение: брать, доработать или отклонить.
- Если включена редполитика, её правила тона и написания слов уходят в системный промпт каждой генерации.
Оценки от модели я уже видел, поэтому здесь считает формула. От прогона к прогону модельные оценки гуляют и почти всегда выше, чем заслуживает текст. Формула грубая. Зато через месяц она поставит тому же тексту ту же оценку, а редактору её устройство объясняется в две строки. Проверяющий вызов я отделил от пишущего по похожей причине: модель, которая только что обосновала вывод, дыру в нём замечает плохо.
Что маркетолог получает на выходе
Маркетолог забирает бриф, где у каждого вывода есть ссылка на документ и уверенность, и матрицу сегментов таблицей. К ним прилагаются пачка текстов с оценкой и решением редакторской проверки, баннеры, черновик лендинга и презентация для руководителя. В презентации цели, аудитория, сообщения, живые баннеры, сроки, бюджет и риски. Это один HTML-файл без внешних зависимостей: он открывается офлайн и печатается в PDF постранично. Для файла, который уходит за пределы команды, есть отдельный режим, и из него пропадают ссылки на источники, предупреждения и пометки о гипотезах.
Экономию по кабинету в целом я оцениваю до 15% рабочего времени маркетолога. Отдельно по этому разделу я её не мерил.
Грабли, на которые мы наступили
Страховочный поиск всегда возвращал ноль. Запрос обращался к полю, которого в базе нет. Ошибка не всплывала, потому что модель прекрасно пишет бриф и без источников — гладко и уверенно, только ни о чём. После этого появилась громкая красная ошибка пустого контекста, и бриф без опоры теперь видно сразу.
«[object Object]» в презентации. Поля брифа хранятся как утверждение вместе с метаданными, а шаблон ждал строку. Первая версия презентации выводила эту служебную заглушку на месте выводов брифа. Теперь шаблон достаёт само утверждение, а списки нормализует.
Пустые серые плашки. Сводка для руководства на вкладке выгрузки читала поле под другим именем и показывала пустые блоки. Данные при этом лежали в базе.
Чужие каналы в прогрессе. Индикатор генерации показывал зашитый список шагов с ВКонтакте, и человек, который ВКонтакте не выбирал, пугался. Шаги теперь строятся из каналов кампании.
Английские обрывки в рисках. Модель иногда вставляла в риски и следующие шаги технический мусор на английском. Фильтр отсекает такие строки до презентации.
Если захотите такой же
Первым я бы собрал бриф и его проверку, до всяких форматов. Для этого нужны база документов с поиском по смыслу, промпт брифа со строгим JSON, формула лимитов и отдельный проверяющий вызов. Из брифа, который стоит на источниках и честно помечает гипотезы, матрица и тексты собираются почти механически. Поверх пустого брифа AIDA или PAS дадут всё тот же гладкий текст ни о чём.
Если у вас свой набор каналов и свои лимиты знаков, конвейер под них разбираем на консультации. А как такие инструменты приживаются в команде, я пишу в разделе про внедрение ИИ в маркетинг.
- Next.js
- TypeScript
- Supabase
- pgvector
- OpenAI gpt-4.1-mini
- gpt-image-1
