Тарифы
Войти
Зарегистрироваться
← Назад к статьям

Контент-завод для Telegram с n8n: полное руководство
от теории к практике (часть 2)

Вторая часть комплексного руководства по созданию системы автоматической генерации и публикации контента в Telegram-каналах с использованием n8n, GPT и соблюдением всех правовых норм. 

Этап 6: Доработка текста/Pick Author Text [FIX]

JS-код: чистит мусор из ответа AI.
Вставьте этот код:

const fromAi =
$json?.message?.content ||
$json?.choices?.[0]?.message?.content ||
$json?.output || $json?.result || $json?.content || $json?.text || '';

const base = $json; // вход текущего item'а уже несёт title/link и пр. после Edit Fields

const clean = (s='') => String(s)
.replace(/^[\s\S]*?(?:ВЫВОД|OUTPUT)\s*:?\s*/i,'')
.replace(/^\s*(TITLE|BODY|LINK|ЗАДАЧА)\s*:.*$/gmi,'')
.replace(/\n{3,}/g,'\n\n')
.trim();

let author = clean(fromAi);
if (!author) author = clean(base.text_for_rewrite || base.raw || base.title || '');

return { json: { ...base, author_text: author } };

Этап 7: Compose Caption (MarkdownV2) [FIX]

Код вставить из воркфлоу: формирует Telegram-caption до 1024 символов.
function escapeHtml(s=""){
return String(s).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");
}
function stripTags(s=""){
return String(s).replace(/<[^>]*>/g," ").replace(/\s+/g," ").trim();
}
function splitFirstSentence(s=""){
const t = String(s).trim();
const m = t.match(/^[\s\S]*?[.!?…](?=\s|$)/); // до первой . ! ? …
return m ? [m[0].trim(), t.slice(m[0].length).trim()] : [t, ""];
}

const fromInput = $json || {};
const fromSet = ($items('Set (cleanup)', 0, $itemIndex) || {}).json || {};

const titleRaw = fromInput.title ?? fromSet.title ?? "";
const rawRaw = fromInput.raw ?? fromSet.raw ?? "";
const link = String(fromInput.link ?? fromSet.link ?? "");

const title = stripTags(titleRaw);
let body = stripTags(fromInput.author_text || "");

if (!body || /нет текста|ничего пересказывать/i.test(body)) body = stripTags(rawRaw) || title;
if (!body || /нет текста|ничего пересказывать/i.test(body)) body = stripTags(rawRaw) || title || "Без текста";

const TG_LIMIT = 1024;

// Префикс (заголовок)
let caption = "";
if (title) caption += `<b>${escapeHtml(title)}</b>\n\n`;

// Тело: первое предложение жирным + остальной текст
let [firstSent, restText] = splitFirstSentence(body);
let core = `<b>${escapeHtml(firstSent)}</b>`;
if (restText) core += `\n\n${escapeHtml(restText)}`;

// Хвост: источник + подписка с жирной ссылкой на @vanchain
const linkHtml = link ? `<a href="${escapeHtml(link)}">Источник</a>\n\n` : "";
const insightLink = `<b><a href="https://t.me/vanchain">Insight</a></b>`;
const tail = `${linkHtml}Подписывайся на ${insightLink}`;

// Укладываемся в лимит: стараемся не резать заголовок и 1-е предложение
let room = TG_LIMIT - caption.length - tail.length;
let coreOut = core;

if (core.length > room) {
// сначала режем «хвост» (не первое предложение)
const boldFirst = `<b>${escapeHtml(firstSent)}</b>`;
const restEsc = escapeHtml(restText || "");
const sep = restEsc ? `\n\n` : "";

const restRoom = room - boldFirst.length - sep.length;
if (restRoom >= 0) {
const cutRest = restEsc ? (restEsc.length > restRoom ? (restEsc.slice(0, Math.max(0, restRoom - 1)) + "…") : restEsc) : "";
coreOut = boldFirst + (cutRest ? `\n\n${cutRest}` : "");
} else {
// даже первое предложение не влезает — режем его
const firstText = escapeHtml(firstSent);
const allow = Math.max(0, room - ("<b></b>".length)); // запас под теги
const cutFirst = firstText.length > allow ? (firstText.slice(0, Math.max(0, allow - 1)) + "…") : firstText;
coreOut = `<b>${cutFirst}</b>`;
}
}

