Skip to content

Commit cdaabbc

Browse files
committed
formatting fixes
1 parent 25173f9 commit cdaabbc

1 file changed

Lines changed: 123 additions & 123 deletions

File tree

docs/dev-tools/intro-webhooks.md

Lines changed: 123 additions & 123 deletions
Original file line numberDiff line numberDiff line change
@@ -72,16 +72,16 @@ Switching between modes is lossless - your filter is not lost when you switch.
7272

7373
### PQL syntax and supported fields
7474

75-
| Filter field | PQL field name | Accepted values |
76-
|---|---|---|
77-
| Work item type | `type_id` | Work item type UUID |
78-
| State group | `state_group` | `backlog` · `unstarted` · `started` · `completed` · `cancelled` |
79-
| Assignees | `assignee_id` | User UUID |
80-
| Labels | `label_id` | Label UUID |
81-
| Projects | `project_id` | Project UUID |
82-
| Priority | `priority` | `none` · `low` · `medium` · `high` · `urgent` |
83-
| Start date | `start_date` | ISO date |
84-
| Due date | `target_date` | ISO date |
75+
| Filter field | PQL field name | Accepted values |
76+
| -------------- | -------------- | --------------------------------------------------------------- |
77+
| Work item type | `type_id` | Work item type UUID |
78+
| State group | `state_group` | `backlog` · `unstarted` · `started` · `completed` · `cancelled` |
79+
| Assignees | `assignee_id` | User UUID |
80+
| Labels | `label_id` | Label UUID |
81+
| Projects | `project_id` | Project UUID |
82+
| Priority | `priority` | `none` · `low` · `medium` · `high` · `urgent` |
83+
| Start date | `start_date` | ISO date |
84+
| Due date | `target_date` | ISO date |
8585

8686
**Expression syntax**
8787

@@ -124,8 +124,8 @@ Use the raw bytes from the incoming request - not a parsed or re-serialized vers
124124

125125
### Signature header reference
126126

127-
| Header | Value |
128-
|---|---|
127+
| Header | Value |
128+
| ------------------- | ------------------------------------------------------------------------------ |
129129
| `X-Plane-Signature` | HMAC-SHA256 hex digest of the raw request body, keyed with your webhook secret |
130130

131131
The secret key is formatted as `plane_wh_` followed by a random string. Plane masks it in the UI. To view the full key, open the edit form for the webhook and use the show/hide toggle in the **Secret key** section.
@@ -194,83 +194,83 @@ Retry behavior is automatic. There is no way to trigger a manual retry for a fai
194194

195195
The top of the view shows four summary stats:
196196

197-
| Stat | What it shows |
198-
|---|---|
199-
| Total deliveries | Total number of delivery attempts |
200-
| Successful | Deliveries that received a 2xx response |
201-
| Failed | Deliveries that returned an error or exhausted retries |
202-
| Success rate | Successful deliveries as a percentage of total |
197+
| Stat | What it shows |
198+
| ---------------- | ------------------------------------------------------ |
199+
| Total deliveries | Total number of delivery attempts |
200+
| Successful | Deliveries that received a 2xx response |
201+
| Failed | Deliveries that returned an error or exhausted retries |
202+
| Success rate | Successful deliveries as a percentage of total |
203203

204204
Below the summary, the delivery log lists individual attempts:
205205

206-
| Column | What it shows |
207-
|---|---|
208-
| Events | The event type that triggered the delivery |
209-
| Status | Successful or Failed |
206+
| Column | What it shows |
207+
| ------------- | ------------------------------------------------------- |
208+
| Events | The event type that triggered the delivery |
209+
| Status | Successful or Failed |
210210
| Response time | How long your endpoint took to respond, in milliseconds |
211-
| Event time | When the delivery was sent |
211+
| Event time | When the delivery was sent |
212212

213213
## Events and payload
214214

215215
### Event reference
216216

