Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.tryordinal.com/llms.txt

Use this file to discover all available pages before exploring further.

Webhooks Asset
Use webhooks to get real-time notifications on events happening across your Ordinal workspace. With Ordinal webhooks, you can build custom integrations, such as:
  • Syncing post data to your CRM when content goes live
  • Auto-create Linear tickets based on changes in a post’s status
  • Sync approval workflows with your company’s existing compliance tooling
  • Trigger onboarding sequences in your own systems when new teammates accept invites
  • Feed campaign activity into custom executive dashboards
  • Building internal dashboards that track publishing activity across your team
In this guide, we’ll show you how to configure webhooks and document the available events you can listen to.

Managing webhooks

You can manage webhooks via the dashboard or the API. Dashboard: Navigate to Settings → Integrations → Webhooks to create, view, edit, and delete webhooks. API: The webhooks API supports full CRUD operations. All endpoints require API key authentication.
OperationMethodEndpointDescription
ListGET/webhooksList all webhooks for the workspace
CreatePOST/webhooksCreate a new webhook
GetGET/webhooks/{id}Get a webhook by ID
UpdatePATCH/webhooks/{id}Update an existing webhook
DeleteDELETE/webhooks/{id}Delete a webhook

List webhooks

curl -X GET "https://app.tryordinal.com/api/v1/webhooks" \
  -H "Authorization: Bearer your_api_key"
Response:
[
  {
    "id": "550e8400-e29b-41d4-a716-446655440900",
    "name": "CRM Sync",
    "url": "https://example.com/webhooks/ordinal",
    "description": "Sync published posts to our CRM",
    "headers": { "X-Custom-Header": "value" },
    "topics": ["post.published", "post.archived"],
    "createdAt": "2026-01-15T10:00:00.000Z",
    "createdBy": {
      "id": "550e8400-e29b-41d4-a716-446655440010",
      "email": "john@acme.com",
      "firstName": "John",
      "lastName": "Doe"
    }
  }
]

Create webhook

curl -X POST "https://app.tryordinal.com/api/v1/webhooks" \
  -H "Authorization: Bearer your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "CRM Sync",
    "url": "https://example.com/webhooks/ordinal",
    "description": "Sync published posts to our CRM",
    "topics": ["post.published", "post.archived"],
    "headers": { "X-Custom-Header": "value" }
  }'
Response:
{
  "id": "550e8400-e29b-41d4-a716-446655440900",
  "name": "CRM Sync",
  "url": "https://example.com/webhooks/ordinal",
  "topics": ["post.published", "post.archived"],
  "createdAt": "2026-01-15T10:00:00.000Z"
}
(Note: Create response omits description, headers, and createdBy; use Get for the full webhook object.)

Get webhook

curl -X GET "https://app.tryordinal.com/api/v1/webhooks/550e8400-e29b-41d4-a716-446655440900" \
  -H "Authorization: Bearer your_api_key"

Update webhook

Send only the fields you want to change. All request body fields are optional.
curl -X PATCH "https://app.tryordinal.com/api/v1/webhooks/550e8400-e29b-41d4-a716-446655440900" \
  -H "Authorization: Bearer your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Updated CRM Sync",
    "topics": ["post.published", "post.archived", "post.content.edited"]
  }'

Delete webhook

curl -X DELETE "https://app.tryordinal.com/api/v1/webhooks/550e8400-e29b-41d4-a716-446655440900" \
  -H "Authorization: Bearer your_api_key"
Response:
{
  "success": true
}
See the Webhooks API reference for full request/response schemas, valid event types, and error handling.

Payload format

All webhook deliveries use the same envelope. The request body is JSON:
{
  "type": "post.published",
  "data": { ... },
  "createdAt": "2025-02-26T14:30:00.000Z"
}
FieldDescription
typeThe event type (e.g. post.published, post.archived)
dataEvent-specific payload. See each event page for the schema.
createdAtISO 8601 timestamp when the event was emitted
Your endpoint should respond with a 2xx status code to acknowledge receipt. See Event types for the full list of supported events and links to each payload schema.