AI SEO Blog integration
Materials for integrating SEO Blog via a WordPress plugin or a universal webhook. Choose a scenario, download the plugin, or test your endpoint.
Test webhookHTML tags that require styling
h1, h2, h3, h4
p, ul, ol, li, a, strong, img
table, thead, tbody, tr, th, td
details, summary
For <a>, make sure the rel and target attributes are supported.
.tldr - for the first p (can be styled with larger font size)
.faq-section - wrapper for <details> in FAQ
WordPress plugin
The ready plugin handles autopublishing and takes care of the integration. Install it from WordPress.org, activate it, and add the webhook from the dashboard.
Plugin setup
- Install & activate the plugin in the WordPress dashboard.
- Settings → Blogent SeoBlog: open the settings page.
- Map languages if you use non-standard codes (for example,
uk=ua). - Set blog categories for each language (category slugs).
- Copy the webhook URL from the plugin and paste it into the Blogent dashboard.
- Custom images: in Rubric Image IDs add category keys in the format
key=id1,id2. The key must matchimage_categoryfrom the webhook.
How the plugin selects images
- If the webhook sends
image(direct URL) — it is used. - If it sends
image_category(custom images) — the plugin finds the key in Rubric Image IDs and picks a random ID from the list. - If there is no
image_categorybut a rubric is set — it takes the ID by rubric key. - If nothing matches — it takes an image from the
Blogent_blog_photofolder.
Universal integration: Blogent sends a POST with JSON to your endpoint. You accept the data and publish articles.
What you need
- HTTPS endpoint that accepts
POSTwithContent-Type: application/json. - Optional custom authorization header is supported: for example
Authorization: c0ef7fe65b75676c6d8a5807b. - Store images locally (the
imagefield is a temporary URL). - Return
{"posted": true}after successful publishing. - If publishing fails, return
{"posted": false, "message": "..."}, wheremessagebriefly explains the error reason. This makes troubleshooting much faster.
JSON payload
{
"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;",
"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"
}
}
}
Fields
rubric— category slug in your CMS.params— product attributes inkey=value1|value2;format (optional).alias— primary alias (slug) for backward compatibility.image— temporary cover URL; store the file locally/CDN before publishing.image_category— key for custom images; map it to your IDs (if enabled).article— object with languages (e.g.en,uk). Each language includestitle,alias,preview(HTML),text(HTML),meta_title,meta_description,reading_time_minutes,toc(nested H2/H3/H4 anchors).
If you need product matching, pass attributes in params (format key=value1|value2;). Store the values in your CMS to filter the catalog or show recommendations.
In the dashboard webhook settings, you can optionally add any custom header pair. Example: Authorization + c0ef7fe65b75676c6d8a5807b. Blogent will include it in the webhook request headers.
Shortcodes
Blogent can automatically insert a shortcode into the article body so marketing or interactive blocks appear directly inside the content.
- In the SEO Blog dashboard, you specify one shortcode for the blog, for example
[contact-form]or[products_slider category="chairs"]. - During article generation, Blogent places this shortcode in a natural position in the middle of the content without breaking the article structure.
- Your website or CMS must process that shortcode and replace it with the final block: a form, CTA, promo code, product slider, banner, and so on.
- If the shortcode requires parameters, pass them in the format expected by your website or plugin.
- Marketing call to action:
[cta] - Discount promo code:
[promo_code] - Contact form:
[contact-form] - Product slider:
[products_slider] - Featured product selection:
[featured_products] - Banner or info widget:
[info_banner]
Shortcode names and parameters depend on your website. If shortcode support is not implemented yet, your developer needs to add the handler or install the relevant plugin.
PHP example
$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
Send a test article to your endpoint and check how the CMS processes the data. Edit the JSON if needed.