> ## Documentation Index
> Fetch the complete documentation index at: https://ordinal.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# post.approval.requested

> Fired when someone requests approval from users for a post

All webhook payloads follow a consistent top-level structure with event-specific data nested within the `data` object.

**type** `string` *required*

The event type (e.g. `post.approval.requested`).

**data** `object` *required*

Event-specific payload for this webhook.

**Data object parameters**

**approval** `object` *required*

Approval request context for the post.

**Approval object parameters**

**post** `object` *required*

Post being approved. Contains `id`, `title`, and `url`.

**campaign** `object`

Campaign the post belongs to, if any. Contains `id`, `name`, `startDate`, and `endDate`.

**workspace** `object` *required*

Workspace the post belongs to. Contains `id`, `slug`, and `name`.

**createdApprovals** `array` *required*

New approval requests created by this action. Each item has `id`, `isBlocking`, `message`, `dueDate`, `createdAt`, `status` (`Requested`), `user` (approver), and `requestedBy` (who asked for approval). User objects contain `id`, `firstName`, `lastName`, and `email`. Dates are ISO 8601 strings where present.

**existingApprovals** `array` *required*

Approvals already on the post before this request. Each item is either a requested approval (`status` `Requested`) or an approved one (`status` `Approved`). Approved items include `approvedAt` and `approvedBy`.

**createdAt** `string` *required*

ISO 8601 timestamp when the webhook event was created.

```json Example theme={null}
{
  "type": "post.approval.requested",
  "data": {
    "approval": {
      "post": {
        "id": "550e8400-e29b-41d4-a716-446655440001",
        "title": "Q4 Product Launch Announcement",
        "url": "https://app.tryordinal.com/acme/posts/550e8400-e29b-41d4-a716-446655440001"
      },
      "campaign": {
        "id": "550e8400-e29b-41d4-a716-446655440003",
        "name": "Launch 2025",
        "startDate": "2025-01-01",
        "endDate": "2025-12-31"
      },
      "workspace": {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "slug": "acme",
        "name": "Acme Inc"
      },
      "createdApprovals": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440700",
          "isBlocking": true,
          "message": "Please review before we publish.",
          "dueDate": "2025-02-28T17:00:00.000Z",
          "createdAt": "2025-02-26T14:00:00.000Z",
          "status": "Requested",
          "user": {
            "id": "550e8400-e29b-41d4-a716-446655440020",
            "firstName": "Alex",
            "lastName": "Rivera",
            "email": "alex@example.com"
          },
          "requestedBy": {
            "id": "550e8400-e29b-41d4-a716-446655440010",
            "firstName": "Jane",
            "lastName": "Doe",
            "email": "jane@example.com"
          }
        }
      ],
      "existingApprovals": []
    }
  },
  "createdAt": "2025-02-26T14:00:00.000Z"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.