Publishing Articles to Your Website
Send finished articles straight from the Content Writer to WordPress or any CMS, with metadata, images and structured data intact
What Gets Sent
Everything needed to publish the article properly — not just the body text
The article itself
Body HTML, the H1 heading, URL slug, excerpt, reading time, word count, categories, tags and author. The title your CMS shows and the meta title are sent separately, because they are usually not the same sentence.
Search metadata
Meta title and description (clamped to the lengths Google actually displays), canonical URL, robots directive, and the full Open Graph and Twitter card fields so shared links render correctly.
Images with sideload metadata
The hero image and every in-body image arrive as absolute URLs plus alt text, caption, filename, dimensions and MIME type. Your receiver copies them into its own media library so your published pages do not depend on our CDN.
Structured data
A complete JSON-LD graph — Organization, WebSite, WebPage, BreadcrumbList, the Article/BlogPosting, and FAQPage when the article has FAQs — all cross-referenced. Render it as one script tag. HowTo is included only for genuinely procedural articles.
FAQ pairs
The question and answer pairs as structured data, separate from the body HTML, so your theme can render them in its own FAQ component if it has one.
WordPress Setup
Install the plugin and connect it in about two minutes
Install the plugin
Download airanklab.zip from Dashboard → Webhooks. In WordPress go to Plugins → Add New → Upload Plugin, upload it and activate it.
Validate your API key
In WordPress open AI Rank Lab → Settings, paste the API key shown on the Webhooks page, click Validate, tick Activate and save. Your site must already be one of your AI Rank Lab domains — the plugin links itself to that domain.
Connect the site
On Dashboard → Webhooks click Connect WordPress and pick the domain. We find the plugin, build the publish webhook and check that WordPress accepts your credentials — without publishing anything. Sites you validated in the previous step also appear there automatically.
Choose defaults
Pick the post status (draft is a safe start) and optional categories while connecting. Use the optional site URL field if WordPress lives at www, in a subfolder or on http.
Publish
The plugin creates the post (or updates the one with the same slug), downloads images into your media library, sets the featured image, assigns categories and tags, and writes Yoast or All in One SEO meta. If a publish fails, Test connection on the Webhooks page tells you exactly what to fix.
Any Other CMS
One signed JSON request — wire it to whatever you run
Read the contract
The complete payload specification lives in docs/CONTENT_PUBLISH_WEBHOOK.md, with a full worked example and verification code in Node, PHP and Python.
Verify the signature
Each request carries X-AIRankLab-Signature: an HMAC-SHA256 of the timestamp, a dot, and the raw body. Verify it against the raw bytes before parsing, and reject anything older than five minutes.
Handle idempotency
Every request carries an idempotency key that stays the same while the article is unchanged. Store it against the post you create, and return the existing post when you see a key again. Retries are normal — without this, one network blip becomes three copies of the article.
Return the live URL
Respond with 2xx and JSON containing a "link" field holding the published URL. AI Rank Lab reads it back to start tracking whether the page earns AI citations.
Start from the reference receiver
integrations/node-receiver is a short, complete Express implementation of all four rules. Run it locally and point a webhook at it to watch a real publish land before writing your own.
Testing Before You Go Live
See and sign the real request without sending it
Preview the payload
Click "Preview payload" next to any webhook to see the exact headers and body that would be sent, with secrets redacted. Nothing reaches your endpoint.
Dry run
The "Dry run" button builds and signs the genuine request and stops short of sending it. Use it to confirm every field is populated before a real article goes out.
Check the publish log
Every attempt is logged with the response status and body. A failed send is retried automatically after 1, 5 and 15 minutes; a 4xx is treated as final because your endpoint understood the request and rejected it.
Brand Name & Voice
How the writer learns what your brand is actually called
It reads your website
On first use, AI Rank Lab reads up to twelve pages of your site and pulls the brand name from your Organization schema, og:site_name tag or page title suffix — wherever you already publish it.
Check it in the Brand panel
The Brand panel beside the article shows the resolved name and where it came from. If it says the name was guessed from the domain, set it by hand.
Corrections are permanent
A name you set yourself is marked as an override, so re-reading the website will never overwrite it.
Mentions stay honest
The writer mentions your brand at most three times per article, only where it genuinely belongs, and never as an advert. Zero mentions is a valid outcome. It may only cite proof points found on your own site.