217-
| Group | Event key | Fires when |
218-
|---|---|---|
219-
| **Projects** | `project.created` | A project is created |
220-
| | `project.updated` | A project is updated |
221-
| | `project.archived` | A project is archived |
222-
| | `project.deleted` | A project is deleted |
223-
| **Cycles** | `cycle.created` | A cycle is created |
224-
| | `cycle.updated` | A cycle is updated |
225-
| | `cycle.archived` | A cycle is archived |
226-
| | `cycle.deleted` | A cycle is deleted |
227-
| **Modules** | `module.created` | A module is created |
228-
| | `module.updated` | A module is updated |
229-
| | `module.archived` | A module is archived |
230-
| | `module.deleted` | A module is deleted |
231-
| **Milestones** | `milestone.created` | A milestone is created |
232-
| | `milestone.updated` | A milestone is updated |
233-
| | `milestone.deleted` | A milestone is deleted |
234-
| **Pages** | `page.created` | A page is created |
235-
| | `page.updated` | A page is updated |
236-
| | `page.archived` | A page is archived |
237-
| | `page.deleted` | A page is deleted |
238-
| **Page comments** | `page.comment.created` | A comment is added to a page |
239-
| | `page.comment.updated` | A page comment is edited |
240-
| | `page.comment.deleted` | A page comment is deleted |
241-
| **Work items** | `workitem.created` | A work item is created |
242-
| | `workitem.updated` | A work item is updated |
243-
| | `workitem.archived` | A work item is archived |
244-
| | `workitem.deleted` | A work item is deleted |
245-
| **Work item comments** | `workitem.comment.created` | A comment is added to a work item |
246-
| | `workitem.comment.updated` | A work item comment is edited |
247-
| | `workitem.comment.deleted` | A work item comment is deleted |
248-
| **Work item links** | `workitem.link.created` | A link is added to a work item |
249-
| | `workitem.link.updated` | A work item link is updated |
250-
| | `workitem.link.deleted` | A work item link is removed |
251-
| **Work item votes** | `workitem.vote.created` | A vote is cast on a work item |
252-
| | `workitem.vote.deleted` | A vote is removed |
253-
| **Work item attachments** | `workitem.attachment.created` | A file is attached to a work item |
254-
| | `workitem.attachment.updated` | A work item attachment is updated |
255-
| | `workitem.attachment.deleted` | A work item attachment is removed |
256-
| **Work item relations** | `workitem.relation.created` | A relation is added between work items |
257-
| | `workitem.relation.deleted` | A relation is removed |
258-
| **Work item dependencies** | `workitem.dependency.created` | A dependency is added |
259-
| | `workitem.dependency.deleted` | A dependency is removed |
260-
| **Work item page links** | `workitem.page_link.created` | A page link is added to a work item |
261-
| | `workitem.page_link.deleted` | A page link is removed |
217+
| Group | Event key | Fires when |
218+
| -------------------------- | ----------------------------- | -------------------------------------- |
219+
| **Projects** | `project.created` | A project is created |
220+
| | `project.updated` | A project is updated |
221+
| | `project.archived` | A project is archived |
222+
| | `project.deleted` | A project is deleted |
223+
| **Cycles** | `cycle.created` | A cycle is created |
224+
| | `cycle.updated` | A cycle is updated |
225+
| | `cycle.archived` | A cycle is archived |
226+
| | `cycle.deleted` | A cycle is deleted |
227+
| **Modules** | `module.created` | A module is created |
228+
| | `module.updated` | A module is updated |
229+
| | `module.archived` | A module is archived |
230+
| | `module.deleted` | A module is deleted |
231+
| **Milestones** | `milestone.created` | A milestone is created |
232+
| | `milestone.updated` | A milestone is updated |
233+
| | `milestone.deleted` | A milestone is deleted |
234+
| **Pages** | `page.created` | A page is created |
235+
| | `page.updated` | A page is updated |
236+
| | `page.archived` | A page is archived |
237+
| | `page.deleted` | A page is deleted |
238+
| **Page comments** | `page.comment.created` | A comment is added to a page |
239+
| | `page.comment.updated` | A page comment is edited |
240+
| | `page.comment.deleted` | A page comment is deleted |
241+
| **Work items** | `workitem.created` | A work item is created |
242+
| | `workitem.updated` | A work item is updated |
243+
| | `workitem.archived` | A work item is archived |
244+
| | `workitem.deleted` | A work item is deleted |
245+
| **Work item comments** | `workitem.comment.created` | A comment is added to a work item |
246+
| | `workitem.comment.updated` | A work item comment is edited |
247+
| | `workitem.comment.deleted` | A work item comment is deleted |
248+
| **Work item links** | `workitem.link.created` | A link is added to a work item |
249+
| | `workitem.link.updated` | A work item link is updated |
250+
| | `workitem.link.deleted` | A work item link is removed |
251+
| **Work item votes** | `workitem.vote.created` | A vote is cast on a work item |
252+
| | `workitem.vote.deleted` | A vote is removed |
253+
| **Work item attachments** | `workitem.attachment.created` | A file is attached to a work item |
254+
| | `workitem.attachment.updated` | A work item attachment is updated |
255+
| | `workitem.attachment.deleted` | A work item attachment is removed |
256+
| **Work item relations** | `workitem.relation.created` | A relation is added between work items |
257+
| | `workitem.relation.deleted` | A relation is removed |
258+
| **Work item dependencies** | `workitem.dependency.created` | A dependency is added |
259+
| | `workitem.dependency.deleted` | A dependency is removed |
260+
| **Work item page links** | `workitem.page_link.created` | A page link is added to a work item |
261+
| | `workitem.page_link.deleted` | A page link is removed |
262262