// Сборка
caption += coreOut + `\n\n` + tail;

return [{ json: { ...fromSet, ...fromInput, caption } }];
Сгенерируйте сайт с помощью
нейросети mottor бесплатно
Сгенерируйте сайт
с помощью
нейросети mottor бесплатно
Конструктор сайтов и интернет-магазинов
с искусственным интеллектом Muza
Конструктор сайтов
и интернет-магазинов
с искусственным интеллектом Muza
Начать генерацию

Этап 8: Генерация изображения/Build Image Prompt + OpenAI (Image)

Этап 9: OpenAI (Image)

Этап 10: Merge

  • CombineByPosition.
  • Склеивает caption + картинку.

Этап 11: Telegram

  • Operation: sendPhoto.
  • chatId: ID твоего канала.
  • caption: ={{$json.caption}}.
  • parse_mode = HTML.
Сгенерируйте сайт с помощью
нейросети mottor бесплатно
Сгенерируйте сайт
с помощью
нейросети mottor бесплатно
Конструктор сайтов и интернет-магазинов
с искусственным интеллектом Muza
Конструктор сайтов
и интернет-магазинов
с искусственным интеллектом Muza
Начать генерацию

Этап 12: Отметка контента при публикации/Mark as Published

  • POST в /rest/v1/posts?on_conflict=hash.
  • Headers: apikey, Authorization.
JSON Body:

{
hash: $json.hash,
title: $json.title,
body_markdown: $json.caption,
image_url: $json.image_url_ai ?? $json.image_url ?? null,
status: "posted",
published_at: new Date().toISOString()
}
ТУТ весь код целиком, просто вставьте его и подключите свои аккаунты:
{
"name": "Telegram-канал",
"nodes": [
{
"parameters": {
"triggerTimes": {
"item": [
{
"mode": "everyX",
"value": 15,
"unit": "minutes"
}
]
}
},
"id": "4ad87778-300b-4fa5-99be-15d59c4ec834",
"name": "Cron (hourly)",
"type": "n8n-nodes-base.cron",
"typeVersion": 1,
"position": [-740, -420]
},
{
"parameters": {
"url": "={{ `https://rsshub.app/telegram/channel/insight_rss_inbox?limit=50&_=${Math.floor(Date.now()/30000)}` }}",
"options": {
"ignoreSSL": false
}
},
"id": "b7bd4e68-8db1-4141-8c94-2f4c1906615a",
"name": "RSS Read",
"type": "n8n-nodes-base.rssFeedRead",
"typeVersion": 1,
"position": [-320, -520],
"retryOnFail": true,
"waitBetweenTries": 5000,
"alwaysOutputData": false,
"onError": "continueErrorOutput"
},
...
{
"id": "3aa1fb9d-588e-4750-b19b-c79e7668bc9b",
"name": "OpenAI (Author Text)",
"type": "@n8n/n8n-nodes-langchain.openAi",
"typeVersion": 1.8,
"position": [-700, 80],
"credentials": {
"openAiApi": {
"id": "[твой_Api]",
"name": "[твой_Api]"
}
}
},
...
{
"id": "aa8f4f55-e7ac-4752-8f14-6c482a5a5933",
"name": "OpenAI (Image)",
"type": "@n8n/n8n-nodes-langchain.openAi",
"typeVersion": 1.8,
"position": [320, 0],
"credentials": {
"openAiApi": {
"id": "[твой_Api]",
"name": "[твой_Api]"
}
}
},
...
{
"id": "5d421f2d-15e8-4503-a57e-a5b8f8df713d",
"name": "Telegram",
"type": "n8n-nodes-base.telegram",
"typeVersion": 1.2,
"position": [900, 80],
"credentials": {
"telegramApi": {
"id": "[твой_Api]",
"name": "[твой_Api]"
}
}
},
...
{
"id": "4943cb02-dacd-4d21-b7f6-0a0dced4621a",
"name": "Mark as Published (Supabase)",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [1220, 80],
"parameters": {
"method": "POST",
"url": "https://[твой_Api]/rest/v1/posts?on_conflict=hash",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{ "name": "Content-Type", "value": "application/json" },
{ "name": "apikey", "value": "[твой_Api]" },
{ "name": "Authorization", "value": "Bearer [твой_Api]" },
{ "name": "prefer", "value": "resolution=merge-duplicates,return=minimal" }
]
}
}
},
...
{
"id": "76948513-2245-407c-a6d5-8e4ecbcb45b4",
"name": "Gate: SELECT posts by hash",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [600, -240],
"parameters": {
"url": "https://[твой_Api]/rest/v1/posts?select=hash&hash=eq.{{$json.hash}}&limit=1",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{ "name": "apikey", "value": "[твой_Api]" },
{ "name": "Authorization", "value": "Bearer [твой_Api]" }
]
}
}
},
...
{
"id": "2a840998-5810-4467-9b46-d6b63103568a",
"name": "Recent posts (N days)",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [-340, -220],
"parameters": {
"url": "https://[твой_Api]/rest/v1/posts",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{ "name": "apikey", "value": "[твой_Api]" },
{ "name": "Authorization", "value": "Bearer [твой_Api]" }
]
}
}
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "feb898ae-fac5-42fe-ad22-454da8e1c595",
"meta": {
"templateCredsSetupCompleted": true,
"instanceId": "[твой_Api]"
},
"id": "CsO6MORfgeWgWlqe",
"tags": []
}


