Сломал три воркфлоу, прежде чем понял, где обычно падает автоматизация с ИИ. Не в самом Claude — с ним как раз всё предсказуемо. Ломается на стыках: там, где данные переходят из одного инструмента в другой и никто не проверяет, что именно пришло.
Этот пост — про то, как я собрал пайплайн для контент-производства в Make, который реально держится дольше недели. Без магии, с конкретными решениями.
Почему Make, а не n8n или Zapier
Начинал с Zapier. Там всё выглядит дружелюбно ровно до момента, когда нужно сделать что-то нестандартное — например, прогнать один и тот же текст через несколько шагов с разными промптами или обработать массив данных построчно. Zapier начинает требовать дополнительные "zap-ы" и деньги.
n8n держу на сервере для технических задач — там больше гибкости, но и больше возни с настройкой. Для контентных задач, где важна визуальность и быстрая итерация, Make оказался удобнее. Весь поток данных виден на одном экране, за минуту можно проверить, что пришло в конкретный модуль.
Claude подключается через HTTP-модуль — Make до сих пор не сделал нативную интеграцию с Anthropic, хотя с OpenAI она давно есть. Несколько лишних полей при настройке, зато полный контроль над запросом. Терпимо.
Как выглядит пайплайн
Входная точка — Google Sheets. Таблица с темами: колонка с заголовком, колонка с ключевыми словами, статус (новый / в работе / готово). Make мониторит её раз в час — как только появляется строчка со статусом "новый", сценарий запускается.
Первый шаг — сбор контекста. Прежде чем идти к Claude, я через SerpAPI тяну топ-5 результатов поиска по теме. Не для плагиата — мне нужно понять, что уже написано, чтобы Claude мог предложить другой угол. Если этот шаг пропустить, Claude пишет вполне читаемо, но предсказуемо.
Дальше — первый вызов Claude. Здесь я прошу не писать текст, а сделать структуру: заголовок, три-четыре тезиса, что делает этот материал незаменимым именно сейчас. На это ушло время, но разделить генерацию на два запроса стоило того. Когда Claude сначала думает о структуре отдельно, финальный текст получается связнее.
Второй вызов Claude — уже с утверждённой структурой плюс контекстом из поиска. Здесь полноценный драфт. Промпт длинный — туда вшит голос, примеры, запрещённые обороты.
После этого — возврат в Sheets. Статус меняется на "готово", в соседнюю колонку падает текст. Дальше смотрю руками.
Самое неочевидное: обработка ошибок
Первые две версии пайплайна падали молча. Make помечал сценарий как выполненный, в таблице статус менялся на "готово", а в колонке с текстом сидело пустое поле или черновик, обрезанный на середине абзаца. Обнаруживал это только когда шёл смотреть результат.
Дело в том, что API Claude иногда возвращает ошибку внутри успешного HTTP-ответа. Make видит 200 OK и считает, что всё хорошо. Я добавил Router после каждого HTTP-модуля: один путь — если в ответе есть поле content с непустым текстом, второй — всё остальное. Второй путь пишет в отдельную вкладку "ошибки" с временем и исходными данными.
Ещё про лимиты. Если тем в таблице накапливается много и Make запускает их параллельно, можно упереться в rate limit Anthropic. Лечится просто: в настройках сценария ставишь sequential processing и добавляешь Sleep-модуль между итерациями на 3-5 секунд.
Промпты, которые работают в автоматизации
Промпт для пайплайна — это не промпт для ручного использования. Когда я пишу Claude в чате, хватает двух предложений — дальше можно уточнить. В пайплайне уточнять некому, поэтому промпт должен закрывать крайние случаи заранее.
Явный формат вывода. Прошу Claude вернуть JSON с конкретными ключами: title, body, meta_description. Без этого парсить ответ в Make значительно сложнее — нужно вытаскивать текст регулярками, а это ломается при малейшем изменении форматирования.
На случай недостатка данных написал явно: "если данных недостаточно для качественного текста, верни JSON с ключом status: insufficient_data и объяснением в поле reason". Это попадает в таблицу ошибок, и я вижу, где тема была сырой.
Ограничение длины. Без него Claude иногда пишет очень подробно — и ответ обрезается на лимите Make. Явно указываю максимальное количество слов в теле текста.
Что добавил позже и не ожидал, что пригодится
Через месяц после запуска добавил промежуточный шаг — проверку на дублирование. Перед тем как запускать генерацию, Make тянет список уже готовых заголовков из таблицы и передаёт их Claude с вопросом: "Эта тема существенно отличается от перечисленных или это вариация на уже написанное?". Несколько раз это поймало повторы, которые я бы не заметил вручную.
Второе неожиданное дополнение — Telegram-уведомление. Просто сообщение "готово N текстов, смотри" раз в день. Без него я периодически забывал зайти в таблицу, и тексты лежали там несколько дней нетронутые.
Пайплайн до сих пор не полностью автономный — финальную правку и публикацию я делаю руками. Пробовал автопостинг, но быстро понял, что это та граница, за которой теряется контроль над качеством. Claude пишет хорошо, но не всегда так, как нужно именно сейчас и именно для этой аудитории. Автоматизация экономит время на черновиках — и этого уже достаточно.
