Універсальний вебхук для автопублікації SEO-блогу
Якщо ваш сайт не на підтримуваній платформі, його покриває універсальний вебхук. Blogent надсилає POST із JSON на ваш HTTPS-endpoint; ви приймаєте дані, зберігаєте обкладинку локально й відповідаєте {"posted": true}. Усе на цій сторінці — поля, HTML-теги, шорткоди, приклад на PHP і живий тестер — описує саме цей контракт.
Універсальна інтеграція: Blogent надсилає POST із JSON на ваш endpoint. Ви приймаєте дані та публікуєте статті.
HTML-теги, для яких потрібні стилі
h1, h2, h3, h4
p, ul, ol, li, a, strong, img
table, thead, tbody, tr, th, td
details, summary
Для <a> переконайтеся, що підтримуються атрибути rel і target.
.tldr - для першого p (можна виділяти більшим шрифтом)
.faq-section - обгортка для <details> для FAQ
Що потрібно
- HTTPS endpoint, що приймає
POSTзContent-Type: application/json. - Підтримується опційний кастомний заголовок авторизації: наприклад
Authorization: c0ef7fe65b75676c6d8a5807b. - Зберігайте зображення локально (поле
image— тимчасовий URL). - Поверніть
{"posted": true}після успішної публікації. - Якщо публікація не вдалася, повертайте
{"posted": false, "message": "..."}, деmessageкоротко пояснює причину помилки. Це спрощує діагностику.
JSON‑навантаження
{
"image": "https://.../article.webp",
"image_category": "desert-tours",
"alias": "string-for-url",
"date": "0000-00-00 00:00:00",
"rubric": "category-slug",
"params": "key:value|value;key2:value;",
"author": {
"id": 7,
"identifiers": {"lovable": "cms-author-42"},
"name": "Olena Kovalenko",
"gender": "female",
"age": 37,
"position": "Head of Customer Success",
"description": "Works with customer onboarding and retention strategy."
},
"article": {
"en": {
"title": "text",
"alias": "string-for-url-en",
"preview": "html",
"meta_title": "text",
"meta_description": "text",
"reading_time_minutes": 7,
"toc": [
{
"title": "Main section",
"id": "main-section",
"children": [
{
"title": "Nested point",
"id": "nested-point",
"children": []
}
]
}
],
"text": "html"
}
}
}
Поля
rubric— slug категорії/рубрики у вашій CMS.params— довільні атрибути товарів у форматіkey=value1|value2;(опційно).alias— основний alias (slug) для зворотної сумісності.image— тимчасовий URL на обкладинку, збережіть файл локально/на CDN перед публікацією.image_category— ключ для кастомних зображень; зіставте його зі своїми ID (якщо функція увімкнена).author— необов’язковий обраний автор компанії з внутрішнімidBlogent, об’єктом платформних IDidentifiers, полямиname,gender,age,positionтаdescription. Передається лише ID налаштованої платформи публікації; якщо авторів немає, поле не передається.article— обʼєкт з мовами (наприкладen,uk). Кожна мова міститьtitle,alias,preview(HTML),text(HTML),meta_title,meta_description,reading_time_minutes,toc(вкладені якорі H2/H3/H4).
Якщо потрібно підбирати товари, передайте атрибути в полі params (формат key=value1|value2;). Збережіть значення у CMS, щоб фільтрувати каталог або відображати рекомендації.
У налаштуваннях webhook у дашборді можна опційно додати будь-яку пару заголовка. Приклад: Authorization + c0ef7fe65b75676c6d8a5807b. Blogent додасть її в заголовки webhook-запиту.
Шорткоди
Blogent може автоматично вставляти шорткод у тіло статті, щоб показувати маркетингові або інтерактивні блоки прямо всередині контенту.
- У дашборді SEO Blog ви вказуєте один шорткод для блогу, наприклад
[contact-form]або[products_slider category="chairs"]. - Під час генерації статті Blogent вставляє цей шорткод у середині матеріалу в природному місці, не ламаючи структуру тексту.
- Ваш сайт або CMS мають вміти обробити цей шорткод і замінити його на готовий блок: форму, CTA, промокод, слайдер товарів, банер тощо.
- Якщо шорткод потребує параметрів, передавайте їх у тому форматі, який очікує ваш сайт або плагін.
- Маркетинговий призив до дії:
[cta] - Промокод зі знижкою:
[promo_code] - Форма зворотного звʼязку:
[contact-form] - Слайдер товарів:
[products_slider] - Добірка рекомендованих товарів:
[featured_products] - Банер або інформаційний віджет:
[info_banner]
Назви та параметри шорткодів залежать від вашого сайту. Якщо на сайті немає підтримки шорткодів, розробнику потрібно додати відповідну обробку або плагін.
PHP приклад
$data = json_decode(file_get_contents('php://input'), true);
if (json_last_error() === JSON_ERROR_NONE) {
$primaryAlias = $data['alias'] ?? '';
$date = $data['date'] ?? '';
$rubric = $data['rubric'] ?? '';
$params = $data['params'] ?? '';
$imageCategory = $data['image_category'] ?? '';
foreach ($data['article'] as $lang => $article) {
$title = $article['title'] ?? '';
$languageAlias = $article['alias'] ?? '';
$preview = $article['preview'] ?? '';
$text = $article['text'] ?? '';
$metaTitle = $article['meta_title'] ?? '';
$metaDescription = $article['meta_description'] ?? '';
$readingTimeMinutes = (int) ($article['reading_time_minutes'] ?? 0);
$toc = is_array($article['toc'] ?? null) ? $article['toc'] : [];
}
$imageUrl = $data['image'] ?? '';
if ($imageUrl) {
$imagePath = 'images/' . basename($imageUrl);
if ($image = @file_get_contents($imageUrl)) {
file_put_contents($imagePath, $image);
}
}
header('Content-Type: application/json');
echo json_encode(['posted' => true]);
}
Webhook tester
Надішліть тестову статтю на свій endpoint і перевірте, як CMS обробляє дані. За потреби змініть JSON.
Що ви отримуєте після підключення Webhook
- Один контракт працює з будь-яким стеком: payload — це звичайний JSON через HTTPS POST.
- Відповідь про помилку містить
message, тож зламана публікація сама пояснює причину. - У payload є все, що потрібно статті: заголовок, alias, прев’ю, HTML-тіло, meta title, meta description, час читання та вкладений зміст — окремо для кожної мови.
- Endpoint можна захистити опційним власним заголовком авторизації.
- У тіло статті можна вставляти шорткод, тож ваш власний CTA, форма чи слайдер товарів з’являються всередині контенту.
- Живий тестер на цій сторінці перевіряє ваш endpoint ще до підключення до реального блогу.
Вимоги та сумісність
- Endpoint
- HTTPS-endpoint, що приймає
POSTізContent-Type: application/json. - Авторизація
- Опційна пара власних заголовків, налаштована в параметрах вебхука в панелі.
- Зображення
- Поле
image— тимчасове посилання: збережіть файл локально або на своєму CDN до публікації. - Успішна відповідь
{"posted": true}після завершення публікації.- Відповідь про помилку
{"posted": false, "message": "..."}, деmessageкоротко пояснює причину.
Часті запитання про інтеграцію з Webhook
Що мінімально має робити мій endpoint?
Приймати HTTPS POST із JSON, публікувати кожну мову в article, зберігати обкладинку з тимчасового посилання image й повертати {"posted": true}.
Навіщо повертати message при помилці?
Тому що {"posted": false, "message": "..."} одразу показує, яка стаття не пройшла і чому — це значно швидше для діагностики, ніж проста помилка.
Чи можна захистити endpoint?
Так. Додайте будь-яку пару власних заголовків у параметрах вебхука, наприклад Authorization і секретне значення, — Blogent надсилатиме її з кожним запитом.
Який HTML потрібно стилізувати?
h1–h4, p, ul, ol, li, a, strong, img, таблиці та details/summary. Також стилізуйте .tldr для першого абзацу та .faq-section для блоку FAQ.
Чи можна вставляти власні блоки в статті?
Так. Налаштуйте один шорткод для блогу — Blogent розмістить його в природному місці всередині статті, а ваш сайт замінить на готову форму, CTA, промокод, слайдер або банер.
Переведіть SEO-блог на автопілот
Створіть блог, підключіть Webhook — і Blogent плануватиме, писатиме, перелінковуватиме та публікуватиме статті автоматично.