Skip to content
Ordinal
Esc
↑↓navigate↵open⌘Jpreview

post.content.edited

Fired when a post's content is edited (debounced per post, fires after 5 minutes). Includes latest content for all channels.

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

PropType
typestring

The event type (e.g. post.content.edited).

Typestring
dataobject

Event-specific payload for this webhook.

Typeobject
data.postobject

The edited post.

Typeobject
data.post.idstring

Post ID.

Typestring
data.post.titlestring

Post title.

Typestring
data.post.channelsarray

Channels the post is scheduled for.

Typearray
data.post.campaign?object | null

Campaign if assigned. Contains id, name, startDate, and endDate.

Typeobject | null
data.post.urlstring

Ordinal post URL.

Typestring
data.post.workspaceobject

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

Typeobject
data.post.editedByobject

User who edited the post. Contains id, firstName, lastName, and email.

Typeobject
data.post.editedAtstring

ISO 8601 timestamp when the edit was recorded.

Typestring
data.post.labelsarray

Labels attached to the post. Each contains id, name, color, and backgroundColor.

Typearray
data.post.linkedIn?object | null

LinkedIn content when the post includes LinkedIn. Contains profile (id, name, detail), copy, and assets (id, name, url, mimetype, size, width, height, duration).

Typeobject | null
data.post.x?object | null

X/Twitter content when the post includes Twitter. Contains profile (id, name, detail) and tweets (array of { copy, assets }).

Typeobject | null
createdAtstring

ISO 8601 timestamp when the webhook event was created.

Typestring
{
  "type": "post.content.edited",
  "data": {
    "post": {
      "id": "550e8400-e29b-41d4-a716-446655440001",
    "title": "Q4 Product Launch Announcement",
    "channels": ["LinkedIn", "Twitter"],
    "campaign": {
      "id": "550e8400-e29b-41d4-a716-446655440003",
      "name": "Launch 2025",
      "startDate": "2025-01-01",
      "endDate": "2025-12-31"
    },
    "url": "https://app.tryordinal.com/acme/posts/550e8400-e29b-41d4-a716-446655440001",
    "workspace": {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "slug": "acme",
      "name": "Acme Inc"
    },
    "editedBy": {
      "id": "550e8400-e29b-41d4-a716-446655440010",
      "firstName": "Jane",
      "lastName": "Doe",
      "email": "jane@example.com"
    },
    "editedAt": "2025-02-26T15:30:00.000Z",
    "labels": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440400",
        "name": "Marketing",
        "color": "#9333ea",
        "backgroundColor": "#f3e8ff"
      }
    ],
    "linkedIn": {
      "profile": {
        "id": "550e8400-e29b-41d4-a716-446655440002",
        "name": "Acme Inc",
        "detail": "acme-inc"
      },
      "copy": "Updated LinkedIn content for the launch!",
      "assets": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440010",
          "name": "product-photo.jpg",
          "url": "https://cdn.tryordinal.com/assets/product-photo.jpg",
          "mimetype": "image/jpeg",
          "size": 245678,
          "width": 1920,
          "height": 1080,
          "duration": null
        }
      ]
    },
    "x": {
      "profile": {
        "id": "550e8400-e29b-41d4-a716-446655440004",
        "name": "Acme Inc",
        "detail": "@acme_inc"
      },
      "tweets": [
        {
          "copy": "Updated Twitter content for the launch!",
          "assets": []
        }
      ]
    }
    }
  },
  "createdAt": "2025-02-26T15:30:00.000Z"
}

Last updated on September 27, 2026

Was this page helpful?