Бесплатно создадим прототип сайта

под ваш бизнес при подключении тарифа

Бесплатно создадим прототип сайта

под ваш бизнес при подключении тарифа

Забронировать предложение
+ 6 подарков

0₽

0₽

Разбор и улучшение сайта
от специалистов Mottor

Разбор и улучшение сайта
от специалистов Mottor

Чат-ботов и Автоворонок

(больше заявок и продаж с сайта)

Чат-ботов и Автоворонок

(больше заявок и продаж с сайта)

+1

месяц

месяц

0₽

0₽

Консультация по созданию
сайта и работе в редакторе

Консультация по созданию
сайта и работе в редакторе

Бесплатный домен
в зоне .ru/.рф

Бесплатный домен
в зоне .ru/.рф

0₽

0₽

0₽

0₽

SSL-сертификат
безопасности для вашего
домена на 2 года

SSL-сертификат
безопасности для вашего
домена на 2 года

Промокод на рекламу
в Я.Директ и Я.Бизнес

Промокод на рекламу
в Я.Директ и Я.Бизнес

+12 000₽

+12 000₽

Для новых пользователей
n8n, Zapier или Make: руководство по выбору платформы для начинаю
Контент-завод для Telegram
с n8n: полное руководство
от теории к практике (часть 1)
ТОП-7 простых автоматизаций для личного использования
с n8n: от идей до готового рабочего процесса

Конструктор сайтов, чат-ботов, автоворонок, мобильных приложений

Конструктор сайтов, чат-ботов, автоворонок, мобильных приложений

Быстрый старт:

Премиум поддержка
Полезные материалы
Интеграции
Технологии
Шаблоны сайтов
Тарифы
Импорт из Figma
Сделано на mottor
Партнеры

Продукты:

Сайты + лендинги
Интернет-магазины
Квизы
Чат-боты
Автоворонки
Приложение
AI-агенты (n8n)
Партнерская программа
WhiteLabel

О нас:

О компании
Тур по сервису
Вакансии
Отзывы
Контакты

Шаблоны:

Популярные запросы:

Все шаблоны
Шаблон доставка еды
Шаблон строительство
Шаблон недвижимость
Шаблон онлайн-курс
Шаблон онлайн школа
Шаблон портфолио
Шаблон вебинар
Шаблон интернет-магазин мебели

ООО “ЛПМОТОР”, все данные защищены

Договор оферта
Согласие
Политика конфиденциальнсоти
Инструкция по установке
Бесплатный конструктор сайта
Одностраничный сайт
Конструктор интернет магазинов
Конструктор страниц
Конструктор сайта онлайн
Онлайн конструктор сайта бесплатно
Сайт конструктор бесплатно
Создать квиз
Конструктор создания сайтов
Создать сайт бесплатно конструктор
Многостраничный сайт
Создать бесплатно интернет магазин
Создать сайт онлайн бесплатно самому
Создать сайт конструктор

Стоимость:

Клиенты:

Материалы:

Обновления
Справочный центр
Бесплатный практикум
Mottor Campus

Подпишитесь на наши соцсети
и получайте кейсы, исследования и обновления первыми:

Бесплатный звонок по России

Бесплатный звонок по России

support@lpmotor.ru

support@lpmotor.ru

при поддержке Фонда Развития Интернет Инициатив