Payload envelope
Every webhook delivery wraps the event-specific data in a standard envelope:| Field | Type | Description |
|---|---|---|
event | string | The event type that triggered this delivery |
timestamp | string | ISO 8601 timestamp of when the event was sent |
workspace_id | uuid | The workspace where the event originated |
is_test | boolean | true if this was sent via the test endpoint |
data | object | Event-specific payload (see sections below) |
Content events
content.status_updated
Fires when an article’s status changes (e.g., draft to published, processing to generated).
Field reference
Field reference
| Field | Type | Description |
|---|---|---|
id | uuid | Content ID |
title | string | Article title |
buyer_stage | string|null | Funnel stage (awareness, consideration, decision) |
metadata | object | Topic, keywords, and source metadata |
status | string | Current status (e.g., DRAFT, PROCESSING, GENERATED, PUBLISHED, FAILED) |
config | object | Autowrite and scheduling configuration |
written_on | datetime|null | When the content was generated |
published_on | datetime|null | When the content was published |
research_batch_id | uuid|null | Associated research batch |
body | string|null | Full HTML content body |
cover_image | string|null | Cover image URL |
slug | string|null | URL slug |
permalink | string|null | Relative permalink |
meta_title | string|null | SEO title |
meta_description | string|null | SEO description |
post_url | string|null | Published URL on your site |
Research events
research_batch.status_updated
Fires when a research batch completes processing or fails.
Field reference
Field reference
| Field | Type | Description |
|---|---|---|
id | uuid | Research batch ID |
name | string | Batch name |
ideas_count | integer | Number of ideas generated |
status | string | Batch status (e.g., QUEUED, PROCESSING, COMPLETED, FAILED) |
topic_id | uuid | Associated topic cluster ID |
topic_name | string | Topic name |
buyer_stage | string|null | Funnel stage |
persona_name | string|null | Target persona |
source | string | Research source |
ideas | array | Generated content ideas |
Agent events
agent_task.status_updated
Fires when an AI agent task changes state (queued, running, succeeded, failed).
Field reference
Field reference
| Field | Type | Description |
|---|---|---|
id | uuid | Agent task ID |
agent_id | uuid | Parent agent ID |
agent | object | Agent details (id, name, icon, short_description) |
name | string | Task name |
status | string | Task status (QUEUED, RUNNING, SUCCEEDED, FAILED) |
inputs | object | Task input parameters |
outputs | object|null | Task output data |
usage | object | Token usage (input_tokens, output_tokens, total_tokens) |
execution_duration | integer|null | Execution time in milliseconds |
started_at | datetime|null | When execution started |
ended_at | datetime|null | When execution completed |
Topic events
topic.status_updated
Fires when a topic cluster’s stage changes (e.g., processing to ready).
Field reference
Field reference
| Field | Type | Description |
|---|---|---|
id | uuid | Topic cluster ID |
name | string | Topic name |
stage | string | Current stage (e.g., PROCESSING, READY, COMPLETED) |
keywords | array | Associated keywords with search volume and difficulty |
totalMsv | integer | Total monthly search volume |
msvBadge | string | Search volume tier (LOW, MEDIUM, HIGH) |
avgKd | integer | Average keyword difficulty |
kdBadge | string | Difficulty tier (LOW, MEDIUM, HIGH) |
coverage | integer | Content coverage percentage |
IQ events
iq.status_updated
Fires when an IQ analysis (persona, product brief, voice profile) completes or changes stage.
Field reference
Field reference
| Field | Type | Description |
|---|---|---|
id | uuid | IQ record ID |
type | string | IQ type (e.g., persona, product, voice) |
title | string | IQ title |
description | string|null | Description |
content | string|null | Generated content |
metadata | object | Additional metadata |
stage | string | Current stage (e.g., PROCESSING, READY) |
isDefault | boolean | Whether this is the default for its type |
Sitemap events
sitemap_url.status_updated
Fires when sitemap URL processing completes or fails.
Field reference
Field reference
| Field | Type | Description |
|---|---|---|
id | uuid | Sitemap URL record ID |
url | string | Sitemap URL |
type | string | URL type (sitemap, page) |
urlCount | integer | Number of URLs in sitemap |
lastFetchedAt | datetime | Last fetch timestamp |
processing | object | Processing stats (total, ready, failed, completed) |