ProzariPROZARI
ProzariSocial Media Scheduler

Schedule posts where the
work happens.

Connect Facebook, Instagram and LinkedIn once. Draft posts inside the card that's running the launch. The publisher cron does the rest — no Buffer, no Hootsuite, no Zapier.

What you get

Everything a social scheduler needs — built in, encrypted, and tied to your work.

Three networks, one queue

Connect Facebook Pages, Instagram Business profiles, and LinkedIn organisations once per workspace. Every connected account becomes a target in the post composer.

Schedule from any card

Working on a launch task? Hit "+ Schedule a post" in the card rail, pick a platform, write, set the time. Posts and the work that produced them stay linked forever.

Built-in publisher cron

A worker polls every minute, claims SCHEDULED posts atomically (no double-publish across replicas), and dispatches to the right platform adapter. No third-party SaaS in the loop.

Auth-failure self-healing

Long-lived FB/LinkedIn tokens eventually expire. The publisher classifies the platform error, marks the account EXPIRED with the platform’s own message, and surfaces a Reconnect chip in Settings.

AES-256-GCM token storage

Every access and refresh token is encrypted at rest with AES-256-GCM. Decryption only happens in-memory at publish time. Your bucket and your DB never see plaintext credentials.

Platform-aware error mapping

FB error codes 190/102/463 → auth class. 4/17/32 → rate limit. LinkedIn 401/403 → auth, 429 → rate limit. Failed posts surface the actual platform message — no detective work in the logs.

How it works

Four steps from spark to published.

  1. 01

    Connect your platforms

    Settings → Integrations → Social Media. One-click OAuth pulls every Page, IG Business profile and LinkedIn organisation you can publish to.

  2. 02

    Open a card and compose

    Hit "+ Schedule a post" in the card’s Hierarchy rail. Pick platform + account. Write the body. Drop in media URLs.

  3. 03

    Pick a time (or save draft)

    datetime-local picker. If the time is in the future, the post moves to SCHEDULED; if you leave it blank, it stays a DRAFT for later.

  4. 04

    Publisher takes it from there

    Cron worker wakes every minute, claims due posts atomically, hits the right platform API, and writes the remote URL back. You see it move SCHEDULED → PUBLISHED in real time.

Frequently asked questions

How is this different from Buffer or Hootsuite?

Buffer and Hootsuite live in their own silos — you draft in Notion, copy/paste into Buffer, set a time, then track results in a third tool. Prozari ships the scheduler inside the same workspace where the work happens. The post body, media, scheduled time and the card that produced it all live together. No copy/paste. No reconciling across tools.

Which platforms are supported?

Facebook Pages (text posts, single-photo, single-video), Instagram Business (feed posts and Reels via the two-step container flow), and LinkedIn (personal share + organisation pages). Every Page or organisation you admin becomes a target in the post composer.

How are OAuth tokens stored?

Access and refresh tokens are encrypted at rest with AES-256-GCM using the same scheme that protects Google Workspace tokens. The encryption key lives in a server-side env var; tokens are decrypted in-memory only at publish time. The browser never sees them.

What happens if my Facebook token expires?

The publisher classifies platform errors. When Facebook returns code 190/102/463, the linked account is automatically marked EXPIRED, the post moves to FAILED with the platform’s own error message as the failureReason, and the Settings → Integrations → Social Media tab shows a Reconnect chip. No silent retries that burn your rate limits.

Can I schedule the same post to multiple platforms at once?

Each scheduled post targets a single platform + account today (so you can tailor copy per network — LinkedIn deserves different formatting from Instagram). Multi-target broadcast is on the roadmap; for now, duplicate the post in the card and pick a different platform.

Does this require Meta or LinkedIn dev app credentials?

Yes — to actually publish, your admin needs to register a Meta dev app and a LinkedIn dev app and set FB_CLIENT_ID, FB_CLIENT_SECRET, LINKEDIN_CLIENT_ID, LINKEDIN_CLIENT_SECRET in the deploy env. Until those are configured, the Connect button gracefully falls through to a manual "By token" admin form for testing.

Stop pinballing between Buffer, Notion and Slack.

Schedule a post the same place you plan the launch. Free for up to 10 users — no credit card.

Start free