Skip to content
Bloom · Scheduling

A queue that protects the account.

Bloom publishes from a weekly queue that belongs to the brand, not to any one account — every slot is keyed by brand, platform, weekday, hour and minute, so a single schedule drives every network that brand posts to. Rate limiting sits separately, in a governor in front of each connected account with its own daily cap and minimum interval. After an outage Bloom releases at most 10 catch-up posts per five-minute tick, because dumping 40 queued posts the moment a worker returns is the exact burst pattern platforms suspend accounts for.
A Bloom post travels through three gates: a per-brand weekly slot grid keyed by brand, platform, weekday, hour and minute; a per-account rate governor with a maxPerDay ceiling and a minIntervalMinutes gap; and an attempt ladder of five tries with backoff doubling from sixty seconds under a six-hour ceiling. Three guard rails sit below: ten catch-up posts per five-minute tick, a twenty-four-hour stale cutoff, and a fifteen-minute stuck-publish reaper.
Three gates between a scheduled idea and a network call — each one a named constant.
01 · Per brand, by design

The weekly queue belongs to the brand.

A Bloom slot is keyed by brand, platform, weekday, hour and minute. There is no account identifier on it. That sounds like a detail until you run two Instagram accounts for one client: with a brand-level schedule you describe the rhythm once — Tuesday 09:15, Thursday 17:00 — and every account under that brand inherits it, instead of you maintaining the same calendar twice and watching the two drift apart.

Queue health — Northwind brand
Runway9 days
Slots filled this week14 of 24
Horizon projected94 of 365 days
Runway healthy

365 days of horizon

The weekly pattern can be projected up to a year ahead, which is what makes a seasonal campaign or a conference calendar something you enter once. Slots are resolved in the brand’s own timezone, so a client in another country gets their nine in the morning rather than yours.

Runway warns before it empties

Bloom measures how far ahead a brand’s queue is genuinely filled and flags it low under seven days and critical under three. The failure mode this prevents is the quiet one: a calendar that looks fine because it looks the same as always, and then simply stops. A warning three days out is actionable; a gap you notice on Monday is not.

02 · Per account, deliberately

The governor sits in front of each account.

Two settings do the work — maxPerDay, a ceiling on how many posts an account sends in a day, and minIntervalMinutes, the minimum gap between two of them. Both are scoped to a single connected account rather than to a platform, which is the distinction that matters when one brand runs three Mastodon accounts or an agency runs eleven Instagram accounts from one workspace.

Why per account and not per platform

Platforms do not rate-limit “Instagram”. They rate-limit an account, a token and an app. A per-platform budget shared across eleven client accounts would throttle ten clients because the eleventh had a busy week — and, worse, would let a single account burst far past what that account should be doing. Scoping the governor to the account is what makes an agency workspace safe to run at all.

A cap is a queue, not a discard

When an account hits its daily ceiling or its minimum interval has not elapsed, the post waits for the next eligible tick. It is not dropped and it is not silently rescheduled to a slot you did not choose. The publisher wakes up every five minutes, so a held post moves as soon as its own rule allows.

Platform floors are respected too

Where a platform states its own limit, Bloom works inside it rather than against it. Meta’s inbox polling floor is five minutes per account, and Instagram’s container quota is 50 in a rolling 24 hours — numbers the product treats as real constraints instead of retrying into.

03 · When a network says no

Failures retry, then stop and say so.

The two bad answers here are equally common: give up on the first error, or retry forever and hammer an API that has already told you no. Bloom does neither. A target is retried up to five times, with backoff starting at 60 seconds and doubling under a six-hour ceiling — so a real post waits one, two, four and eight minutes, and the ceiling is a guard rail rather than the normal path.

ConstantValueWhat it prevents
Retry attempts5 per targetBounded. A failing network never becomes an infinite loop.
Backoff60s, doublingCeiling of 6 hours. Real waits are 1, 2, 4 and 8 minutes.
Catch-up per tick10 postsDowntime is drained gradually, never dumped.
Tick interval5 minutesHow often the publisher wakes up and looks at the queue.
Stale cutoff24 hoursOlder than this is skipped rather than published late.
Stuck-publish reaper15 minutesA publish that hangs is reclaimed, not left in limbo.
Duplicate window30 daysThe same content will not go out twice inside a month.
Slot horizon365 daysHow far ahead the weekly queue can be projected.
These are product constants, not plan limits. Bloom publishes no tiers or quotas on this page because its plan table ships empty — what is enforced is the behaviour above, and it is enforced for everyone.

A stuck publish is reclaimed

A network call that hangs is not left holding a slot. After 15 minutes the reaper reclaims the publish so it can be retried or reported, which is the difference between a post that failed and a post that is simply missing.

Stale posts are skipped, not sent

Anything more than 24 hours past its slot is skipped. A launch announcement that escapes two days late is worse than one that never went out, because it is public and wrong. Bloom treats lateness as a failure state rather than an inconvenience.

Every outcome is a visible state

Sent, held, retrying, failed and skipped are all things you can see against the post. A silent failure is the worst outcome available to a publishing tool, because you find out from the client rather than from the product.

04 · The cap that matters most

Ten catch-up posts per tick, and no more.

