Skip to content

Publishing

Once you have drafts, three surfaces move them onto LinkedIn:

Lifecycle

Every Canopy post moves through these statuses:

IDEA → DRAFT → SCHEDULED → PUBLISHED
└─→ FAILED (publish error; see Troubleshooting)
  • IDEA — captured but not yet written; placeholder for “I want to write about X someday”.
  • DRAFT — has body content, not yet scheduled.
  • SCHEDULED — has a scheduledAt timestamp; the canopy-scheduler will publish at that time.
  • PUBLISHED — sent to LinkedIn successfully; has a linkedinPostId and a public URL.
  • FAILED — publish was attempted but LinkedIn rejected it. Click for the error; fix and retry.

Move between statuses with the dropdown on any post row, or by scheduling/publishing.

How a publish actually happens

Behind the scenes, when a SCHEDULED post’s time arrives:

  1. The canopy-scheduler polls the database every minute for posts whose scheduledAt <= now and status = SCHEDULED.
  2. It claims the post (CAS update on status to prevent double- publish), opens the LinkedIn API session for the connected account.
  3. POSTs the body + media to LinkedIn’s UGC endpoint.
  4. On 2xx, status flips to PUBLISHED, publishedAt is set, and linkedinPostId + the post URL are saved.
  5. On 4xx/5xx, status flips to FAILED with the error message. Retry is manual (click Retry publish on the post).

Publishing is not retried automatically — LinkedIn errors are usually structural (token expired, content rejected) and benefit from human review before re-firing.

Setting up your weekly schedule

Before the Queue makes sense, define when you want to post:

Canopy → Settings → Posting Schedule.

Pick day-of-week + time pairs. Common pattern for SaaS / B2B:

DayTime
Mon09:00
Tue09:00, 14:00
Wed09:00
Thu09:00, 14:00
Fri09:00

Outside the US? Set the timezone on the same page; all slots evaluate in your zone.

Frequently asked questions

Can I publish to multiple LinkedIn accounts at once?

No — each post belongs to exactly one connected account. Choose at draft time. To publish the same content to a personal + company page, duplicate the draft and send each to its target.

Can I publish anywhere besides LinkedIn?

Currently no — Canopy is LinkedIn-only. Cross-posting to Twitter / Bluesky / Threads is on the roadmap; reply at support@banyan.app if you need it.

What happens if my scheduled time is in the past?

The scheduler picks the post up on its next poll (within a minute) and publishes immediately. Useful when you accidentally schedule for yesterday — Canopy doesn’t fail the post, it just ships it now.