# One screen to approve time off and catch coverage clashes

> Approve or deny pending leave from one morning queue, see who else on the team is already off, and the requester hears back in Slack right away.

- Workflow type: app
- Services: BambooHR, Slack Bot
- Categories: HR & People, Operations
- Published: 2026-08-14

## What it does

- Puts every pending time off request in one queue with the requester, the dates, the leave type, and how much leave that person has left.
- Lets you approve or deny right from the row, and the requester gets a Slack message with the outcome straight away.
- Shows an eight week team calendar that highlights any day where too many people from the same department are already booked off.
- Pins anything that has been waiting more than three days to the top, so nobody's request goes stale in an inbox.

## What you'll need

- A BambooHR login that can view and approve time off for your team. Full admin access is not required.
- A Slack workspace where the app is allowed to send direct messages.
- Departments filled in on your BambooHR employee records, since the coverage calendar groups people by department.

## Prompt

Build me an app that my managers open every morning to clear time off decisions in one place, instead of digging through BambooHR notification emails. The audience is people managers and People Ops, not HR admins, so every screen should be readable without knowing how BambooHR is configured.

The main screen is a pending request queue. Load it from BambooHR List Time Off Requests filtered to pending status. Each row shows the requester's name, the dates they asked for and the total days, the leave type, and their projected remaining balance for that leave type. Get the balance from BambooHR Estimate Future Time Off Balances for that employee as of the last day of the request, so the number reflects accruals and already approved leave rather than the balance as of today.

Each row has Approve and Deny buttons that call BambooHR Update Time Off Request Status inline, without leaving the queue. Once a decision is recorded, move the row out of the pending list. If BambooHR rejects the update, show that error on the row itself rather than as a generic failure banner.

Requests that have been sitting unanswered for more than three days pin to the top of the queue with the waiting time shown, for example "waiting 5 days". Everything else sorts by start date, soonest first. Make the three day threshold a setting rather than a constant in the code.

The leave type filter must come from BambooHR List Time Off Types rather than being hardcoded, so it always matches the types the company actually has configured. Add a department filter alongside it, defaulting to all departments.

A second tab is a team coverage calendar for the next eight weeks. Lay every approved request from BambooHR List Time Off Requests over the departments resolved from BambooHR Get Employee Directory, so each person's leave sits under their department. Highlight any day where more than a configurable number of people from the same department are out, defaulting to two, so a manager can see a thin week at a glance.

Run that same coverage check against each pending request and show a conflict badge on the queue row when approving it would push a department over the limit. The badge should name the days that clash and who is already booked off. The manager should see the clash before approving rather than after.

When a decision is recorded, DM the requester in Slack with the outcome. Find their Slack account with Slack Bot Look Up User by Email using their BambooHR work email, open the direct message with Slack Bot Open a Conversation, then send it with Slack Bot Send a Message. The message states the leave type, the dates, and whether the request was approved or denied. If no Slack user matches that email, still record the decision and show on the row that the notification could not be delivered.

Important BambooHR behaviour to handle: permission filtering is silent. Fields the connected user cannot view are omitted from the response rather than raising an error. If a projected balance comes back empty, display "balance unavailable" with a note that the connected account may not have permission to view it. Never render a missing balance as zero days remaining, because that would push a manager toward a wrong approval.

Keep a local record of every decision made in the app, including who made it and when, and show it as a recent decisions list on the queue screen. That gives People Ops a view of what was actioned today without going back into BambooHR.

## How to customize

- Change how many people from the same department can be off before a day is flagged as a clash.
- Change the three day mark at which a waiting request gets pinned to the top of the queue.
- Filter the queue by leave type or department, using the leave types already configured in your account.

## FAQ

### Does approving here actually update BambooHR?

Yes. Approve and Deny write the decision straight back to the request in BambooHR, so your HR record stays the single source of truth and the employee's balance updates as normal. Nothing is held in a separate approval system.

### Will the requester find out the outcome?

Yes. As soon as you record a decision, the app sends that person a direct message in Slack naming the leave type, the dates, and whether it was approved or denied. If nobody in Slack matches their work email, the decision is still saved and the app tells you the message could not be delivered.

### What happens if a leave balance will not load?

BambooHR only returns the fields your connected account has permission to view, and it hides the rest quietly rather than showing an error. When a balance is not available the app says so on the row instead of showing zero days, so you are never nudged into approving against a number that is not real.

### Can I see who else is already off before I approve?

That is the main point of the coverage tab. It lays the next eight weeks of approved leave over your departments and flags any day where more people than you allow are out. The queue also warns you when approving a specific request would create one of those clashes.

### Do I need to be an HR administrator to use this?

No. It is built for people managers and People Ops rather than admins. You need a BambooHR login that can see and approve time off for your team, and everything on screen is written to be readable without knowing how BambooHR is configured.

Use this prompt in General Input: https://www.generalinput.com/prompts/one-screen-to-approve-time-off-and-catch-coverage-clashes