263263
### Request headers
264264

265265
Every webhook request includes these headers:
266266

267-
| Header | Value |
268-
|---|---|
269-
| `Content-Type` | `application/json` |
270-
| `User-Agent` | `Autopilot` |
271-
| `X-Plane-Delivery` | Unique UUID per delivery attempt. Matches `delivery_id` in the payload body. |
272-
| `X-Plane-Event` | The event type, e.g. `workitem.created`. Matches `event` in the payload body. |
273-
| `X-Plane-Signature` | HMAC-SHA256 signature of the request body |
267+
| Header | Value |
268+
| ------------------- | ----------------------------------------------------------------------------- |
269+
| `Content-Type` | `application/json` |
270+
| `User-Agent` | `Autopilot` |
271+
| `X-Plane-Delivery` | Unique UUID per delivery attempt. Matches `delivery_id` in the payload body. |
272+
| `X-Plane-Event` | The event type, e.g. `workitem.created`. Matches `event` in the payload body. |
273+
| `X-Plane-Signature` | HMAC-SHA256 signature of the request body |
274274

275275
These headers are reserved and cannot be overridden with custom values: `host`, `content-length`, `content-type`, `user-agent`, `x-plane-delivery`, `x-plane-event`, `x-plane-signature`.
276276

@@ -280,30 +280,30 @@ All v2 payloads share this top-level structure:
280280

281281
```json
282282
{
283-
"version": "v2",
284-
"delivery_id": "<uuid>",
285-
"event_id": "<uuid>",
286-
"entity_id": "<uuid>",
287-
"entity_type": "<string>",
288-
"event": "<dot.notation.event>",
289-
"webhook_id": "<uuid>",
290-
"workspace_id": "<uuid>",
291-
"data": { },
292-
"previous_attributes": { }
283+
"version": "v2",
284+
"delivery_id": "<uuid>",
285+
"event_id": "<uuid>",
286+
"entity_id": "<uuid>",
287+
"entity_type": "<string>",
288+
"event": "<dot.notation.event>",
289+
"webhook_id": "<uuid>",
290+
"workspace_id": "<uuid>",
291+
"data": {},
292+
"previous_attributes": {}
293293
}
294294
```
295295

296-
| Field | Description |
297-
|---|---|
298-
| `version` | Always `"v2"` |
299-
| `delivery_id` | Unique ID for this delivery attempt. Matches the `X-Plane-Delivery` header. A new UUID is generated for each retry. |
300-
| `event_id` | Unique ID for the triggering event. Stable across retries - use this for deduplication. |
301-
| `entity_id` | UUID of the primary entity affected by the event. |
302-
| `entity_type` | Type of the entity, e.g. `issue`, `cycle`, `issue_comment`, `issue_link`. |
303-
| `event` | Full dot-notation event name, e.g. `workitem.comment.updated`. |
304-
| `webhook_id` | ID of the webhook configuration that triggered this delivery. |
305-
| `workspace_id` | UUID of the workspace in which the event occurred. |
306-
| `data` | Full entity object for create and update events. Empty object `{}` for delete events. |
296+
| Field | Description |
297+
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
298+
| `version` | Always `"v2"` |
299+
| `delivery_id` | Unique ID for this delivery attempt. Matches the `X-Plane-Delivery` header. A new UUID is generated for each retry. |
300+
| `event_id` | Unique ID for the triggering event. Stable across retries - use this for deduplication. |
301+
| `entity_id` | UUID of the primary entity affected by the event. |
302+
| `entity_type` | Type of the entity, e.g. `issue`, `cycle`, `issue_comment`, `issue_link`. |
303+
| `event` | Full dot-notation event name, e.g. `workitem.comment.updated`. |
304+
| `webhook_id` | ID of the webhook configuration that triggered this delivery. |
305+
| `workspace_id` | UUID of the workspace in which the event occurred. |
306+
| `data` | Full entity object for create and update events. Empty object `{}` for delete events. |
307307
| `previous_attributes` | Present on all events. For `updated` events, contains the previous values of changed fields. For `deleted` events, contains the full record before deletion. Empty object `{}` for all other events. |
308308

309309
### Payload examples
@@ -312,23 +312,23 @@ All v2 payloads share this top-level structure:
312312

