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_atis ISO 8601 with offset.- If you don’t have a preferred time, default to 08:00 in the user’s local timezone (read from
/accountprofile). - Personal posts publish at
scheduled_atvia the user’s personal LinkedIn token. - A personal post created without
scheduled_atsits 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_atfires the organization’s Make.com webhook immediately and the post publishes to the LinkedIn company page before the user can review. - Set
scheduled_atonly 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