Settings & configuration
Settings live in two places:
- Channel settings —
/qb configin the channel. By default any linked member of the channel can edit them, and the “Who can edit these settings” field below narrows that to the maintainers or to a named list. Workspace admins always can./qb config historyshows who changed what, and every linked member can read it even when they cannot change anything. - Personal settings — the ⚙️ Settings button at the top of Queuebird’s App Home, always there whether or not you’ve linked. Everything here is yours alone; teammates never see it.
Every default is chosen so a channel works well with zero tuning — open /qb config only when you want different behavior.
Channel settings (/qb config)
The clock
- SLA window (default: 8 business hours) — how long a PR may wait before it breaches. Counted only during working hours. Applies to PRs tracked from then on; already-tracked PRs keep their window.
- Team anchor timezone (default: UTC) — the channel’s clock. Every per-channel time below reads in this zone. Use an IANA name like
Europe/Vilnius. - Team anchor hours (start/end) — the team’s default working day, used for SLA timing. Members who set personal work hours override this for themselves.
- Urgent SLA window (default: 120 minutes) — replaces the normal window while a PR is marked ‼️ urgent. Same working-hours clock: 90 means 90 working minutes.
Escalation
- Escalation steps (default: 3) — a cap on how many rungs of the ladder run after a breach with nobody reviewing: step 1 DMs the audience below, step 2 posts in the channel, step 3 pings the channel maintainers. Lowering it stops the ladder early; the ladder is three rungs long, so raising it past 3 changes nothing. In “channel maintainer(s)” breach mode the maintainer ping is step 1, leaving two rungs. If anyone is reviewing, the whole ladder collapses to one step — a DM to each person currently holding 👀, and nothing else.
- Hours between steps (default: 4) — working hours between escalation steps.
- Breach step 1 — who gets the first DM (default: every eligible reviewer) — or the PR’s author, or the channel maintainer(s). Author and maintainer fall back to reviewers when unmapped or unset.
- Who to DM the moment a PR is marked urgent (default: auto) —
autopicks the least-loaded eligible reviewer,asked onlyDMs just the people explicitly asked,offDMs nobody. People @-asked on the PR are always DM’d unless off.
Maintainers & rights
- Channel maintainer(s) — maintainers get escalations and hold the default park/hide right. Whoever turns a new channel into a queue is its first maintainer automatically; promoting an existing intake channel seeds no maintainer, so set them here right after. Some powers stay with named people whatever the settings rights say: changing a channel’s role,
/qb backfill, 📣 Escalate to DMs and 🔓 Release claim. - Who can park or hide PRs (default: channel maintainers) — or anyone, or a custom list.
- Who can edit these settings (default: anyone in the channel who has linked GitHub) — or the channel maintainers, or a custom list. It defaults to anyone because a slash command has to be run in the channel, so an admin who is not a member of a private one cannot reach its settings however many rights they hold: leaving it holders-only stranded a private channel the moment its named people left. Narrowing it back is one save.
- Custom lists — leaving a custom picker empty keeps the maintainers in charge; it never locks everyone out.
- Show the triage menu on every Team Queue card (default: off) — the ⋯ menu on shared-queue cards carries Urgent, Escalate and History, plus Park and Hide for whoever holds the park/hide right. Off, it still appears on cards that are at risk or past their deadline, for anyone with the park/hide right, because those are the cards someone was going to act on. Turn it on and it appears on healthy cards too, for anyone who can edit these settings. The shared board has a size limit, so the default spends that space only where something is going wrong.
Routing
Only matters if links arrive from a front-door channel or several queues share a workspace — see Queues & intake.
Routing entries are claims: a matching PR is copied into every channel that claims it, including from intake channels the claimant cannot see. So adding one has to be proved, and each kind is proved differently. Only new entries are checked — an existing config keeps routing exactly as it did, and a workspace admin or owner may add any of them.
- Team tags — Slack user groups (
@handles) that route a pasted message here. Routing’s strongest signal. You must be a member of the group you add; if Slack can’t tell us who is in it, the save is refused rather than taken on trust. - GitHub teams that route here (
org/slug, one per line) — a PR whose GitHub review request names one of these teams routes to this queue. Only a workspace admin or owner can add one: there’s no Slack group to check you against. Use a Team tag if you want to set it up yourself. - Owned repos — a pasted PR from one of these repos routes here without any tag. Suggestions come from your GitHub teams and every repo the workspace has tracked. Only a workspace admin or owner can add one — nothing proves a channel owns a repo.
- Team label — the human name shown in routing confirmations and “which queue?” prompts. Falls back to the first team tag, then the channel name.
- When should I pick up PRs pasted here? (default: every link) — or “only @Queuebird mentions”, where a bare paste is ignored. On an intake channel, this is the only setting the modal shows.
Approvals
- Approvals required (fallback) (default: 1) — used only when GitHub’s own branch protection doesn’t state a required count Queuebird can read. Priority: GitHub rule → per-repo override → this number.
- Per-repo approvals (one per line, e.g.
acme/api 2) — override the fallback for specific repos.
Nudging the author
- Ask the author after (default: 5 business days) — one-time “still relevant?” DM to the author of a PR nobody has reviewed, with Bump / Stop-asking buttons.
- Remind the author when approved but unmerged (default: 8 business hours) — one DM: merge it, or say what’s blocking.
Auto-assign
- Auto-assign PRs nobody’s reviewing (default: off) — assignment overrides your team’s reviewing culture; enable only if PRs regularly sit unreviewed.
- Auto-assign after (default: 4 business hours) — how long a PR sits with nobody reviewing before assignment fires.
- Auto-assign strategy (default: least loaded) — fewest open reviews right now; or round-robin (least-recently assigned), or random.
Digest & recap
- Digest DM time (default: 09:00) — each member gets their morning digest at this time on their own clock (their timezone, or the channel’s if they set none). Weekdays only — and if a workspace has several queue channels, the earliest digest time among them wins for everyone.
- Post the weekly stats recap (default: on) — with day (Monday) and hour (10:00), in the channel’s anchor timezone.
- Include 🚀 Shipped this week (default: on) — the recap section naming the week’s merged PRs, authors, and reviewers.
Cards
- Show effort hints on PR cards (default: on) — the “~15 min” size estimate on cards and assign DMs.
Personal settings (⚙️ Settings)
- Away until (default: none) — the last day you’re away, on your clock. Until then Queuebird leaves you out of review assignment and out of team nudges entirely, so work reaches someone who’s actually here, and your daily digest pauses. This is different from quiet hours, which only delays a DM until the range ends. Reminders about your own PRs still wait for you rather than being dropped. Clear the date to come back early; a date that has already passed clears itself.
- Timezone override (default: your Slack profile timezone) — used for your quiet hours, work hours, and digest. Pick one here only to override your profile.
- Work hours (start/end; default: empty) — your personal working day, feeding the team’s business-hours SLA clock. Empty means you follow the team’s anchor hours.
- Review windows (start/end; default: empty) — when Queuebird may DM you about reviews. Separate from work hours; empty means anytime during team hours.
- Quiet hours (default: none) — up to 4 non-overlapping ranges, every day, your timezone; overnight ranges like
22:00-07:00are fine (overlapping ones are rejected on save). DMs wait until the range ends. One catch: a digest scheduled inside your quiet hours is skipped that day, not delayed — cover your digest time and you’ll stop getting one until you change this. - Breach & escalation DMs (default: on) — DMs when a PR you should review breaches its SLA or is escalated.
- Asked-of-you DMs (default: on) — DMs when someone asks you for a review by @-mention.
- New-PR DMs (default: off) — a DM the moment any new PR lands in a queue you review for, for people who like to pounce on fresh PRs. The one notification that’s off by default — on a busy queue it’s a firehose. You’ll never get it doubled with an asked or urgent DM for the same PR, and each of these DMs carries its own 🔕 Turn these off button.
- Daily NEEDS YOU digest (default: on) — one morning DM listing what needs you, at the team’s digest time on your clock.
- Urgent DMs outside my hours (default: on) — let urgent PRs reach you outside your hours. Slack Do Not Disturb is always respected regardless.
- Reviewer names on cards (default: 5) — how many 👀 names a card shows before “+N more”.
Buttons, at a glance
Top of App Home (always there, linked or not):
- ⚙️ Settings — the personal settings above.
- ℹ️ Legend — the clock-and-badge glossary (same legend as the Team guide).
- Connect GitHub / Reconnect GitHub — appear for workspace admins when the GitHub App isn’t connected or lost its connection; everyone else sees an “ask your admin” hint. Link GitHub — appears for you when you haven’t linked yet.
On a card:
- 👀 Open & Review — opens the PR and tells the team you’re on it.
- Stop reviewing — lets the claim go.
- ⋯ Actions (on NEEDS YOU and YOU’RE REVIEWING cards) — snooze (next window / 1 day / forever); park ⏸ and hide 🙈 appear only if you hold the park/hide right; mark or clear ‼️ urgent (anyone); 📜 History. On Team Queue cards the menu appears only with maintainer triage on, and adds 📣 Escalate to DMs. Other sections carry their own single action instead of the full menu.
- 🔓 Release claim (Team Queue cards) — appears wherever the ⋯ menu does, on cards where a teammate currently holds 👀.
- 📣 Nudge team (on the author’s breach DM and the channel escalation post) — re-nudges every eligible reviewer, once per reviewer per day. When nobody eligible can be reached it says so plainly (“Nobody to nudge — …”) instead of claiming everyone was already nudged.
- ⏰ Bump (your own PRs) — posts “⏰ Author bump: still needs a reviewer” in the PR’s queue channel, threaded under the original ask and carrying its own 👀 Open & Review button. Once per PR per day; it DMs nobody.
- 📋 Open your queue (breach, maintainer-escalation and 📣 Nudge team DMs, and the daily digest) — a plain link straight to your App Home. A card you were recently DM’d about carries a small 🔔 DM’d you note there, so you land knowing which one sent for you.
- 🔕 Turn these off (New-PR DMs) — every New-PR DM carries one; a single click switches the setting off, and ⚙️ Settings turns it back on.
- Stop tracking (TRACKING section) — drop a DM-tracked PR; DM the link to restore it.
- ▶️ Restore (PARKED section) — un-park, rights-gated. Hidden PRs don’t appear in App Home at all — restore those from
/qb parked.