313313
```json
314314
{
315-
"version": "v2",
316-
"delivery_id": "01ab9316-f978-4449-bad6-dce958be8454",
317-
"event_id": "0afa042d-92a9-4326-bdca-5ff5490dbf09",
318-
"entity_id": "088a83b9-a53f-4dda-b2bc-c860cf455997",
319-
"entity_type": "issue",
320-
"event": "workitem.comment.created",
321-
"webhook_id": "285f087b-e1e0-4f90-b9f4-0b720acfac04",
315+
"version": "v2",
316+
"delivery_id": "01ab9316-f978-4449-bad6-dce958be8454",
317+
"event_id": "0afa042d-92a9-4326-bdca-5ff5490dbf09",
318+
"entity_id": "088a83b9-a53f-4dda-b2bc-c860cf455997",
319+
"entity_type": "issue",
320+
"event": "workitem.comment.created",
321+
"webhook_id": "285f087b-e1e0-4f90-b9f4-0b720acfac04",
322322
"workspace_id": "d250cd44-fa71-42c2-b2b5-3c73227288fc",
323323
"data": {
324-
"id": "088a83b9-a53f-4dda-b2bc-c860cf455997",
324+
"id": "088a83b9-a53f-4dda-b2bc-c860cf455997",
325325
"name": "Webhook Test Work Item 2",
326326
"comment": {
327-
"id": "4797f841-c731-4e55-971f-d9cfe1938dfb",
328-
"access": "INTERNAL",
329-
"actor_id": "88fc36c8-73b0-4547-81c7-96b70f61835e",
330-
"issue_id": "088a83b9-a53f-4dda-b2bc-c860cf455997",
331-
"edited_at": null,
327+
"id": "4797f841-c731-4e55-971f-d9cfe1938dfb",
328+
"access": "INTERNAL",
329+
"actor_id": "88fc36c8-73b0-4547-81c7-96b70f61835e",
330+
"issue_id": "088a83b9-a53f-4dda-b2bc-c860cf455997",
331+
"edited_at": null,
332332
"comment_stripped": "Webhook Test Comment"
333333
}
334334
},
@@ -340,22 +340,22 @@ All v2 payloads share this top-level structure:
340340

341341
```json
342342
{
343-
"version": "v2",
344-
"delivery_id": "616d98fe-35a7-4431-a233-db40936c8339",
345-
"event_id": "7b3c1e2a-8f94-4b12-a781-2c5e9d4f6a03",
346-
"entity_id": "8661bdfa-098f-434d-8e44-b1f32de62406",
347-
"entity_type": "issue_link",
348-
"event": "workitem.link.created",
349-
"webhook_id": "285f087b-e1e0-4f90-b9f4-0b720acfac04",
343+
"version": "v2",
344+
"delivery_id": "616d98fe-35a7-4431-a233-db40936c8339",
345+
"event_id": "7b3c1e2a-8f94-4b12-a781-2c5e9d4f6a03",
346+
"entity_id": "8661bdfa-098f-434d-8e44-b1f32de62406",
347+
"entity_type": "issue_link",
348+
"event": "workitem.link.created",
349+
"webhook_id": "285f087b-e1e0-4f90-b9f4-0b720acfac04",
350350
"workspace_id": "d250cd44-fa71-42c2-b2b5-3c73227288fc",
351351
"data": {
352-
"id": "a6f8e562-49d2-4c19-bc4b-2bcb9d917da1",
353-
"url": "http://google.com",
354-
"title": "",
355-
"issue_id": "8661bdfa-098f-434d-8e44-b1f32de62406",
356-
"created_at": "2026-05-20T09:51:27.373582+00:00",
357-
"project_id": "45b87d89-0ce0-4d6f-8903-4070f1c67f1b",
358-
"workspace_id": "d250cd44-fa71-42c2-b2b5-3c73227288fc",
352+
"id": "a6f8e562-49d2-4c19-bc4b-2bcb9d917da1",
353+
"url": "http://google.com",
354+
"title": "",
355+
"issue_id": "8661bdfa-098f-434d-8e44-b1f32de62406",
356+
"created_at": "2026-05-20T09:51:27.373582+00:00",
357+
"project_id": "45b87d89-0ce0-4d6f-8903-4070f1c67f1b",
358+
"workspace_id": "d250cd44-fa71-42c2-b2b5-3c73227288fc",
359359
"created_by_id": "88fc36c8-73b0-4547-81c7-96b70f61835e"
360360
},
361361
"previous_attributes": {}

0 commit comments

Comments
 (0)