article.readyWhen writing finishesSent once an article is written and passes automated review — your cue to publish it.
Developers
Get a clear JSON HTTP callback the moment an article is ready — and whenever its status changes.
Two events, each fired at a specific stage of your campaign pipeline.
article.readyWhen writing finishesSent once an article is written and passes automated review — your cue to publish it.
article.status_changedWhen status changesSent when an article's status changes in TrafficWins, for example when you publish or archive it.
Every event POSTs this JSON body. Both events share the same shape.
{
"event": "article.ready",
"orgId": "org_8c2f1a…",
"timestamp": "2026-06-15T12:34:56.000Z",
"article": {
"id": "art_3b9a7d…",
"campaignId": "cmp_71d4e0…",
"campaign": {
"id": "cmp_71d4e0…",
"name": "Office ergonomics",
"language": "en",
"websiteId": "site_8142…"
},
"contentPlan": {
"id": "plan_f40a…",
"itemId": "item_901c…",
"topicClusterId": "cluster_ba52…",
"topicClusterTitle": "Standing desk buyer fit",
"role": "pillar",
"contentRole": "buyer guide",
"funnelStage": "mofu",
"primaryKeyword": "standing desk",
"plannedForDate": "2026-06-15"
},
"title": "How to Choose a Standing Desk",
"slug": "how-to-choose-a-standing-desk",
"status": "draft",
"description": "A practical buyer's guide to height, stability, and budget.",
"content": "<h1>How to Choose a Standing Desk</h1><p>…</p>",
"tldr": "Choose by fit, stability, and budget.",
"keyTakeaways": ["Check height range", "Check stability"],
"keywords": ["standing desk", "ergonomics"],
"language": "en",
"articleType": "pillar",
"category": "office-ergonomics",
"tags": ["standing desk", "ergonomics"],
"frontmatterDate": "2026-06-15",
"author": "TrafficWins Team",
"wordCount": 1840,
"readingTimeMinutes": 10,
"readingTimeText": "10 min read",
"reviewScore": 92,
"reviewVerdict": "pass",
"qualitySummary": "Strong draft.",
"qualityFailedChecks": [],
"heroImageUrl": "https://cdn.trafficwins.com/articles/3b9a/hero.png",
"heroImageAlt": "A height-adjustable standing desk in a bright office",
"images": [
{
"kind": "hero",
"url": "https://cdn.trafficwins.com/articles/3b9a/hero.png",
"alt": "A height-adjustable standing desk in a bright office",
"caption": null,
"contentType": "image/png",
"byteSize": 102400,
"base64": "iVBORw0KGgo…",
"dataUrl": "data:image/png;base64,iVBORw0KGgo…"
}
],
"files": {
"llmTxt": {
"fileName": "how-to-choose-a-standing-desk.llm.txt",
"contentType": "text/plain",
"encoding": "utf-8",
"content": "# How to Choose a Standing Desk\n\nDescription: …"
},
"jsonLd": {
"contentType": "application/ld+json",
"encoding": "utf-8",
"content": "{\"@context\":\"https://schema.org\",\"@graph\":[…]}"
}
},
"createdAt": "2026-06-15T12:00:00.000Z",
"updatedAt": "2026-06-15T12:34:55.000Z"
}
}TrafficWins sends clear JSON over HTTPS with these headers.
POST /your-endpoint HTTP/1.1
Content-Type: application/json
User-Agent: TrafficWins-Webhooks/1.0Add your endpoint URL in TrafficWins, under your website's publishing settings. We'll POST each event as clear JSON.
Open TrafficWinsStart with one website
Create an account, connect a site, and let TrafficWins research, plan, write, and review your first campaign — no credit card, no API keys.
Start free trial3-day trial · 5 article credits · cancel anytime