Event types
Supported webhook event types and their payloads
Ordinal sends webhook notifications when events occur in your workspace. Every payload uses this structure:
{
"type": "post.published",
"data": {
"post": {
"id": "550e8400-e29b-41d4-a716-446655440001",
"title": "Q4 Product Launch Announcement",
"channel": "LinkedIn",
"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",
"postUrl": "https://www.linkedin.com/feed/update/urn:li:share:7123456789012345678",
"profile": {
"id": "550e8400-e29b-41d4-a716-446655440002",
"name": "Acme Inc",
"detail": "acme-inc"
},
"workspace": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"slug": "acme",
"name": "Acme Inc"
},
"publishedBy": {
"id": "550e8400-e29b-41d4-a716-446655440010",
"firstName": "Jane",
"lastName": "Doe",
"email": "jane@example.com"
},
"publishedAt": "2025-02-26T14:30:00.000Z"
}
},
"createdAt": "2025-02-26T14:30:00.000Z"
}
- type – Event type (e.g.
post.published) - data – Event-specific payload; see each event page for the schema
- createdAt – ISO 8601 timestamp when the event was emitted
Social Profile
Events for connected social accounts (LinkedIn, Twitter, Instagram, etc.):
| Event Type | Description |
|---|---|
social_profile.connected |
A profile is connected to the workspace |
social_profile.disconnected |
A profile is disconnected from the workspace |
social_profile.reconnect_needed |
A profile needs reconnecting (e.g. token expired) |
Posts
Events for post lifecycle and content changes:
| Event Type | Description |
|---|---|
post.created |
A new post is created |
post.scheduled |
A post is scheduled for publishing |
post.rescheduled |
A post’s scheduled time is changed |
post.unscheduled |
A post is unscheduled |
post.published |
A post is successfully published to a channel |
post.publish_failed |
A post fails to publish |
post.archived |
A post is archived (moved to trash) |
post.permanently_deleted |
A post is permanently deleted |
post.content.edited |
A post’s content is edited (debounced per post, fires after ~5 minutes). Includes latest content for all channels. |
post.comment.created |
A comment is added to a post (post-level comments) |
post.inline_comment.created |
An inline comment (text-anchored) is added to a post. One event per comment, including replies in a thread. |
Approvals
Events for post and campaign approval workflows:
| Event Type | Description |
|---|---|
post.approval.requested |
Someone requests approval from users for a post |
post.approval.approved |
An approver grants approval for a post |
campaign.approval.requested |
Someone requests approval from users for a campaign |
campaign.approval.approved |
An approver grants approval for a campaign |
Invites
Events for workspace invitations:
| Event Type | Description |
|---|---|
invite.created |
A user is invited to the workspace. If the invitee already has an account, they are added directly and no email is sent. |
invite.accepted |
A user accepts a workspace invite |