This is the constant worth understanding before any other. When a scheduler has been down and comes back, the naive behaviour is to publish everything it missed at once. Forty hours of backlog then arrives as forty posts inside a minute — which is indistinguishable, from the platform’s side, from a compromised account, and is precisely the pattern that gets connections suspended.

Recovery — draining a backlog
Tick 1 · released10 of 34
Tick 2 · released10 of 24
Tick 3 · released10 of 14
Tick 4 · released4 of 4
Skipped as stale (>24h)6

Gradual by construction

Ten posts per five-minute tick means a backlog drains over minutes rather than landing in one burst. Nothing is lost that is still timely, and nothing that is no longer timely is forced out under a stale timestamp. The two rules — the cap and the 24-hour cutoff — are designed to be read together.

The account survives the incident

The point of every constant on this page is the same: an outage in Bloom should cost you some scheduled posts, never a connected account. Recovering a schedule is an afternoon. Recovering a suspended business account is a support queue you do not control.

05 · What can be scheduled

Formats, duplicates and the horizon.

A schedule is only as good as what it is allowed to contain. Bloom declares which shapes each network accepts and checks the post against them at compose time, so a carousel aimed at a network that does not take carousels is blocked before it is stored rather than failing at the slot.

18
Single posts
Every network Bloom supports takes one.
2
Carousels
Telegram and Instagram, up to 10 items each.
3
Native threads
Bluesky, Mastodon and Telegram, up to 25 parts.
30
Day duplicate window
The same content will not repeat inside it.

Threads default to ten parts and can run to twenty-five, which is enough for a long argument without turning the compose box into a document editor. Media upload is accepted by eight of the eighteen networks and capped at 50MB per file. Character limits are enforced per network — 280 on X, 300 on Bluesky, 360 on Plurk, 500 on Mastodon and Threads, 4,096 on Telegram — and the full table, along with which networks report engagement back, lives on the networks page.

06 · Replanning, bounded

Autopilot fills the plan, inside your rules.

Autopilot keeps a rolling 14-day horizon filled and will not replan more often than once every six hours. Both bounds exist for the same reason as everything else here: an automated planner that rewrites next week every twenty minutes is not helpful, it is noise with a schedule attached.

It works inside the queue

Autopilot proposes what goes into the slots you already defined. It does not invent new posting times, bypass the approval chain, or route around the per-account governor. Everything it schedules still passes preflight, still needs the approval state your workspace requires, and still waits for the governor.

A 14-day horizon, not a year

Planning two weeks out is far enough to keep the runway above the seven-day warning line and short enough that the plan still reflects what is happening. The 365-day horizon is for the slot pattern; the content plan deliberately stays closer in.

You stay able to say no

Anything autopilot produces is a draft in the same chain as anything a person wrote, which means the same review states apply and the same roles decide. Automation that cannot be reviewed is just a different way to publish something you did not read.

GuaranteeHoldsNote
Slots you set are respectedYesAutopilot fills them; it does not add new ones.
Approval chain still appliesYesFour states, unchanged, for automated drafts.
Per-account governor still appliesYesmaxPerDay and minIntervalMinutes are not bypassed.
Duplicate guard still appliesYesThe 30-day window covers automated content too.
Autopilot is a planner, not an escape hatch. Every rule on this page still binds.
07 · Questions

Scheduling questions, answered plainly.

Are Bloom's queue slots per account or per brand?

Per brand. A slot is keyed by brand, platform, weekday, hour and minute, so one weekly schedule drives every network that brand posts to. There is no account identifier on a slot at all. Rate limiting is deliberately handled somewhere else — by a governor in front of each connected account — because the brand is the unit you plan with and the account is the unit a platform polices.

What happens if a network rejects a post?

Bloom retries that target up to five times. Backoff starts at 60 seconds and doubles each attempt under a six-hour ceiling, so in practice a post waits one, two, four and eight minutes before the attempts are exhausted. After that it stops and reports the failure as a state you can see, rather than retrying forever or disappearing from the calendar.

What happens to my queue after downtime?

Bloom releases at most ten catch-up posts per five-minute tick, so forty hours of downtime never becomes forty simultaneous posts. That burst is the exact pattern platforms suspend accounts for. Anything more than 24 hours stale is skipped rather than published late, because a post that was timely yesterday is usually noise today.

Will Bloom stop me publishing the same thing twice?

Yes. A duplicate guard covers a 30-day window, so re-running a plan or importing the same idea twice does not put the same content on the same network again inside a month.

How far ahead can I schedule?

Up to 365 days. Bloom also tracks how much of that horizon is actually filled and warns you before it empties: a brand's queue runway is flagged low under seven days and critical under three.

Can Bloom plan the schedule for me?

Autopilot replans on a rolling 14-day horizon with a minimum interval of six hours between replans, so the calendar keeps refilling itself without churning the same week over and over. You keep the slots, the approval chain and the governor — autopilot fills the plan inside those rules rather than around them.

Set the queue once. Let it hold.

Bloom runs on its own application and its own sign-in — an Autocloz account is not required. Define a weekly pattern for your first brand, set the governor on each connected account, and the rest of this page is what happens without you.

Create your workspaceTalk to us