Scheduling Rules

Scheduling rules

The two rules to bake into any Cowork integration:

Personal posts → include scheduled_at

POST /api-v2-posts
{
  "target": "personal",
  "body": "...",
  "scheduled_at": "2026-05-15T08:00:00+10:00"
}
  • scheduled_at is ISO 8601 with offset.
  • If you don’t have a preferred time, default to 08:00 in the user’s local timezone (read from /account profile).
  • Personal posts publish at scheduled_at via the user’s personal LinkedIn token.
  • A personal post created without scheduled_at sits in Drafts indefinitely.

Brand posts → omit scheduled_at

POST /api-v2-posts
{
  "target": "brand",
  "organization_id": "uuid",
  "body": "..."
  // no scheduled_at
}
  • Brand posts must enter ProPresence as drafts.
  • Adding scheduled_at fires the organization’s Make.com webhook immediately and the post publishes to the LinkedIn company page before the user can review.
  • Set scheduled_at only when the user explicitly says “publish this now (or at this time)”.

Why the asymmetry?

LinkedIn doesn’t expose a third-party draft API for company pages. ProPresence treats a brand post’s scheduled_at as the explicit publish trigger because there’s no way to “reserve a slot then approve” on LinkedIn’s side. Personal posts have a real scheduled-publish path through the user’s token, so scheduled_at is safe to set up-front.

Quick decision table

target Has scheduled_at? Behaviour
personal yes Queues; publishes at that time
personal no Stays in Drafts
brand yes Publishes immediately via Make webhook
brand no Stays in Drafts (correct default)

Related: Publishing flow, Make webhook